java笔记之一
2015-06-22 21:46
489 查看
1.不能通过访问权限、返回类型、抛出的异常进行重载. (不能定义方法名和参数表相同但权限和返回值类型不同的函数)。如果参数类型不同是可以的。个人理解方法重载只能是对参数列表做手脚,个数、顺序、类型不同.
2.方法覆盖有很多条件,总的讲有两点一定要注意:
(1)子类的方法的返回类型,参数,方法名称,要和父类方法的返回类型,参数,方法名称完全一样,否则编译出错。静态只能重写静态,非静态只能重写非静态。
(2)子类方法不能缩小父类方法的访问权限(反过来是可以的)。
(3)父类静态代码块>子类静态代码块>父类构造代码块>父类构造方法>子类构造代码块>子类构造方法,创建子类对象是,父类所有的初始化动作都应该已经完成。
(4)b静态代码块随着类的加载而加载,虽然没有创建类的对象,如果直接用类名调用类的静态方法,静态代码块会被执行。
3.static关键字:a.用来修饰成员变量和成员方法,也可以形成静态static代码块,b.只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。c.优先于对象存在。d.不能有this和super关键字。e.静态方法只能重写静态方法。F.静态方法可以被重写。
4.继承:
1)在新建一个基类的时候,不论递归调用几次自身的构造函数,最终你都会去调用父类的构造函数,(不是显式调用的话,系统会调用默认无参数的父类构造函数);
2)Java中规定使用 this 和 super 时必须放在构造函数第一行。
3)创建子类对象是,父类的静态代码块和构造代码块都会运行。
5.a.byte short char 不互相转换,变量在运算时会自动类型转换 常量不会自动b.System.out.println("hello"+'a'+1),System.out.println('a'+1+"hello"),c.取模的符号只取决于被除数,short 和byte运算会自动提升为int而不是short。
6.synchronized 个人感觉释放锁的时间就是当代码块中的同步代码没有被执行时就被释放了。
7.符号位为1的二进制数 都会默认为是补码,输出时都会经过按位取反再加1,按位取反时符号位不变。
8.说明
(1):“在Java里面参数传递都是按值传递”这句话的意思是:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递。
(2):在Java里面只有基本类型和按照下面这种定义方式的String是按值传递,其它的都是按引用传递。就是直接使用双引号定义字符串方式:String str = “Java私塾”;
9.switch语句switch(表达式)中表达式只能是四种类型:byte,short,int,char。JDK5以后可以使枚举,JDK7后可以使String。case后面只能是常量,不能有重复值。
2.方法覆盖有很多条件,总的讲有两点一定要注意:
(1)子类的方法的返回类型,参数,方法名称,要和父类方法的返回类型,参数,方法名称完全一样,否则编译出错。静态只能重写静态,非静态只能重写非静态。
(2)子类方法不能缩小父类方法的访问权限(反过来是可以的)。
(3)父类静态代码块>子类静态代码块>父类构造代码块>父类构造方法>子类构造代码块>子类构造方法,创建子类对象是,父类所有的初始化动作都应该已经完成。
(4)b静态代码块随着类的加载而加载,虽然没有创建类的对象,如果直接用类名调用类的静态方法,静态代码块会被执行。
3.static关键字:a.用来修饰成员变量和成员方法,也可以形成静态static代码块,b.只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。c.优先于对象存在。d.不能有this和super关键字。e.静态方法只能重写静态方法。F.静态方法可以被重写。
4.继承:
1)在新建一个基类的时候,不论递归调用几次自身的构造函数,最终你都会去调用父类的构造函数,(不是显式调用的话,系统会调用默认无参数的父类构造函数);
2)Java中规定使用 this 和 super 时必须放在构造函数第一行。
3)创建子类对象是,父类的静态代码块和构造代码块都会运行。
5.a.byte short char 不互相转换,变量在运算时会自动类型转换 常量不会自动b.System.out.println("hello"+'a'+1),System.out.println('a'+1+"hello"),c.取模的符号只取决于被除数,short 和byte运算会自动提升为int而不是short。
6.synchronized 个人感觉释放锁的时间就是当代码块中的同步代码没有被执行时就被释放了。
7.符号位为1的二进制数 都会默认为是补码,输出时都会经过按位取反再加1,按位取反时符号位不变。
8.说明
(1):“在Java里面参数传递都是按值传递”这句话的意思是:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值,所以统称按值传递。
(2):在Java里面只有基本类型和按照下面这种定义方式的String是按值传递,其它的都是按引用传递。就是直接使用双引号定义字符串方式:String str = “Java私塾”;
9.switch语句switch(表达式)中表达式只能是四种类型:byte,short,int,char。JDK5以后可以使枚举,JDK7后可以使String。case后面只能是常量,不能有重复值。
相关文章推荐
- java 实现生成excel表头
- Netbeans打开包含中文文件时提示错误
- java多态的静态实例
- Java集合7:LinkedList的实现原理
- Java集合5:LinkedHashMap与LRU cache
- Java集合6:ArrayList的实现原理
- Java集合3:LinkedHashMap的实现原理
- Java集合4:LinkedHashSet的实现原理
- Java中Unicode编码和汉字之间的转换
- Java:Double Brace Initialization
- Java集合2:HashSet的实现原理
- Java集合1:HashMap的实现原理
- java 与mysql的连接
- 【spring】1.spring ioc原理和demo
- 【Java加密解密】DES加密算法
- 【Spring】依赖注入三种方式
- Spring MVC ModelAndView
- 【JAVASE】工具类防止调用者实例化
- 【Java加密解密】AES加密算法
- JavaMail实现收发邮件——(三)接收邮件