一阶段java知识点汇总

1
8大基本数据类型 ?
java基本数据类型有8种,其他是引用数据类型:

(1)基本数据类型:byte、short、int、long、float、double、char、boolean
(2)引用数据类型: 数组、类、接口。
级别从低到高为:byte,char,short–>int–>float–>long–>double
自动类型转换:从低级别到高级别,系统自动转的;
强制类型转换:把一个高级别的数赋给一个别该数的级别低的变量(注意变量的大小,防止数据溢出);
自动转换规则
强制转换语法
2
if if else switch switch能支持的数据类型?
byte short int char 枚举 包装类 String
3
while do while for

(1)while循环语句和选择机构语句(if、if…else、if…else、if…else if …else、switch)讲到的条件判断语句有些相似,都是根据条件判断来决定是否执行大括号内的执行语句。区别在于, while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,whle循环结束。while循环语句的语法结构如下:

while(循环条件){

     执行语句

     …

}
(2)do…while循环语句和while循环语句功能类似,其语法结构如下:

do {

     执行语句

} while(循环条件);
(3)for循环语句是java循环语句中最常用的循环语句,一般用在循环次数已知的情况下使用。for循环语句的语法格式如下:

fox(初始化表达式;循环条件;操作表达式){

     执行语句

     ……

}
4
方法基本语法和调用
(1) 关键字:其实就是某种语言赋予了特殊含义的单词。

保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。

(再设置变量时应避开 关键字和保留字)

(2)
标示符:

Java中的包、类、方法、参数和变量的名字,可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,不能是Java中的保留关键字。

(3)
常量:是在程序中的不会变化的数据。

(4)
变量:其实就是内存中的一个存储空间,用于存储常量数据。

作用:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。

特点:变量空间可以重复使用。
5
数组 jvm内存的划分 各自的作用
JVM内存区域分为五个部分,分别是堆,方法区,虚拟机栈,本地方法栈,程序计数器。

堆。 堆是Java对象的存储区域,任何用new字段分配的Java对象实例和数组,都被分配在堆上,Java堆可使用-Xms -Xmx进行内存控制,值得一提的是从JDK1.7版本之后,运行时常量池从方法区移到了堆上。
方法区。它用于存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据,方法区在JDK1.7版本及以前被称为永久代,从JDK1.8永久代被移除。
虚拟机栈。虚拟机栈中执行每个方法的时候,都会创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息。
本地方法栈。与虚拟机栈发挥的作用相似,相比于虚拟机栈为Java方法服务,本地方法栈为虚拟机使用的Native方法服务,执行每个本地方法的时候,都会创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息。
程序计数器。指示Java虚拟机下一条需要执行的字节码指令。
以上五个区域是Java虚拟机内存划分情况,其中方法区和堆被JVM中多个线程共享,比如类的静态常量就被存放在方法区,供类对象之间共享,虚拟机栈,本地方法栈,pc寄存器是每个线程独立拥有的,不会与其他线程共享。
所以Java在通过new创建一个类对象实例的时候,一方面会在虚拟机栈中创建一个该对象的引用,另一方面会在堆上创建类对象的实例,然后将对象引用指向该对象的实例。对象引用存放在每一个方法对应的栈帧中。
6
类和对象
成员变量和局部变量的区别

(1)在类中位置不同:成员变量:在类中方法外。局部变量:在方法定义中或者方法声明上。

(2)
在内存中的位置不同:成员变量:在堆内存。 局部变量:在栈内存。

(3)
生命周期不同:成员变量:随着对象的创建而存在,随着对象的消失而消失。 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失。

(4)
初始化值不同:成员变量:有默认值初始化。局部变量:没有默认值初始化,必须定义,赋值,然后才能使用。

(5)
注意事项:局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
引用传递和值传递的区别
值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。

引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。

在 Java 应用程序中永远不会传递对象,而只传递对象引用。因此是按引用传递对象。但重要的是要区分参数是如何传递的,这才是该节选的意图。Java 应用程序按引用传递对象这一事实并不意味着 Java 应用程序按引用传递参数。参数可以是对象引用,而 Java 应用程序是按值传递对象引用的。

Java 应用程序中的变量可以为以下两种类型之一:引用类型或基本类型。当作为参数传递给一个方法时,处理这两种类型的方式是相同的。两种类型都是按值传递的;没有一种按引用传递。
7
封装
构造方法和方法重载

重载的含义
在Java语言中,允许多个方法的名称相同,但是参数列表不同,此种方式称为方法的重载

Java语法规定,任何一个类都要有构造方法,如果这个类中没有构造方法,则编译
器在编译的时候自动添加一个空的无参的构造方法,这个方法就称为默认构造方法

static修饰变量 方法和代码块

使用 static 修饰符修饰的属性(成员变量)、常量和成员方法称为静态变量、常量和方法,它们统称为静态成员,归整个类所有,不依赖于类的特定实例,被类的所有实例共享。只要这个类被加载,Java 虚拟机就可以根据类名在运行时数据区的方法区内找到它们。

静态变量 实际上类的成员变量可以分为两种:静态变量(或称为类变量),指被 static 修饰的成员变量;实例变量,指没有被 static 修饰的成员变量。
调用静态成员的语法形式如下:
类名.静态成员
静态变量与实例变量的区别如下:
对于静态变量,运行时,Java 虚拟机只为静态变量分配一次内存,在加载类的过程中完成静态变量的内存分配。在类的内部,可以在任何方法内直接访问静态变量;在其他类中,可以通过类名访问该类中的静态变量。
对于实例变量,每创建一个实例,Java 虚拟机就会为实例变量分配一次内存。在类的内部,可以在非静态方法中直接访问实例变量;在本类的静态方法或其他类中则需要通过类的实例对象进行访问。

静态变量在类中的作用如下:
静态变量可以被类的所有实例共享,因此静态变量可以作为实例之间的共享数据,增加实例之间的交互性。
如果类的所有实例都包含一个相同的常量属性,则可以把这个属性定义为静态常量类型,从而节省内存空间。例如,在类中定义一个静态常量 PI。
private关键字和get和set方法
set的意思为设置,而get的意思为获取,由此可见get()和set()两个方法分别是用来获取和设置数据的。
8
继承
继承后创建子类对象 先执行父类构造方法,在执行子类构造 super
private
默认 protected
public

方法重写的4个规则
方法重载和方法重写的区别
Object的toString()和equals()方法
抽象类和抽象方法
Java中使用抽象类,限制实例化
final

9
多态 实现多态的前提
继承
方法重写
父类变量保存子类对象

父类变量无法调用子类独有方法 强制类型转换

10
接口 必须知道的接口特性

接口不可以被实例化 实现类必须实现接口的所有方法 实现类可以实现多个接口
implements、多个接口使用逗号隔开

接口中的变量都是静态常量(public static final)必须给初始值
接口中的方法都是抽象方法

11
内部类 重点掌握匿名内部类
匿名内部类的定义格式:

接口名称 对象名 = new 接口名称() {
// 覆盖重写所有抽象方法
};
12
单例模式 饿汉式和懒汉式
13
异常 异常处理的5个关键字
运行时异常和检查异常的区别
自定义异常的步骤
列出常见的5-10个异常
14
集合
List接口实现类
ArrayList 数组结构 查询快 增删慢
LinkedList 双向链表 查询慢 增删快
Set接口实现类
HashSet 哈希表数据结构 数组+链表 存储自定义数据需要重写hashcode和equals
Map接口实现类
HashMap 哈希表数据结构 数组+链表 key值存储自定义数据需要重写hashcode和equals

15
枚举
16
包装类和基本数据类型的转化
17
String常用方法 双引号的数据直接存在字符串常量池 new的String在堆中存
18
StringBuffer
19
Date和SimpleDateFormat类
20
输入输出流
file类常用方法
fileinputstream fileoutputstream
filereader filewriter
BufferedReader BufferedWriter
21
序列化和反序列化 重点
22
多线程 多线程的3种创建方式 sleep和wait区别
线程同步的3种方式
线程间通信
线程池
23
网络编程 ip地址 端口号 socket和serversocket
24
反射
获取Class对象的3种方式
反射单个属性
反射单个方法
反射单个构造方法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值