黑马程序员技术交流社区

标题: Java学习小技巧 [打印本页]

作者: love60477002    时间: 2015-11-17 09:16
标题: Java学习小技巧
1、byte通常用来进行位运算,位宽度窄,一般不用来计算
2、关键字都是小写的,在eclipse中显示为红色。
3、变量给了缺省的初始值,C语言没给,只给分配了空间,里面的数不确定
4、char的缺省值是ASCII码中第1个
5、运行效率:i++>i+=1>i=i+1
6、布尔值不能进行大小比较,只能进行==比较
7、先算&&再算||。另外&&为短路与的意思。例1:判断以下i的变化。  int i=2,j=3;  boolean b=i>j && i++>2;  System.out.println(i);答案:2
例2:以下在a,b,i不知道的情况下,判断真还是假。((a>b)||((3-2)>2))||(5>2)&&(true||(++i>2))答案:真
8、>>带符号右移,前面移空的位置添加符号位相同的数 0|001 1000  右移两位(正数) 0|000 0110 1|001 1000  右移两位(负数) 1|111 1100   >>>带符号右移,前面移空的位置添加0
获得-5到2的随机数    int i;  Random r=new Random();  i=r.nextInt();  //  i=Math.abs(i%10)+1;//获得0到10的随机数  i=Math.abs(i%8)-5;//获得-5到-2的随机数  System.out.println(i);  10、数组创建时,大小(内存)可以是前面的变量.可以动态创建数组的大小(内存),创建后就不能再改大小.例:  int t=9;  int[][] jiu;  jiu=new int[t][];
11、变量的作用域。定义的数个变量其实是放在一个栈的结构中,后定义的变量先消失,先定义的变量后消失,作用域比后定义的变量大。
12、.基本数据类型参数的传递是值传递,  引用....................址传递.
class Length{ int length;}class People{
void walk(Length length){  length.length=+=2; } public satic void main(String[] args){  Length l=new Length();  l.length=20;  new People().walk(l);  System.out.println(l.length); }}
13、方法的重载,不能通过返回值类型不同来区别,只能通过参数的不同来区别.
14、方法或变量加static和不加static的方法,是类的对象的方法.对象消失,方法消失    加static的方法,是类的方法.对象消失,方法存在.方法的地址是静态的与类绑定  变量和上面也一样.
15、静态方法,只能访问类的静态成员和该方法的成员 16、JAVA不支持多重继承,类似一个树,一个类只有一个父类,但可以有多个接口  C++支持多重继承,类似一个网,一个类可以有多个父类
17、子类默认调用了父类无参构造函数.如果父类没有无参构造函数,必须手动重写子类的构造方法,并用super(参数)调用父类中有参构造的方法.例:class People{ private int age; public People(int age){  this.age=age; }}class Doctor extends People{ //不写以下构造方法则出错. public Doctor(){  super(23); } //或者 public Doctor(int age){  super(age); }}解决方法:在写类的有参构造方法时,最好定义个无参的构造方法.
18、构造方法调用父类的构造方法super()前不能有其他的语句.
19、final可以修饰形式参数,防止被改例:  void walk(final int length){   }
20、import导入包的理解,重要的事情总要放到前面
21、private与abstract冲突,原因:子类实现(继承)不了接口(抽象类)中被private修饰的成员,但接口(抽象类)中的方法必须要重写,加private就没办法重写了例:interface InterfaceTest { int f(); private abstract int ff();//此句错误,要去掉private}
22、内部类可以被外部使用,可以访问外部类(宿主类)的privite成员;内部类成员加public也可以被外部访问,但也危险,定义成private外部不能访问此类了(常用).public class OutClass { private int i=2; public class InnerClass{  public int j=i; }}
23、抽象类不用继承也能用例:abstract class Out2{ private int i=2; public abstract int f(); public static Out2 getInstance(){  return new Inner2(); } private static class Inner2 extends Out2{//static  public int f(){   return 2;  } } public static void main(String[] args) {  Out2 ou=Out2.getInstance();//抽象类不用继承也能用,获得此类的实例  int i=ou.f();  System.out.println(i); }}
24、接口里也可以定义类(内隐类)例:interface InterfaceTest { int f(); class A{  int f(){   return 2;  } }}
作者: 孙志明    时间: 2015-11-17 09:21
必须顶你
作者: Little_jie    时间: 2015-11-17 10:03
好贴,学习了
作者: 10010011    时间: 2015-11-17 12:35
学习了,顶一个
作者: 马官聘    时间: 2015-11-17 15:20
好帖,顶一个
作者: wome789    时间: 2015-11-17 17:09
学习了 顶一个。
作者: yaoyeqing    时间: 2015-11-17 18:46
来学习了
作者: 切比雪夫    时间: 2015-11-17 21:43
支持一下!!
作者: Rocky_zhang    时间: 2015-11-17 22:02
受用了。感谢,顶一下
作者: pun    时间: 2015-11-17 22:25
好贴,学习了
作者: hhl    时间: 2015-11-17 23:41
总结的不错,可惜内容还是少了点,期待连载
作者: nice非飞    时间: 2015-11-17 23:53
好贴,学习一个
作者: sufutian    时间: 2015-11-18 18:42
好好学习天天向上。
作者: 875244609    时间: 2015-11-18 20:48
好东西。学习了,顶一个
作者: zqiang    时间: 2015-11-18 21:15
必须抄下来,整理出来对记忆很有帮助
作者: 13533258481    时间: 2015-11-18 21:26
加油
作者: wqd123    时间: 2015-11-18 21:43
66666666666666666
作者: 你是对的    时间: 2015-11-18 22:31
Mark     学习了
作者: 唯我独赞mo    时间: 2015-11-18 22:32
学习了支持一下
作者: 幻之记忆    时间: 2015-11-18 22:38
归纳的不错,希望继续有福利
作者: 袁有福123    时间: 2015-11-18 22:48
楼主的经验分享 写的很好  这些都是楼主的真实经验累积 非常感谢楼主的无私分享  必须收藏!!
作者: 顽固派。    时间: 2015-11-18 23:24
总结的挺好的,值得收藏....




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2