Java基础知识点

来源:互联网 发布:单片机usb通讯协议 编辑:程序博客网 时间:2024/06/13 04:39

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的四个基本特性(抽象、封装、继承,多态)

  • 抽象:就是把现实生活中的某一类东西提取出来,用程序代码表示,我们通常叫做类或者接口。抽象包括两个方面:一个是数据抽象,一个是过程抽象。数据抽象也就是对象的属性。过程抽象是对象的行为特征。

  • 封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行封装隐藏。封装分为属性的封装和方法的封装。

  • 继承:是对有着共同特性的多类事物,进行再抽象成一个类。这个类就是多类事物的父类。父类的意义在于抽取多类事物的共性。

  • 多态:允许不同类的对象对同一消息做出响应。方法的重载、类的覆盖正体现了多态。

重载和重写的区别

http://blog.csdn.net/hbtj_1216/article/details/75425341

关于java中静态属性、静态方法的继承问题

http://blog.csdn.net/hbtj_1216/article/details/75425995

构造器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://blog.csdn.net/hbtj_1216/article/details/70305992

Java中 hashCode() 、equals()、== 的若干问题解答

http://www.cnblogs.com/skywang12345/p/3324958.html

Java中抽象类和接口的区别

http://blog.csdn.net/hbtj_1216/article/details/75514997

自动装箱与拆箱

装箱:将基本类型用它们对应的引用类型包装起来;
拆箱:将包装类型转换为基本数据类型;
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://blog.csdn.net/hbtj_1216/article/details/69524786

java中用static关键字修饰类(只适用于内部类)

http://blog.csdn.net/hbtj_1216/article/details/77101234

static加载和初始化问题

http://blog.csdn.net/z69183787/article/details/63296077

Error和Exception的区别

http://blog.csdn.net/hbtj_1216/article/details/77197538


Java 内部类

http://cmsblogs.com/?p=63

Java 匿名内部类

http://cmsblogs.com/?p=68


强引用、软引用、弱引用、虚引用

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://blog.csdn.net/hbtj_1216/article/details/53068040


阻塞和非阻塞、同步和异步

http://blog.csdn.net/hbtj_1216/article/details/77866384