javaSE基础知识点
2022-04-15 00:23:16 0 举报
AI智能生成
登录查看完整内容
跟狂神说复习Javase基础知识点
作者其他创作
大纲/内容
我可以学好这个语言!
注册博客:1~27篇左右,作为单个复习,我一篇没写!
# 这是一级标题## 这是二级标题### 这是三级标题#### 这是四级标题##### 这是五级标题###### 这是六级标题
标题
**这是加粗的文字***这是倾斜的文字*`***这是斜体加粗的文字***~~这是加删除线的文字~~
字体
>这是引用的内容>>这是引用的内容>>>>>>>>>>这是引用的内容
引用
-------********
分割线
![图片alt](图片地址 ''图片title'')
图片
[超链接名](超链接地址 \"超链接title\")title可加可不加
超链接
- 列表内容+ 列表内容* 列表内容注意:- + * 跟内容之间都要有一个空格
有序列表
1. 列表内容2. 列表内容3. 列表内容注意:序号跟内容之间要有空格
无序列表
列表
表头|表头|表头---|:--:|---:内容|内容|内容内容|内容|内容第二行分割表头和内容。- 有一个就行,为了对齐,多加了几个文字默认居左-两边加:表示文字居中-右边加:表示文字居右注:原生的语法两边都要用 | 包起来。此处省略
表格
`代码内容`
单行代码
(```) 代码... 代码... 代码...(```)
代码块
代码
```flowst=>start: 开始op=>operation: My Operationcond=>condition: Yes or No?e=>endst->op->condcond(yes)->econd(no)->op&```
流程图
MarkDown语法
1.Ctrl + R(快捷键打开命令窗口)2. exit 退出3. DIR 含义:显示指定路径上所有文件或目录的信息4. CD 含义:进入指定目录5. 换盘: cd /d E:6. MD 含义:建立目录7. RD 含义:删除目录8. DEL 含义:删除文件
简单的Dos命令
机器语言 --->汇编语言 -->高级计算机语言
计算机语言发展
java SE
Android
java ME
java EE
1995
Hadoop
2006
java的诞生
配置环境变量
开发工具包
JDK
运行环境
JRE
java语言初识
javac Hello.java
java Hello
解释型语言
编译型
idea
public class{}
HelloWorld
行内注释//
多行注释/**/
javadoc生成帮助文档
文档注释/** */
注释
关键字
标识符
byte 1
short 2
int(默认)4
long 8
0b 二进制
0x 十六进制
0 八进制
整数
float 4
double(默认)8
BigDecimal
浮点数
char 2
ascii
utf-8
unicode
\\b
\
\\t
\\'
\\''
\\\\
'\\u0000'
字符
boolean 1位
if(a)
布尔值
基本数据类型
类
接口
数组
引用数据类型
数据类型
低转高
自动类型转换
高转低。 (低)高
强制类型转换
类型转换
type varName[=value];
类变量
实例变量
局部变量
作用域
final MAX_A=10;
常量
1.见名知意
2.驼峰命名(变量,方法)
3.类,首字母大写,驼峰命令
4.常量;大写+下划线
5.不要使用拼音命令
命名规范
变量和常量
+ - * / % ++ --
算数运算符
=
赋值运算符
> < >= <= == != instanceof
关系运算符
&& || !
逻辑运算符
& | ^ ~ >> << >>>
位运算符
? :
条件运算符
+= -= *= /=
拓展运算符
运算符
域名倒写
防止命名冲突
package
import
包机制
JDK帮助文档
@author
@version
@since
@param
@return
@throws
javadoc
JavaDoc
基础语法
用户交互System.in
Scanner
程序默认的结构,自上而下的执行
顺序结构
if单选择结构
if-else双选结构
if-else if-else多选择结构
jdk支持了String类型
case穿透现象
default
switch
选择结构
while
do...while
for(int i=0;i<100;i++)
for
九九乘法表
增强for循环
循环结构
break:跳出循环
continue:中止当前循环
带标签的continue
return:结束方法的运行
break&continue
流程控制
什么是方法!
修饰符 返回值 方法名(参数名){return 返回值;}
方法的定义
类名.方法
对象.方法
方法的调用
名字相同,参数列表不同
方法重载
给main方法传递参数
命令行传参
...
必须放在最后一个参数
可变长度参数
自己调用自己,给自己一个出口
面试常问
递归
方法
new int[5]
必须是同一个类型
一维数组的定义
通过下标拿到值
ArrayIndexoutofBounds
增加for循环遍历
数组的使用
int[][]
二维数组
Arrays工具类
冒泡排序
选择排序
插入排序
快排
归并
希尔
堆排序
基数排序
排序算法
什么是面向对象
类是对象的抽象:模版Class
对象是类的具体
类与对象
默认的无参构造
如果手动定义了有参构造就必须手动再加一个无参构造
单例模式,需要构造器私有!
构造的重载
构造方法
栈存放引用
堆存放具体的对象
new对象
属性私有,get,set
封装
extends
Object
子类拥有父类的全部特性
方法重写
this
super
java是单继承,只能继承一个父类
继承
父类的引用指向子类的对象 Person person=new Student();
instanceof关键字,如果匹配,可以进行类型之间的转换
多态
public
protected
private
static
final
abstract
修饰符
interface
约束,只能定义方法名
子类实现接口,必须重写其中的方法
只有一个方法的借口叫做函数式接口,可以使用lambda表达式简化
接口比抽象类更抽象
局部内部类
静态内部类
匿名内部类(重点)
内部类
面向对象
1/0
ClassNotFound
NullPoint
UnKownType
下标越界异常
......
运行时异常
Exception
AWT错误
StackOverFlow
OutOfMemory
JVM错误
Error
Throwable
try{}
catch(){}
finally{}
手动抛出异常
throw
方法抛出异常
throws
五个关键字
继承Exception类即可
自定义异常
异常
hashcode()
toString()
clone()
getClass()
notify()
wait()
equals()
常见的数学运算
Math
UUID
生成随机数
Random
创建文件
查看文件
修改文件
删除文件
File
自动装箱和拆箱
包装类
Date
yyyy-MM-dd HH:mm:ss
SimpleDateFormat
Calendar(建议使用)
Date类
不可变性final
String
append()
可变长
StringBuffer多线程
StringBuilder单线程
a12
String str=\"a\"+1+2;
f
String str='a'+1+2;
3a
String str=1+2+\"a\";
常用类
add
remove
contains
size
ArrayList(常用)
getFirst()
getLast()
removeFirst()
addFirst()
LinkedList(常用)
Vector
Stack
List(有序可重复)
HashSet(常用)
TreeSet
Set(无序不可重复)
Iterator:迭代器
Collection
jdk1.7 数组+链表
jdk1.8 hash表=数组+链表+红黑树
HashMap(常用,天天用)
TreeMap
Map
Collections工具类
泛型<> 约束,避免类型转换之间的问题
集合框架
方法:把自己想象成程序本身,然后思考输入和输出
...Stream
字节流
...Writer
..Reader
字符流
CharArrayReader,Writer,inputStream,outputStream
StringReader,Writer
pipedOutputStream
pipe(管道流)
File(...)
节点流
bufferInputStream
bufferOutputStream
bufferReader
bufferwriter
buffer
transient(透明的)
Serializable
反序列化
序列化
DataInputStream
DataOutputStream
data
object流
Input StreamReader
OutputStreamWriter
转换流
四个
Filter
PrintWriter
PrintStream
print
处理流
IO流
进程和线程
private native void start0();
Thread
lambda
函数式接口
Runnable
可以有返回值
Callable
线程创建的方式
静态代理:new Thread(Runnable).start();
函数式编程
new Thread(()->{System.out.println();}).start();
避免内部类定义过多
手动推导一边lambda表达式
Lambda表达式
新建状态
就绪
运行
阻塞
死亡
线程的状态
sleep
join
yield
isLive
start
setPriority
interrupt()
常用的方法
多个对象操作同一个资源,并发
队列+锁
同步方法 弊端:锁太多了
同步代码块(常用!)
第一个线程进来拿到锁,后面就要排队了,直到这个人释放锁,后面拿到锁才能进去
互斥
请求与保持
不剥夺条件
循环等待条件
死锁:两个人都抱着对方的锁
Synchronized
lock
trylock
unlock
ReentrantLock
Lock(优先级高)
线程同步
缓冲区:消息队列
标志位:红绿灯
notifyAll()
线程通信
池化技术
池的大小
最大连接数
保持时间
.......
线程池(Pool)
多线程
IP
端口
Socket编程
三次握手
四次挥手
面向连接
TCP
无连接
Packet
UDP
URL
初始Tomcat
聊天通信
文件上传
网络编程
Frame
鼠标
键盘
窗口
动作事件
监听事件
AWT
文本框
标签
按钮
文本域
面板
布局方式
关闭窗口
Swing
Timer
键盘监听
游戏帧的概念
贪吃蛇
GUI
元注解
内置注解
自定义注解
反射读取注解
注解
Class new Instance();
类加载机制
存在重载,也需要写参数的类型
Method
Field
newInstance();
获取的时候需要,传递参数的class类型
Construct
setAccessible(true);
破坏私有关键字
正常>检测关闭的反射>默认的反射
性能分析
反射获得注解,泛型...
反射
单例模式的探究
效率对比
ForkJoin
注解和反射
javaSE
0 条评论
回复 删除
下一页