diff --git a/基础知识学习笔记/初级算法篇/算法.md b/基础知识学习笔记/初级算法篇/算法.md index f3aacc9..e069ada 100644 --- a/基础知识学习笔记/初级算法篇/算法.md +++ b/基础知识学习笔记/初级算法篇/算法.md @@ -1,4 +1,18 @@ ## 位运算、简单排序 ### 位运算 +>- int左移变为2进制,32位 + +### 逻辑运算 +>- 按位与,全1为1 +>- 按位或,有1得1 +>- 异或 相同为0,不同为1 + +### 负数取反+1 +基本运算有一套底层逻辑 +>>取相反数a=-b+1 + +### 不带符号右移>>> + + diff --git a/基础知识学习笔记/编程知识/img.png b/基础知识学习笔记/编程知识/img.png new file mode 100644 index 0000000..a515818 Binary files /dev/null and b/基础知识学习笔记/编程知识/img.png differ diff --git a/基础知识学习笔记/编程知识/img_1.png b/基础知识学习笔记/编程知识/img_1.png new file mode 100644 index 0000000..6cfb458 Binary files /dev/null and b/基础知识学习笔记/编程知识/img_1.png differ diff --git a/基础知识学习笔记/编程知识/img_2.png b/基础知识学习笔记/编程知识/img_2.png new file mode 100644 index 0000000..be845ce Binary files /dev/null and b/基础知识学习笔记/编程知识/img_2.png differ diff --git a/基础知识学习笔记/编程知识/编程读写.md b/基础知识学习笔记/编程知识/编程读写.md index cecd1ce..6f9b13c 100644 --- a/基础知识学习笔记/编程知识/编程读写.md +++ b/基础知识学习笔记/编程知识/编程读写.md @@ -1,8 +1,8 @@ # 字符串 -## 输入与输出 +### 输入与输出 >-next不能输入空格 >-nextLine可以输入空格 -## 输入流 +### 输入流 >- // System.in 读取键盘上的数据 >- // InputStreamReader 将字节流向字符流的转换 >- InputStreamReader isr = new InputStreamReader(System.in); // 读取 @@ -10,6 +10,15 @@ >- BufferedReader br = new BufferedReader(isr); // 缓冲 >- // 读取一个文本行 >- String s = br.readLine(); // 阻塞式,当没有数据读取时,就一直会阻塞,而不是返回null +>- ![img_1.png](img_1.png) -##连续输入 ->- 利用Buffer连续readLine,读取不同的行 \ No newline at end of file +### 连续输入 +>- 利用Buffer连续readLine,读取不同的行 + +### Ascii对照表 +关键参数 A:65 a:97 32 +1: 49 +![img.png](img.png) + +### 字符串替换 +>-str.replaceAll(a,b) diff --git a/基础知识学习笔记/编程知识/语法知识.md b/基础知识学习笔记/编程知识/语法知识.md new file mode 100644 index 0000000..363b60a --- /dev/null +++ b/基础知识学习笔记/编程知识/语法知识.md @@ -0,0 +1,26 @@ +### collection集合类 +![img_2.png](img_2.png) + +### 利用set可以去重 +>-添加内容add +> +> 遍历set使用迭代器iterator,生成迭代器对象,使用next方法 + +### set集合类 +> - 遍历方法 +> +>-Iterator ite=list.iterator(); +> while(ite.hasNext()) +> +> 输出内容 +> - iterator.next + +### map集合类 + +### Integer +Integer.MAX_VALUE 2^31-1 + +### 对象创建过程 +>- 分配空间 + + diff --git a/高级知识/简历中的知识体系/JAVAIO系列知识.md b/高级知识/简历中的知识体系/JAVAIO系列知识.md new file mode 100644 index 0000000..69629b7 --- /dev/null +++ b/高级知识/简历中的知识体系/JAVAIO系列知识.md @@ -0,0 +1,36 @@ +### Input Output +>-行对于内存的操作读写 +> ![img.png](img.png) + +>- read() Input +>- write() output + + + + +### 一些面试基础题目 +![img_1.png](img_1.png) +![img_2.png](img_2.png) + +### BIO +>- blockIO阻塞式IO,线程阻塞 +>- serverSocket.accept();等待请求 +>- ![img_5.png](img_5.png) + +### nio +>-主要用块效率高, io主要用流效率低 +>- 非阻塞面向缓冲,有选择器 +>- 可以利用线程管理通道 select监听端口数据 + +### AIO 异步IO +>- 把事件交给操作系统 + +### Netty +>- 基于NIO的框架,多线程架构 + +### Reactor 监听请求=select+dispathch +>- 用来监听接收客户端请求 +>- 连接客户端 +>- acceptor获取连接 +>- Handler 处理业务 可以在线程池多处理 +>- 有多种模型单线程,多线程,多进程 multi-reactor \ No newline at end of file diff --git a/高级知识/简历中的知识体系/img.png b/高级知识/简历中的知识体系/img.png new file mode 100644 index 0000000..35bc07c Binary files /dev/null and b/高级知识/简历中的知识体系/img.png differ diff --git a/高级知识/简历中的知识体系/img_1.png b/高级知识/简历中的知识体系/img_1.png new file mode 100644 index 0000000..89ae630 Binary files /dev/null and b/高级知识/简历中的知识体系/img_1.png differ diff --git a/高级知识/简历中的知识体系/img_2.png b/高级知识/简历中的知识体系/img_2.png new file mode 100644 index 0000000..d3df004 Binary files /dev/null and b/高级知识/简历中的知识体系/img_2.png differ diff --git a/高级知识/简历中的知识体系/img_3.png b/高级知识/简历中的知识体系/img_3.png new file mode 100644 index 0000000..b6bc540 Binary files /dev/null and b/高级知识/简历中的知识体系/img_3.png differ diff --git a/高级知识/简历中的知识体系/img_4.png b/高级知识/简历中的知识体系/img_4.png new file mode 100644 index 0000000..573abb4 Binary files /dev/null and b/高级知识/简历中的知识体系/img_4.png differ diff --git a/高级知识/简历中的知识体系/img_5.png b/高级知识/简历中的知识体系/img_5.png new file mode 100644 index 0000000..74ce271 Binary files /dev/null and b/高级知识/简历中的知识体系/img_5.png differ diff --git a/高级知识/简历中的知识体系/网络编程.md b/高级知识/简历中的知识体系/网络编程.md new file mode 100644 index 0000000..d047180 --- /dev/null +++ b/高级知识/简历中的知识体系/网络编程.md @@ -0,0 +1,76 @@ +### 网络基础 +>-java是一门基于Internet的语言,它提供很多网络的支持,主要集中java.net包中; + +>什么是网络 +> +网络就是将分散在不同位置的网络终端设备通过网络介质连接到一起,实现资源共享和通讯; + +>-iP地址 +> +网络中某个设备的唯一标识,通过IP可找到网络中的某个设备; + +>-端口 +> +通过端口可以找到设备中的一个网络程序;每个计算机中可以使用65535个; + +>-协议 +> +通讯规则Http + +>TCP/IP +> +TCP/IP以其两个主要协议:传输控制协议(TCP)和网络互联协议(IP)而得名,实际上是一组协议,包括多个具 +有不同功能且 +互为关联的协议。 +TCP/IP协议模型从更实用的角度出发,形成了高效的四层体系结构,即网络接口层、IP层、传输层和应用层。下图表示了TCP/IP的分层结构和与OSI参考模型的对应关系。 + +### TCP传输控制 +1. 面向连接的协议 +2. 有服务端客户端 +3. 基于流的通信 +4. 创建服务端的Socket,并等待接收客户端的连接请求 +5. 客户端发送连接请求; +6. 服务端接收到客户端的请求后,创建一个与之匹配的Socket,此时,两个Socket就可以相互通信了﹔l + + +### Socket 套接字,网络终端 +>- 连接到远程主机绑定到端口 +>- 接收从远程机器来的连接请求监听到达的数据 +>- 发送数据 +>- 接收数据关闭连接。 +>- 代表网络套接字,是通信的网络终端设备,屏蔽了网络通信的细节; +>- Socket s=new Socket(InetAdderss.getLocalHost(),8888; +![img_3.png](img_3.png) + + +### ServerSocket 服务端 +>- 代码服务端的socket ,有来接受客户端的请求; +>- //1.创建serversocket,IP地址是本机的,端口号是8888serversocket server=new serversocket(8888); +>- //2.接受客户端的请求,如果没有客户端发请求,则一直阻塞(等待)socket=server.accept(; + + +### UDP协议 用户数据包 +>-用户数据报协议 + +> User Datagram protocal ;特点; + +> 1.非连接,类似于邮局发邮件;2.没有明确的服务端和客户端;3.不安全,不可靠; + +> 4.传递效率高; + +### DatagramSocket +>-此类表示用来发送和接收数据报包的套接字(UDP)。 +>-DatagramSocket(int port):创建数据报套接字并将其绑定到本地主机上的指定端口普通方法 +>-send(DatagramPacket p):从此套接字发送数据报包。 +>-receive(DatagramPacket p):从此套接字接收数据报包。 +![img_4.png](img_4.png) + + + + + + + + + + diff --git a/高级知识/高级开发面试/img.png b/高级知识/高级开发面试/img.png new file mode 100644 index 0000000..80aadd2 Binary files /dev/null and b/高级知识/高级开发面试/img.png differ diff --git a/高级知识/高级开发面试/多线程.md b/高级知识/高级开发面试/多线程.md new file mode 100644 index 0000000..2041342 --- /dev/null +++ b/高级知识/高级开发面试/多线程.md @@ -0,0 +1,32 @@ +### Object占字节 +16字节 能被8整除 + +### 计算机组成 +![img.png](img.png) +>- 进程:分配资源 +>- 线程:基本运行 +>- 缓存:暂存数据 +>- 缓存行:把同一块的数据都存缓存 +>- 缓存一致性,保证各核的缓存都共享,效率低 +>- 线程有序性: + +### 锁的本质 +>- 线程之间的序列性 +>- synchronized + +### 乐观锁CAS自旋 +>- 比较and交换 +>- 底层原子性 +>- 不会阻塞 + +### synchronized 锁升级 +>- 重量级锁都交给操作系统 +>- 偏向锁,标记名字,线程id。让原资源获得轻量级锁 +>- 四种状态:无锁,偏向,轻量级、重量级 + +### ThreadLocal + + +### markword +>- 记录锁信息,记录回收次数 +>- 记录偏向锁 \ No newline at end of file diff --git a/高级知识/高级开发面试/设计模式.md b/高级知识/高级开发面试/设计模式.md new file mode 100644 index 0000000..58dcc1d --- /dev/null +++ b/高级知识/高级开发面试/设计模式.md @@ -0,0 +1,10 @@ +### 饿汉单例 +>- 先构建 +>- 通过get方法取得 +### 懒汉式 +>- 先判断是否为空,不能多线程 + +### DCL双重判断 double check lock +>- 防止上锁时候被其他线程操作 + +