java学习整理20170807

来源:互联网 发布:和邻居做了 知乎 编辑:程序博客网 时间:2024/04/30 06:53
1.取模运算:x%y=x%|y|y的正负不影响结果
2.除法中:x个苹果,每框装y个(y<x),需要的框的个数-->(x+y-1)/y
3.有符号移位(>>,<<):(1111)二进制右移4位后-->(1111)二进制(补符号位)
  无符号移位(>>>,<<<):(1111)二进制右移4位后-->(0000)二进制(补零)
  移位操作并不改变变量本身的值,且跟乘2和除以2运算相关,可以实现2的n次方 
4.switch语句通过key来确定switch里的语句从相应的case开始执行,case前的语句跳过,case后的所有语句都执行,除非break掉
5.浮点数float(4字节):二进制表示-->符号位(1/0)+有效数字(101011)+2的次方数
32位:31~0(从高位到低位);第31位是符号位,随后8位是幂指数位(以2为底),最后是有效数字位
16进制无穷大:0x7f 80 00 00-->二进制:0111 1111 1000 0000 0000 0000 0000 0000
0x 7 f  8   0 0 0 0   0
  数符号位 幂指数位 效数字位
 0       111 1111 1   000 0000 0000 0000 0000
正无穷大Infinity  +2的(2的8次方,最大幂指数) 0
 0       111 1111 1   000 0000 0000 0000 0001
当值大于Infinity时:NaN   +2的(2的8次方,最大幂指数) 1
6引用:int[] a=new int[10];int[] b=a;这里实际是把栈上的数组变量a指向的堆上数组对象的首地址复制给了栈上数组变量b
7.Java中把c中二维数组的概念变成了数组的数组,不同之处是,它的行列可以不是对齐的
8.finalize()方法存在于所有此类中,当对象成为垃圾时,有JVM去调用,函数System.gc()手动启动GC
9.控制访问修饰符public,default,protect,private与static不冲突;static表名成员不依赖于实例化,它与控制访问没多大关系。
对”静态方法只能访问静态的成员而不能访问非静态成员,也不能使用this和super“的理解
JVM类在加载类时,静态成员会被创建,而类未被实例化时,非静态成员都未被创建,而this和super也代表的是本对象和父对象,
也没有产生,所以静态成员是不能访问这些成员的,要调用,就必须有类的实例化对象。
静态代码块在类加载时就会被执行
单态模式(单例模式):
一个类只能创建一个实例:构造方法用private修饰,外部不能调用创建实例化对象在类的内部调用private修饰的构造函数自己创建一个;外部怎么访问这个对象呢?
只有创建一个static修饰的方法给外部一个获取对象的接static方法要访问内部实例化的对象,那么这个对象就必须也声明为static,若不声明为static,一是静态方法不能访问,二是会发生StackOverFlow;
注意:static修饰的对象在内存中只有一个实例,不管你调用接口创建几个对象,或是在内部使用new操作几次
10.单例模式的作用
11.内部类作用
当类A要使用类B资源,而类A使用的B的资源又需要A的资源时,若不使用内部类的话,就必须相互传递参数。而使用内部类则内部类可以直接使用外部内资源
12.编译时多态: 就是 function overloading;运行时多态: 就是 virtual function overriding
内部类实例化必须先实例化外部类,并且实例化的时候需要指定具体时哪个外部实例在进行内部类的初始化
当内部类写在外部类的方法里时,内部类是不能访问非final方法变量;当final修饰变量时,该变量相当于常量,生命周期得到延长
12.文件名带有*时表示文件修改过但还没保存。
13.继承中,子类重载的方法它的访问权限必须高于父类(更加开放),同时private修饰的成员不能被继承
14.final修饰的类不能被继承;final修饰的变量只能赋值一次,且只能在定义时和构造函数里才能赋值,不能被再次赋值;final修饰的方法不能被重写
15.当fianl又被static修饰时,定义时就要赋初值。
16.继承关系中的隐式类型转换(自动转换),只能向上转换,才符合is——a的规则;instanceof(),判断是否是某个类或者它的子类的实例
17.多态的作用:
1. 应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。//继承
2. 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。 //多态的真正作用,以前需要用switch实现
18.匿名内置类(内部类进行匿名):直接new 一个类来作为参数来传递,典型的是监听器;临时创建一个类,或接口的子类对象,用完就丢掉
19.throw手动抛出异常,可以使用户的自定义异常;也可以帮助用户进行条件判断,实现跳转
20.System.exit(0)退出整个程序可以阻止finally语句块的执行,而return 不行,说明finally生命周期跟方法一样
21.引入一个包下的所有类时用".*",但它只是引入了类,并没有引入子包;不同包下的相同类要使用时,必须用全路径
22.找不到类:检查类名;检查是否导入包;检查classpath配置
23.JVM默认引入java.lang.*
24.访问控制
private:只能被本类中的成员访问
default:只能被本包中的成员访问
protect:只能被本类中的成员和其他包的子类访问
public:能所有类访问
25.
原创粉丝点击