欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA基础知识点总结

程序员文章站 2024-02-06 09:09:58
DOC :dir:目录cd … 返回上一级目录cd \ 根路径java 语言得跨平台性:jvm:java虚拟机 编写的Java代码,都运行在jvm上 本身不具备跨平台性jre:java的运行时环境(运行)jdk:java程序开发工具包(开发)三者的关系:配置环境变量:......

DOC :

dir:目录
cd .. 返回上一级目录
cd  \ 根路径

java 语言得跨平台性:

jvm:java虚拟机 编写的Java代码,都运行在jvm上 本身不具备跨平台性
jre:java的运行时环境(运行)
jdk:java程序开发工具包(开发)

三者的关系:
JAVA基础知识点总结

配置环境变量:

1)path: ;%JAVA_HOME%\bin;
2)java_home:jdk的安装目录

标识符:

给类,方法,变量起名

变量:

1.局部变量:
	定义在方法内或者语句内,方法执行完,局部变量就没有了,**从属于语句块**
	使用之前,必须手动进行初始化
2.成员变量:
	定义在类里面,方法外面。**从属于对象**
	使用之前,不需要手动进行初始化,系统自动初始化:
	数字:0,0.0
	布尔:false
	char:\u0000
	引用类型:null
	
3.静态变量(类变量):
	定义在类里面,方法外面,使用static修饰。 **从属于类**
 	使用之前,不需要手动进行初始化,系统自动初始化:
 	数字:0,0.0
	布尔:false
	char:\u0000
	引用类型:null

数据类型:

**1.基本数据类型**
		**a)数字**
				i.整数:
				byte(1个字节)  		-128~127
	 			short(2个字节) 			-32768~65536/2 
	 			int(4个字节,整型常量默认该类型)    -21亿 ~21亿
	 			long(8个字节)  
	 			ii.浮点数:
	 			float(4个字节)  
				double(8个字节,浮点常量默认为该类型)
			**b)字符** 
				char(2个字节)
			**c)布尔**  
						boolean(1位)
**2.引用类型(4个字节)**
				a)数组
				b)对象
				c)接口

表达式:

			1.类型的自动提升
			如果有long,结果就是long。
			如果有double,结果就是double。
			2.强制转型

运算符:

			1.赋值运算符(=)
			错误:      正确:
			if(b=true)  if(b)    
			 if(c=3)  if(3==c)
			2.算术运算符
			3.关系运算符(==)
			常见错误写法: 1<a<3    1<a&&a<3
			4.逻辑运算符
			&&, ||, !    
			&,|    3&4
			5.位运算符
			&,|, <<(左移一位相当于乘以2),>>>(右移一位相当于除以2)
			6.扩展运算符
			+=,-=,*=,/=,%=
			7.三目运算符
			(布尔表达式)?A:B
			如果为真 A返回 如果为假 返回B

控制语句:

			1.顺序结构
			2.选择结构
				a)If
				b)If else
				c)If else if … else 
				d)switch  多值选择  表达式:int或char/short/byte, 枚举
			break问题
			3.循环结构
				a)while  先判断后执行
				b)for
				c)do  while  先执行后判断
			break: 强制终止整个循环
			continue:结束本次循环,继续下一次!

面向对象基础:

		1.对象的进化史
			a)基本数据类型阶段       数据少     无数据管理时代
			b)数组                数据多了,将同类型的数据放到一起     弱管理
			c)结构体          数据多了,数据复杂了。将不同类型的数据放到一起    强管理
			d)对象    数据多了、类型复杂了、行为复杂了。将不同类型的数据放到一起 超强管理

对象和类:

		对象是具体的,类是抽象的。  类也是一个模版,通过类这个模版我们也可以new
		对象。
		
		定义类:
		public  class  类名 {  (类名必须和文件名相同)
			
			//属性
			private  数据类型  属性名;   //建议增加相应的getter、setter方法
			
			//方法
			
		
			//构造方法
		}

构造方法:

		1.方法名必须跟类名保持一致
		2.无返回类型
		3.通过new来调用
		4.无参构造器问题:
				a)如果我们没有手动定义构造器,系统会自动为我们添加一个无参的构造器
				b)如果我们自己定义了构造器,系统就不会为我们添加无参构造器
		5.构造方法的第一句总是:super,即调用直接父类的构造方法。
				a)有继承关系的构造方法调用的顺序

方法的重载(Overload):

			两同(同一个类、同一个方法名)三不同(参数列表不同:;类型、个数、顺序)
			返回值不同,构成重载吗?  No
			形参名称不同,构成重在吗?  No
		this:
			普通方法中,调用本方法的对象。
			构造方法中,正要初始化的对象。
			还可以用来,调用其他的构造方法
		super:
		static:
			用它修饰的变量和方法,就变成了静态变量和静态方法。从属于类。通过类名即可调用。实际存储于方法区中。
		package:
			package必须位于非注释行第一句。
			包名:域名倒叙
		import:
			引入外部的类
		Import  static :导入类的静态属性
		final:
			修饰变量:常量(命名规范:全部大写,多个单词之间通过下划线隔开)
			修饰方法:不能被重写
			修饰类: 不能被继承

面向对象的三大特征:

	封装
			通过private、default 、protected、public关键字实现属性或方法的封装。
			“高内聚,低耦合”
			
	继承(extends)
		两个好处:
			1.代码重用
			2.通过继承实现对现实世界更加准确的建模
		类只有单继承,没有像C++那样的多继承
		
		方法重写(Override)的要点:
		=:方法名保持一致
		>=: 子类权限修饰符可以大于等于父类的。
		<=, <=: 子类的返回值类型小于等于父类的类型。 子类声明异常类型不能超过父类的类型。
		
	Object类:
	1.是我们所有类的根基类
	2.toString
	3.equals、hashcode
	4.wait、notify、notifyAll

	多态(polymorphism)
三个必要条件:继承、方法的重写、父类引用指向子类对象


	动态绑定、静态绑定:
	
	抽象类(abstract):
	1.包含抽象方法(抽象方法必须被子类重写)的类,一定是抽象类。
	2.抽象类不能被new。
	3.抽象类可以包含:普通方法、成员变量、构造方法。
	
	接口:
	1.interface
	2.类实现接口:implements    可以实现多个接口
	3.接口可以多继承
	4.接口定义的一组规范!*实现现实世界中这样的逻辑::如果你是…则必须能…*
	
	内存机制:
	栈
	1.存放局部变量
	2.不可以被多个线程共享
	3.空间连续,速度快
	
	堆
	1.存放对象
	2.可以被多个线程共享
	3.空间不连续,速度慢,但是灵活
	
	方法区
	1.存放类的信息:代码、静态变量、字符串常量等
	2.可以被多个线程共享
	3.空间不连续,速度慢。但是灵活
	
	垃圾回收器(GC   Garbage  Collection):
	1.程序员不能调用垃圾回收器。但是可以通过System.gc()建议回收。
	2.finallize:一般也不用调用
				
	递归算法:
	1.递归头:什么时候不调用自己
	2.递归体:什么时候调用自己

异常机制

			1.try  catch(先小后大)  finally
			2.声明抛出异常:throws 
			3.手动抛出异常:throw
			4.自定义异常
			a)extends  Exception或者他的子类

数组:

1.长度固定,不可变
2.所有元素的类型一致。
3.元素类型可以为任意类型
4.通过下标来引用相关元素。下标不能超过length-1
5.数组也是对象。数组的元素可以看做对象的成员变量。所以,成员变量自动初始化的规则也适用于数组元素。
6.多维数组:数组的元素是数组
7.数组的三种初始化的方式:
a)动态初始化
b)静态初始化: int[] a = {2,3,4}
c)默认初始化
8.Arrays类:包含了对数组元素的排序、查找。
JAVA基础知识点总结
9.算法:
a)冒泡排序
JAVA基础知识点总结
b)二分法
JAVA基础知识点总结

容器:

1.Collection
a)List(有序,可重复)
i.ArrayList 底层用数组实现。线程不安全,效率高
ii.LinkedList:底层用双向链表实现。线程不安全,效率高
iii.Vector:底层用数组实现。线程安全,效率低
b)Set(无序,不可重复)
i.HashSet(内部是使用HashMap实现)
2.Map
采用“key-value”来存储我们数据。
a)HashMap 线程不安全,效率高
b)HashTable线程安全,效率低
3.Iterator
通过他,可以实现遍历容器中元素
4.泛型
5.Collections工具类

常用类:

1.包装类
实现了基本数据类型和对象的互相转化。
自动装箱、自动拆箱

2.String/StringBuilder/StringBuffer
String:不可变字符序列
StringBuilder:可变字符序列,线程不安全
StringBuffer:可变字符序列,线程安全

3.时间:Date、DateFormat、Calendar
Date:使用毫秒数来表示我们的时间概念。
DateFormat:实现Date对象跟String对象的互相转化(根据指定格式互相转化 yyyy-MM-dd)
Calendar: 日期类。实现了将人的日期的概念跟Date的互相转化

4.File
代表文件或者目录的一个抽象

5.Math
数学类

		1	xxxValue()
		将 Number 对象转换为xxx数据类型的值并返回。
		2	compareTo()
		将number对象与参数比较。
		3	equals()
		判断number对象是否与参数相等。
		4	valueOf()
		返回一个 Number 对象指定的内置数据类型
		5	toString()
		以字符串形式返回值。
		6	parseInt()
		将字符串解析为int类型。
		7	abs()
		返回参数的绝对值。
		8	ceil()
		返回大于等于( >= )给定参数的的最小整数,类型为双精度浮点型。
		9	floor()
		返回小于等于(<=)给定参数的最大整数 。
		10	rint()
		返回与参数最接近的整数。返回类型为double。
		11	round()
		它表示四舍五入,算法为 Math.floor(x+0.5),即将原来的数字加上 0.5 后再向下取整,所以,Math.round(11.5) 的结果为12,Math.round(-11.5) 的结果为-11。
		12	min()
		返回两个参数中的最小值。
		13	max()
		返回两个参数中的最大值。
		14	exp()
		返回自然数底数e的参数次方。
		15	log()
		返回参数的自然数底数的对数值。
		16	pow()
		返回第一个参数的第二个参数次方。
		17	sqrt()
		求参数的算术平方根。
		18	sin()
		求指定double类型参数的正弦值。
		19	cos()
		求指定double类型参数的余弦值。
		20	tan()
		求指定double类型参数的正切值。
		21	asin()
		求指定double类型参数的反正弦值。
		22	acos()
		求指定double类型参数的反余弦值。
		23	atan()
		求指定double类型参数的反正切值。
		24	atan2()
		将笛卡尔坐标转换为极坐标,并返回极坐标的角度值。
		25	toDegrees()
		将参数转化为角度。
		26	toRadians()
		将角度转换为弧度。
		27	random()
		返回一个随机数。

6.枚举
如果我们要定义一组常量,建议使用枚举。
不要学习和使用枚举的高级特性。

IO流:

1.InputStream
a)FileInputStream
b)ByteArrayInputStream
c)ObjectInputStream
d)DataInputStream
e)BufferedInputStream

2.OutputStream
a)FileoutputStream
b)ByteArrayOutputStream
c)ObjectOutputStream
d)DataOutputStream
e)PrintStream
f)BufferedOutputStream

3.Reader
a)FileReader
b)InputStreamReader:转换流:将字节流转化成字符流
c)BufferedReader

4.Writer
a)File Writer
b)OutputStream Writer:转换流:将字节流转化成字符流
c)Buffered Writer

多线程:

1.定义多线程类的两种方式:
a)Extends Thread
b)Implements Runnalbe
2.线程的状态:
a)new
b)就绪状态(调用start方法后)
c)运行状态
d)阻塞状态
i.sleep:不会释放持有的对象锁
ii.join:等待另一个线程执行完成
iii.wait:会释放持有的对象锁
iv.synchronized。运行同步代码,但是没有获得指定对象的锁,于是进入指定对象的锁池等待。
e)终止
i.不建议使用:stop、destroy直接终止。
ii.建议通过boolean变量,正常终止线程运行。
3.线程的优先级
a)1-10. 默认是5.
b)优先级低只是意味着调用的概率低,并不是不被调用。
4.资源同步
synchronized修饰方法、语句块
5.死锁
建议不要同时持有多个对象的锁!
6.“生产者-消费者”模式

网络编程:

1.InetAddress:封装了IP和DNS,没有端口。

2.InetSocketAddress:封装了IP和端口

3.URL:代表一个网络的资源
a)openStream

4.TCP通讯
a)特点:面向连接、安全、稳定。
b)ServerSocket
c)Socket

5.UDP通信
a)特点:不面向连接。可能会丢数据。发送数据效率高。
b)DatagramPacket:数据打包
c)DategramSocket:数据发送和接收

GUI编程(AWT/SWING/SWT):

1.组件
a)Component(普通组件、容器)

2.布局管理器
a)FlowLayout
b)BorderLayout
c)CardLayout
d)GridLayout

3.事件
a)事件对象:KeyEvent、MouseEvent….
b)事件源对象:组件
c)监听器(一般采用匿名内部类来定义):
KeyListener KeyAdapter
WindowListener WindowAdapter
MouseListener MouseAdapter
MouseMotionListener MouseMotionAdapter

4.菜单制作
a)MenuBar
b)Menu
c)MemuItem
d)CheckBoxMenuItem
e)MenuShortCut 定义菜单项的快捷键

多媒体编程:

1.字体Font
2.Graphics
3.做音视频处理:JMF

本文地址:https://blog.csdn.net/qq_48254516/article/details/107053436

上一篇: wxPython事件驱动实例详解

下一篇: