Java基础知识点总结

1、Java的基本数据类型

引用:https://blog.csdn.net/Frank_Adam/article/details/79487873

1)基本数据类型: 
整数型:byte,short,int(默认),long
字符型:char 
浮点型:float,double(默认) 
布尔型:boolean 
Float和long类型必须加后缀:float a=3.5f、long b = 95l

类型位数字节数
short216
int432
long864
float432
double864
char216

基本数据类型不是对象,为了使其成为对象便于调用包装类中封装好的方法,可以通过装箱的方式让其成为对象。

引用:https://blog.csdn.net/yudongy2008/article/details/6045478

原始类型:boolean,char,byte,short,int,long,float,double

包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

2)String是引用类型不属于基本类型

String 被声明为 final,因此它不可被继承。

在 Java 8 中,String 内部使用 char 数组存储数据。

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
    /** The value is used for character storage. */
    private final char value[];
}

在 Java 9 之后,String 类的实现改用 byte 数组存储字符串,同时使用 coder 来标识使用了哪种编码。

数组被声明为 final,可以保证 String 不可变。

String, StringBuffer and StringBuilder

1. 可变性

  • String 不可变
  • StringBuffer 和 StringBuilder 可变

2. 线程安全

  • String 不可变,因此是线程安全的
  • StringBuilder 不是线程安全的
  • StringBuffer 是线程安全的,内部使用 synchronized 进行同步

字符串常量池(String Pool)保存着所有字符串字面量(literal strings),这些字面量在编译时期就确定。不仅如此,还可以使用 String 的 intern() 方法在运行过程中将字符串添加到 String Pool 中。

栈内存和堆内存、“==”和equals()的区别

https://blog.csdn.net/sinat_41144773/article/details/89742329

 

2、面向对象的三大特性

https://blog.csdn.net/sinat_41144773/article/details/92429243

封装:封装可以使类具有独立性和隔离性;保证类的高内聚。只暴露给类外部或者子类必须的属性和操作。类封装的实现依赖类的修饰符(public、protected和private等)

继承:对现有类的一种复用机制。一个类如果继承现有的类,则这个类将拥有被继承类的所有非私有特性(属性和操作)。这里指的继承包含:类的继承和接口的实现。

多态:多态是在继承的基础上实现的。多态的三个要素:继承、重写和父类引用指向子类对象。父类引用指向不同的子类对象时,调用相同的方法,呈现出不同的行为;就是类多态特性。多态可以分成编译时多态和运行时多态。

 

3、Java关键字: final、static、this.....

引用:https://blog.csdn.net/topdeveloperr/article/details/81414318

final

  1. 修饰变量时,表示变量只能一次赋值以后值不能被修改(常量)
  2. 修饰方法时,方法不能被重写(Override)
  3. 修饰类时,类不能被继承。

static

引用:https://blog.csdn.net/kuangay/article/details/81485324

  1. 随着类的加载而加载。也就是说:静态会随着类的消失而消失。说明它的生命周期最长。
  2. 优先于对象存在。静态是先存在的,对象是后存在的
  3. 可以直接被类名调用

this

  1. this调用本类中的属性,也就是类中的成员变量
  2.  this调用本类中的其他方法;
  3.  this调用本类中的其他构造方法,调用时要放在构造方法的首行。

4、Java创建数组的3种方式

引用:https://blog.csdn.net/Frank_Adam/article/details/79487873

int[] arr1 = {1,2,3,4};             //正确
int[] arr2 = new int[4];            //正确
int[] arr3 = new int[]{1,2,3,4};    //正确
int[] arr4 = new int[4]{1,2,3,4};s  //错误,编译不通过

数组的特性:

如果数组越界,报ArrayIndexOutOfBoundsException错误(特别常见)

如果不对数组指定初值,默认初始化为相应数据类型的默认值。

多维数组,嵌套中括号即可。

 

5、Arraylist和Linkedlist的区别   

引用:https://blog.csdn.net/qq_28289405/article/details/82344310

Arraylist源码分析:https://blog.csdn.net/mazhimazh/article/details/19543911

  1.  ArrayList是实现了基于动态数组的数据结构,而LinkedList是基于链表的数据结构

  2.  对于随机访问get和set,ArrayList要优于LinkedList,LinkedList不支持高效的随机访问

  3.  ArrayList适合查找,LinkedList适合任意位置增删

LinkedList

1. 概览

基于双向链表实现,使用 Node 存储链表节点信息。

private static class Node<E> {
    E item;
    Node<E> next;
    Node<E> prev;
}

每个链表存储了 first 和 last 指针:

transient Node<E> first;
transient Node<E> last;

 

6、&和&&的区别

&&和&都是表示与,区别是&&(短路与)只要第一个条件不满足,后面条件就不再判断。而&要对所有的条件都进行判断。

||和|都是表示“或”,区别是||(短路或)只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。

 

7、接口和抽象类

引用:https://blog.csdn.net/qq_33253647/article/details/78052767

接口:

1.接口的定义为的关键字为interface

2.接口中只能有方法和变量,变量为public static final类型,方法只能被可以为public(默认)和protected修饰,方法不能有具体的实现

3.一个类可以实现多个接口

4.一个类实现接口,必须要实现接口的所有的方法

抽象类:

1.抽象类必须用 abstract修饰

2.如果一个类有abstract方法,这个类一定是抽象类

3.抽象类不一定有抽象方法

4.抽象类可以有自己的变量

5.如果一个类如果继承一个抽象类,如果没有实现所有的抽象方法,那它也要为抽象类

 

8、转发(forward)和重定向(redirect)的区别

   redirect :显示新的URL          forward:地址栏不变

   redirect:不能可以共享request里面的数据       forward:可以共享

   redirect:请求两次            forward:是一次

 

9、泛型

引用:http://www.importnew.com/24029.html

          https://blog.csdn.net/lonelyroamer/article/details/7864531

      泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Parameterized Type)的应用,也就是说所操作的数据类型被指定为一个参数,在用到的时候在指定具体的类型。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口和泛型方法。

 

10、equals和==  、equals和hashcode的关系  

https://blog.csdn.net/sinat_41144773/article/details/92430263

引用:http://www.cnblogs.com/yuanblog/p/4441017.html

==用于比较引用类型和比较基本数据类型时具有不同的功能:
比较基本数据类型,如果两个值相同,则结果为true
而在比较引用时,如果引用指向内存中的同一对象,结果为true

 

未完。。。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Java知识汇总.pdf" 是一份Java编程语言相关的知识总结文档。Java是一种广泛应用于软件开发的高级编程语言,具有跨平台性、面向对象和可移植性等特。 这份"Java知识汇总.pdf" 可能包含了Java语言的基础知识,如Java的语法、数据类型、控制流等;也可能包含了面向对象编程的概念和使用,如类和对象、继承、封装和多态等;此外,还可能涉及Java的核心API和常用类库,如字符串处理、文件操作、集合框架、多线程编程等;还有可能包含一些Java开发工具的使用,如Eclipse、IntelliJ IDEA等。 这份知识汇总文档可能会从入门到进阶的角度,逐步展开Java的相关知识点,帮助读者系统地学习和掌握Java编程语言。它可能会通过示例代码、图表、解析和实践练习等多种方式,帮助读者理解和应用Java的相关概念和技巧。 如果要充分利用"Java知识汇总.pdf",读者可以按照文档的目录结构和学习建议,逐一阅读和学习每个章节,完成相应的练习和编程实践,加深对Java编程语言的理解和实际应用能力。同时,读者还可以积极参与Java程序员的交流社区,分享问题、解答问题,与其他开发者共同进步。 总之,"Java知识汇总.pdf" 是一份系统、全面的Java编程语言知识总结文档,可以帮助读者学习和掌握Java编程语言,并在实际的软件开发中应用Java的相关技术和工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值