Java基础进阶
Java基础进阶J
Object类
- hashcode()
- toString()
- clone()
- getClass()
- notify()
- wait()
- equals()
Random类 生成 随机数 UUID
Math类 常见的数据运算
File类
- 创建文件
- 查看文件
- 修改文件
- 删除文件
包装类
- 自动装箱和拆箱(面试)
Data类
- Data
- SimpleDateFormat yyy-MM-dd HH:mm:ss
- Calendar (建议使用)
String类
- 不可变性 final 操作量较少
StringBuffer类
- 可变长 安全 append(copy成新的再拷贝)
- 多线程 数据量较大 效率低 安全
StringBuilder类
可变长
单线程 数据量较大 效率高 不安全
String str = "a" + 1 + 2 a12
String str = ’a‘ + 1 + 2 65+1+2 = 68
String str = 1 + 2 + “a” 3a
集合框架
Collection
List (有序可以重复)
遍历 Iterator 建议实现了这个接口的 用迭代器 Iterator 遍历
- ArrayList 数组
- add
- remove
- contains
- size
- .......
- LinkedList 链表
- getFirst(Last)
- addFirst(Last)
- removeFirst(Last)
- push 弹出
- pop 压入
- .........
- Vector
- Stack
- ArrayList 数组
Set(无序,不可重复)
- HashSet 常用
- TreeSet
Map
- HashMap(超级常用)面试高频
- JDK1.7:数组+链表
- JDK1.8:hash表 = 数组+链表+红黑树 (链表长度在大于8的时候,自动转化为红黑树)
- TreeMap
- HashMap(超级常用)面试高频
Collections 工具类
泛型 约束 避免问题转换之间的问题
IO流
字节流
- 输出 OutputStream
- 输入 InputStream
字符流
- Reader
- Wirter
节点流
- CharArrayReader
- CharArrayWriter
- CharArrayInputStream
- CharArrayOutputStream
- StringReader
- StringWriter
- pipe(管道)InputStream
- pipe(管道)OutputStream
- File
处理流
- buffer 有字符
- bufferInputStream
- bufferOutputStream
- bufferReader
- bufferWirter
- 序列化
- 反序列化
- Serializale 标记下接口
- transient 透明的
- 反序列化
- data 没有字符
- dataInputStream
- dataOutputStream
- object
- objectReader
- objectWirter
- objectInputStream
- objectOutputStream
- 转换流
- InputStreamReader
- OutputStreamWriter
- 过滤流 Filter
- FilterInputStream
- FilterOutputStream
- FilterReader
- FilterWirter
- print
- printStream
- printWriter
- buffer 有字符
多线程
进程和线程
run(), Start()
线程创建的方式
- Thread
- start() 本地方法 ,java 无权调用 c来调用 java无权调用底层,JVM隔着。private native void start();
- Runnable 函数式接口 lambda
- Callable 可以有返回值
- Thread
静态代理
- new Thread(Runnable).start();
Lambda表达式 函数式编程 (避免内部类定义过多)
new Thread(() ->{ System.out.println();}).start();
线程的状态
- 新建状态
- 就绪
- 运行
- 阻塞
- 死亡
常用的方法
- sleep
- join
- yield
- isLive
- start
- serPriority 优先级
- interrupt 中段
线程同步
- 多个对象操作同一个资源,并发
- 队列 + 锁
- Synchronized
- 同步方法 弊端 锁太多
- 同步代码块
- 第一个线程进来 拿到锁 , 后面就要排队了,直到这个人释放锁,后面锁才能进去
- 死锁 : 两个人 都抱着对方的锁
- 互斥 一个资源只能被一个进程使用,不能被两个进程同时使用。
- 请求与保持 一个进程正在被锁,其他进程不能等着这个资源不放
- 不剥夺条件 不能强行拿走别人正在使用的资源
- 循环等待条件
- 死锁只要破坏掉其中一个条件,死锁被释放
- lock 优先级高 lock > 同步代码块 > 同步方法
- ReentrantLock 保证线程的同步
- lock
- trylock
- unlock
- ReentrantLock 保证线程的同步
线程通信
- 缓冲区 : 消息队列
- 信号灯 : 标志位
- wait() object
- notifyall() object
线程池 pool 准备好资源 放在池子里面
- 池化技术 数据库 还有连接池 (提前准备好连接)
- 池的大小
- 最大连接数
- 链接时间
- 保持时间
网络编程
- url
- ip
- 端口
- Socket编程
- Tcp连接
- 三次握手
- 四次挥手
- 面向链接
- Udp连接
- 无连接
- Packet
- 初识Tomcat
- 聊天通讯
- 文件上传
- url
GUI 可选
- AWT
- Frame
- 监听事件
- 鼠标
- 键盘
- 窗口
- 文本框
- 动作
- Swing
- 文本框
- 标签
- 按钮
- 文本域
- 面板
- 布局方式
- 关闭窗口
- 列表
- 贪吃蛇
- Timer
- 键盘监听
- 游戏帧的概念
- AWT
注解和反射
- 注解
- 元注解
- 内置注解
- 自定义注解
- 反射读取注解
- 反射
- Class
- newlnstance();
- 类加载机制
- Method
- invoke
- 存在重载,也需要写参数的类型
- Field
- set
- Construct
- newlnstance();
- 获取的时候需要传递参数的class类型
- 破坏私有关键字
- setAccessible(true)
- 性能分析
- 正常> 检测关闭的反射>默认的反射
- 反射获得注解,泛型
- Class
- 单例模式的探究
- Stream
- FrokJoin
- 注解
Java基础进阶的更多相关文章
- 第二十八节:Java基础-进阶继承,抽象类,接口
前言 Java基础-进阶继承,抽象类,接口 进阶继承 class Stu { int age = 1; } class Stuo extends Stu { int agee = 2; } class ...
- Java基础进阶整理
Java学习笔记整理 本文档是我个人整理的,首先是想通过完成本文档更加扎实自己的基础加强对java语言的理解,然后就是想给入了门的同志们做下贡献. 当然,本文档主要是对java语言基础(当然还有很多基 ...
- java基础进阶一:String源码和String常量池
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/8046564.html 邮箱:moyi@moyib ...
- java基础进阶二:HashMap实现原理分析
HashMap实现原理分析 1. HashMap的数据结构 数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端. 数组 数组存储区间是连续的,占用内存严重,故空间复杂的很大.但数组的二 ...
- Java基础进阶:时间类要点摘要,时间Date类实现格式化与解析源码实现详解,LocalDateTime时间类格式化与解析源码实现详解,Period,Duration获取时间间隔与源码实现,程序异常解析与处理方式
要点摘要 课堂笔记 日期相关 JDK7 日期类-Date 概述 表示一个时间点对象,这个时间点是以1970年1月1日为参考点; 作用 可以通过该类的对象,表示一个时间,并面向对象操作时间; 构造方法 ...
- Java基础进阶:多态与接口重点摘要,类和接口,接口特点,接口详解,多态详解,多态中的成员访问特点,多态的好处和弊端,多态的转型,多态存在的问题,附重难点,代码实现源码,课堂笔记,课后扩展及答案
多态与接口重点摘要 接口特点: 接口用interface修饰 interface 接口名{} 类实现接口用implements表示 class 类名 implements接口名{} 接口不能实例化,可 ...
- java基础进阶:SQL的运用
SQL的基础的运用 /* --1.学生表 Student(S,Sname,Sage,Ssex) --S 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Cour ...
- 笔记-迎难而上之Java基础进阶1
Collection集合 数组的长度是固定的,集合的长度是可变的 数组中存储的是同一类型的元素,可以存储基本数据类型值.集合存储的都是对象.而且对象的类型可以不一致. 集合框架 import java ...
- 笔记-迎难而上之Java基础进阶-终
使用Stream流的方式,遍历集合 import java.util.*; public class StreamDemo{ public static void main(String[] args ...
随机推荐
- linux 怎么样复制文件夹内所有文件到另一个文件夹?
cp -Rf /home/user1/* /root/temp/将 /home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身.即格式为:cp -Rf 原路径/ 目的 ...
- 风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击
风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击 XSS钓鱼攻击 HTTP Basic Authentication认证 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息. 但是有时候 ...
- Head First 设计模式 —— 07. 适配器模式
思考题 你能想到真实世界中,还有哪些适配器的例子? P236 HDMI 转 VGA 转换器 Type-C 转 3.5mm 线 适配器模式解析 客户使用适配器的过程: P241 客户通过目标接口调用适配 ...
- Kubernetes官方java客户端之六:OpenAPI基本操作
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 【Linux】rsh进程缓慢问题处理
环境CentOS 6.5 由于项目上线时间很长,服务器持续很久没有关机重启过,随后发现rsh反应特别慢 rsh登陆服务器的反应最慢时候3分钟才可以建立链接,登陆之后查看服务器负载是否正常,查看cpu, ...
- postgresql数据库升级
pg_upgrade官网介绍:https://www.postgresql.org/docs/10/pgupgrade.html 1.查看老版本数据库编译参数值并记录 select name,sett ...
- Java运算符概要与数学函数
运算符概要 在Java中,使用算术运算符+,-,*,/表示加减乘除运算,当参与/的运算的两个操作数都是整数时,表示整数除法,否则,表示浮点除法.整数的求余操作(有时称为取模),用%表示,例如,15/2 ...
- 阅读lodash源码之旅数组方法篇-compact和concat
鲁迅说过:只有阅读过优秀库源码的人,才能配的上是真正的勇士. compact 创建一个新数组,包含原数组中所有的非假值元素.例如false, null,0, "", undefin ...
- perl打开本地/服务器图片
index.html <html> <body> <h2> perl read img </h2> <img src = "displa ...
- Cisco发现协议
CDP Cisco Discovery Protocol: 思科发现协议 是一个提供关于直接相连的交换机.路由器和其它Cisco设备的综合信息的专有工具 CDP 能够发现直接相邻的设备而不管这些设备所 ...