java 基础,java
java 基础,java
看了几篇别人的职业生涯,感慨良多,java必定要用到,得好好学!
1 java & 与 && 的区别
(逻辑运算又称布尔运算 包括 与或非)
整型和布尔型预定义了二进制“&”运算符。
对于整型,“&”计算操作数的按位与;
对于布尔操作数,“&”计算操作数的逻辑与。 当且仅当两个操作数均为true时,其结果才为true,
而“&&”则是这样: 条件1为false时不去理会条件2,因为即使条件2为true,结果还是false,“&”则会去判断条件2。
2 访问控制修饰符
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。
默认的,也称为 default,在同一包内可见,不使用任何修饰符。
私有的,以 private 修饰符指定,在同一类内可见。
共有的,以 public 修饰符指定,对所有类可见。
受保护的,以 protected 修饰符指定,对同一包内的类和所有子类可见。
3 Java StringBuffer和StringBuilder类
String类不同的是,StringBuffer和StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象
StringBuilder的方法不是线程安全的(不能同步访问)。
StringBuilder相较于StringBuffer有速度优势
4 引用传递
package Main;
public class main1 {
public static void changeValue(TestFun tf) {
// tf.value = "我被改变了";//第一种情况 【1】
tf = new TestFun("这是新的我");//第二种情况【2】
tf.value = "新的我被改变了";
}
public static void main(String[] arg) {
TestFun mytf = new TestFun("没有被改变的我");
System.out.println("测试前:" + mytf.value);
// 执行测试
changeValue(mytf);
System.out.println("测试后:" + mytf.value);
}
}
class TestFun {
String value = "null";
TestFun(String v) {
this.value = v;
}
}
第一种情况输出结果:
测试前:没有被改变的我
测试后:我被改变了
第二种情况输出结果:
测试前:没有被改变的我
测试后:没有被改变的我
解释如下:
引用传递是指:方法的形参不申请自己的储存空间,与实参共用一块堆内存(String 以堆形式存储);所以在第二种情况中,由于形参只是与实参指向的内存空间相同,而并不完全代表实参,所以当形参 tf = new TestFun("这是新的我");//第二种情况【2】
的时候,形成已经改变了形参所指向的内存空间,而这与实参没有任何关系。
小结 20160727
参考连接:
http://www.runoob.com/java/java-modifier-types.html
相关文章
- 暂无相关文章
用户点评