创建目录

master
1897 3 years ago
parent 74d0b7d7f3
commit 0acb0686ae

@ -1,4 +1,18 @@
## 位运算、简单排序 ## 位运算、简单排序
### 位运算 ### 位运算
>- int左移变为2进制32位
### 逻辑运算
>- 按位与全1为1
>- 按位或有1得1
>- 异或 相同为0不同为1
### 负数取反+1
基本运算有一套底层逻辑
>>取相反数a=-b+1
### 不带符号右移>>>

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

@ -1,8 +1,8 @@
# 字符串 # 字符串
## 输入与输出 ### 输入与输出
>-next不能输入空格 >-next不能输入空格
>-nextLine可以输入空格 >-nextLine可以输入空格
## 输入流 ### 输入流
>- // System.in 读取键盘上的数据 >- // System.in 读取键盘上的数据
>- // InputStreamReader 将字节流向字符流的转换 >- // InputStreamReader 将字节流向字符流的转换
>- InputStreamReader isr = new InputStreamReader(System.in); // 读取 >- InputStreamReader isr = new InputStreamReader(System.in); // 读取
@ -10,6 +10,15 @@
>- BufferedReader br = new BufferedReader(isr); // 缓冲 >- BufferedReader br = new BufferedReader(isr); // 缓冲
>- // 读取一个文本行 >- // 读取一个文本行
>- String s = br.readLine(); // 阻塞式当没有数据读取时就一直会阻塞而不是返回null >- String s = br.readLine(); // 阻塞式当没有数据读取时就一直会阻塞而不是返回null
>- ![img_1.png](img_1.png)
##连续输入 ### 连续输入
>- 利用Buffer连续readLine读取不同的行 >- 利用Buffer连续readLine读取不同的行
### Ascii对照表
关键参数 A65 a97 32
1 49
![img.png](img.png)
### 字符串替换
>-str.replaceAll(a,b)

@ -0,0 +1,26 @@
### collection集合类
![img_2.png](img_2.png)
### 利用set可以去重
>-添加内容add
>
> 遍历set使用迭代器iterator生成迭代器对象使用next方法
### set集合类
> - 遍历方法
>
>-Iterator<String> ite=list.iterator();
> while(ite.hasNext())
>
> 输出内容
> - iterator.next
### map集合类
### Integer
Integer.MAX_VALUE 2^31-1
### 对象创建过程
>- 分配空间

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 394 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

@ -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.创建serversocketIP地址是本机的端口号是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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 KiB

@ -0,0 +1,32 @@
### Object占字节
16字节 能被8整除
### 计算机组成
![img.png](img.png)
>- 进程:分配资源
>- 线程:基本运行
>- 缓存:暂存数据
>- 缓存行:把同一块的数据都存缓存
>- 缓存一致性,保证各核的缓存都共享,效率低
>- 线程有序性:
### 锁的本质
>- 线程之间的序列性
>- synchronized
### 乐观锁CAS自旋
>- 比较and交换
>- 底层原子性
>- 不会阻塞
### synchronized 锁升级
>- 重量级锁都交给操作系统
>- 偏向锁标记名字线程id。让原资源获得轻量级锁
>- 四种状态:无锁,偏向,轻量级、重量级
### ThreadLocal
### markword
>- 记录锁信息,记录回收次数
>- 记录偏向锁

@ -0,0 +1,10 @@
### 饿汉单例
>- 先构建
>- 通过get方法取得
### 懒汉式
>- 先判断是否为空,不能多线程
### DCL双重判断 double check lock
>- 防止上锁时候被其他线程操作
Loading…
Cancel
Save