Java基础知识点
Java 8大基本类型所占字节数
类型 | 所占字节数 | bit数 | 取值范围 | 备注 |
---|---|---|---|---|
boolean | 1 | 1*8 | true、false | |
byte | 1 | 1*8 | -128~127 | 即 (-2)的7次方 ~ (2的7次方) - 1 |
char | 2 | 2*8 | Java中,只要是字符,不管是数字还是英文还是汉字,都占两个字节。 | |
short | 2 | 2*8 | -32768~32767 | 即 (-2)的15次方 ~ (2的15次方) - 1 |
int | 4 | 4*8 | -2147483648~2147483647 | 即 (-2)的31次方 ~ (2的31次方) - 1 |
long | 8 | 8*8 | 即 (-2)的63次方 ~ (2的63次方) - 1 | |
float | 4 | 4*8 | float 类型的数值有一个后缀 F(例如:3.14F) | |
double | 8 | 8*8 | 没有后缀 F 的浮点数值(例如:3.14)默认为 double |
ASCII,Unicode和UTF-8
http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
面向过程和面向对象的区别
面向过程:
-
优点:性能比面向对象高,因为面向对象中类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
-
缺点:不易维护、不易复用、不易扩展。
面向对象:
-
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。
-
缺点:性能比面向过程低。
Java的四个基本特性(抽象、封装、继承,多态)
-
抽象:就是把现实生活中的某一类东西提取出来,用程序代码表示,我们通常叫做类或者接口。抽象包括两个方面:一个是数据抽象,一个是过程抽象。数据抽象也就是对象的属性。过程抽象是对象的行为特征。
-
封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行封装隐藏。封装分为属性的封装和方法的封装。
-
继承:是对有着共同特性的多类事物,进行再抽象成一个类。这个类就是多类事物的父类。父类的意义在于抽取多类事物的共性。
-
多态:允许不同类的对象对同一消息做出响应。方法的重载、类的覆盖正体现了多态。
Java技术----多态的实现原理
http://blog.csdn.net/sinat_34311901/article/details/52208124
重载和重写的区别
http://www.jianshu.com/p/a6d00e5439fb
关于java中静态属性、静态方法的继承问题
http://www.jianshu.com/p/c2f64b94de20
构造器Constructor是否可被override
构造器不能被重写(Override),不能用static修饰构造器,只能用public、private、 protected这三个权限修饰符修饰,且不能有返回值。
访问修饰符public、protected、private、以及默认(default)的区别
public:在任何地方都能访问。
protected:在同一个包内的类可以访问,包外的子类可以访问、当前类中能访问。
private:只有在这个类中才能访问。
如果不写,那么使用默认权限(default):在当前内、同包内能访问。
|作用域|当前类|同包|子类|其他|
| ---- |:------:|:-----:|:------:|
|public | √| √ |√ |√ |
| protected | √| √ |√|×|
| default |√ | √ | ×| ×|
| private |√ |× | ×| ×|
是否可以继承String类
String类是final类,因此不可以被继承。一切由final修饰过的类都不能被继承。
java中String、StringBuffer、StringBuilder的区别
http://www.jianshu.com/p/90bd88e4957f
Java中 hashCode() 、equals()、== 的若干问题解答
http://www.cnblogs.com/skywang12345/p/3324958.html
Java中抽象类和接口的区别
http://www.jianshu.com/p/e30b076046df
自动装箱与拆箱
装箱:将基本类型用它们对应的引用类型包装起来;
拆箱:将包装类型转换为基本数据类型;
Java使用自动装箱和拆箱机制,节省了常用数值的内存开销和创建对象的开销,提高了效率,由编译器来完成,编译器会在编译期根据语法决定是否进行装箱和拆箱动作。
深入剖析Java中的装箱和拆箱 http://www.cnblogs.com/Qian123/p/5694228.html#_label2
Java泛型
泛型,即“参数化类型”。
创建集合时就指定集合元素的类型,该集合只能保存其指定类型的元素,避免使用强制类型转换。
Java编译器生成的字节码是不包涵泛型信息的,泛型类型信息将在编译处理的时候被擦除,这个过程即类型擦除。泛型擦除可以简单的理解为将泛型java代码转换为普通java代码,只不过编译器更直接点,将泛型java代码直接转换成普通java字节码。
类型擦除的主要过程如下:
1)将所有的泛型参数用其最左边界(最顶级的父类型)类型替换。
2)移除所有的类型参数。
泛型总结 http://www.cnblogs.com/lwbqqyumidi/p/3837629.html
java中 final 与 static
http://www.jianshu.com/p/0423faf0f57e
java中用static关键字修饰类(只适用于内部类)
http://www.jianshu.com/p/d6872311e996
static加载和初始化问题
http://blog.csdn.net/z69183787/article/details/63296077
Error和Exception的区别
http://www.jianshu.com/p/1ab9ad3c80d7
Java 内部类
Java 匿名内部类
强引用、软引用、弱引用、虚引用
Java 如何有效地避免OOM:善于利用软引用和弱引用 http://www.cnblogs.com/dolphin0520/p/3784171.html
JAVA 深克隆、浅克隆
http://www.jianshu.com/p/c976b23ad562
Java字符串数字转化为int类型不用Integer.parseInt()
先把String转换成char数组,有方法toCharArray()。
然后把每个char依次减去‘0’可以得到真实的数字(char[i]-'0') 现在可以将他们放到int数组中了。
从高位起,数字x10+下一位,循环累加。 完毕,如果还要健壮一点最好首先判空和长度。
JAVA 中的 split 用法
http://www.jianshu.com/p/7730847d60af
阻塞和非阻塞、同步和异步
http://www.jianshu.com/p/19fec945238f
网友评论