时隔好久,总算有时间去写自己关于大学三年的知识总结了,那就从Java开始吧,毕竟是一个老大哥了。
注意点1:如果Java原文件中具有多个类,则文件名称只需要和其中一个类的文件名称一样即可,否则必须和public类的名称一样。
注意点2:业界通常采用的编程风格为Kernighan风格,即行尾风格。习惯于在每个类下面写明该类用途,在每个方法下面写出该方法用途及返回值。类名首字母大写,简明晓意。变量定义使用单行单定义。
注意点3:标识符由字母,下划线,美元符号和数字组成,标识符第一个字符不能是数字,不能是关键字,标识符区分大小写。
注意点4:‘a’==97,ASCll码可以和字符直接转换
注意点5:当把级别高的变量的值赋予级别低的变量时,必须使用显示类型转换
注意点6:优先级算术运算》相等关系运算》位运算》逻辑运算》》三目运算》赋值运算
注意点7:switch结构需要使用break跳出,勿
注意点8:声明数组的时候不能指定元素的个数,例如int a[10] is wrong,但是可以在声明时候分配变量,例如int a[] = new int[8],java允许使用int变量的值提前指定数组的元素个数。
注意点9:如果想输出char型数组的引用,必须让数组a和字符串做+运算
注意点10:遍历数组的三种方法 for(each:数组),for语句,Arrays.toString()方法返回列表。
注意点11:构造方法没有类型,若有多个构造方法必须保证参数不同或者参数类型不同。
注意点12:如果两个对象具有相同的引用,那么二者具有完全相同的实体,可以使用System.gc()方法立即开始垃圾回收。
注意点13:基本数据类型的传值,向该参数传值的级别不能高于该参数的级别。引用类型包括数组,对象,接口,单纯改变参数中存放的引用不会影响向其传值的变量中存放的引用。(即对原引用没有影响)
注意点14:注意实例对象和类变量的区别,所有对象共享类变量。不同对象的实例变量互不相同。方法前面加上static的是类方法。
注意点15:类方法不能操作实例变量,因为在类创建对象前还没有为实例对象分配内存。实例方法可以操作类变量。
注意点16:Java中存在两种多态,方法重载和重写,方法的重载是指同一个类中方法具有不同的名字。
注意点17:在构造方法中使用this,代表用该构造方法创建对象,在实例方法中使用this表示正在调用该方法的对象,一般可以省略,当实例变量和局部变量的名字相同时候,不可以省略。
注意点18:在编写类的时候,类中的实例方法总可以操作类中的实例变量和类变量,类方法总可以操作类中的类变量,和访问限制没有关系。
注意点19:不能使用protected和private修饰类。
注意点20:当父子类不在一个包中的时候,父类中的private和友好访问权限的变量和方法不能被继承。
注意点21:子类重写父类方法的时候不能参数也相同,不可以降低方法的访问权限。
注意点22:当子类的构造方法创建一个子类的对象的时候,子类的构造方法优先调用父类的某个构造方法,如果子类的构造方法没有明显指明使用父类的哪一个构造方法,则默认调用不带参数的构造方法。
注意点23:super,this必须是头一条语句。调用构造方法的时候子类必须使用super。
注意点24:多态:向上转型的对象不能调用子类中的成员变量和新增方法。若要使用则必须使用强制类型转换。如果子类重写了父类的方法,则调用的时候一定调用了子类重写的实例方法。如果子类重写了父类的类方法,则只能调用父类的静态方法。
注意点25:abstract方法只允许声明,不允许实现,abstract类不可以使用new创建对象。继承abstract类的必须全部实现其中的抽象方法。
注意点26:接口体中仅包含常量(final)和抽象方法两部分。当非抽象类实现该接口的时候必须全部实现其中的抽象方法,并且必须显示public。如果一个类没有全部实现接口,其必定是抽象类。父类实现了某接口,子类不必显示实现该接口。
注意点27:接口属于引用型变量,可以类似多态使用,接口回调。可以使用接口参数面向接口编程。
注意点28:匿名类(我觉得可以避免书写抽象类的实现类,直接写在main函数里;若为接口,必须实现所有的接口方法)可以访问外嵌类的成员变量和方法,匿名类中的类体不可以声明static成员变量和方法。
注意点29:可以使用assert booleanExpression:message来提示断言,没必要笨拙的使用System.out.print()
注意点30:String类的equals方法只比较实例是否相同,==比较对象是否相同。
注意点31:字符串转化为整型使用Interger.parseInt(),数字转化为String型使用String.valueof(),或者使用数字+“ ”。字符串转化为数组使用toCharArray(),或者getChars()。
注意点34:{}表示次数,wsd作为特殊字符含义要清楚,[]表示其中的任意一个字符,?+*.特殊含义要记清楚。
注意点35:StringBuffer的capacity和length不一样。capacity为16的倍数,为容量。length为实际存储长度。
注意点36:#如果分组中具有多个分隔符,则最后一个分隔符与整数结尾之间的间隔才是分组的大小,#,##,##00.00为四分组
注意点37:RandomAccessFile流的readLine()方法在读取含有非ASCII字符的时候会出现乱码情况,这个时候应该把readLine()读到的字符串用“iso-8859-1”重新编码存储到bytes中,然后再用当前机器的默认编码将该数组转化为字符串。