- 博客(13)
- 收藏
- 关注
原创 Linux总结
Linux文件操作命令 1、文件查看命令 文本查看 cat 查看文件内容 合并文件 往文件中写入数据, Ctrl+d 是结束输入 more 当一个文件的内容超过一个屏幕能显示的行数,使用 more 可以分屏显示文件内容。使用方式: more filename less 文本内容查看器,查看文件内容,但是文件内容不会显示到界面上 head 显示文件前 n 行的内容 tail 显示文件后 n 行的内容 数据统计 wc 统计文件中单词个数(-w)、字符个数(-c)、行数(-l) 文件编辑命令 VIM
2020-10-21 12:00:05
238
原创 初始Linux目录结构
Linux 就是一组软件,而软件分为操作系统软件和应用软件,当然 Linux 属于操作系统软件。 Linux和Windows的区别终端的基本操作Linux结构目录结构:路径开机与重启Linux文件类型 Linux 就是一组软件,而软件分为操作系统软件和应用软件,当然 Linux 属于操作系统软件。 1、Linux 主要使用命令行操作系统,Windows 图形化界面2、Linux 主要应用于服务器,Windows 是个人操作系统3、Linux 属于开源项目,而 Windows 不开源4、Linux 是多用户系
2020-10-07 21:26:17
359
原创 线程间通信
线程间通信线程通信是什么wait()/notify()/notifyAll()await/signal/signalAll 线程通信是什么 线程通信的目标是使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程的信号。 例如,线程B可以等待线程A的一个信号,这个信号会通知线程B数据已经准备好了 wait()/notify()/notifyAll() 必须在synchronized同步代码块中使用 一个线程一旦调用了任意对象的wait()方法,就会变为非运行状态,直到另一个线程调用了同一个对象的n
2020-07-31 10:59:29
235
原创 死锁
这里写目录标题什么是死锁二级目录三级目录 什么是死锁 二级目录 三级目录 死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 死锁的必要条件 1)互斥条件:某个资源某一时刻只能由一个线程占用 2)不可抢占条件:资源申请者不能从资源占有者手中抢夺资源 3)占有且申请:线程至少已经占有一个资源,但又去申请新的资源,新资源被占用,该线程会阻塞 4)循环等待:
2020-07-28 21:55:54
140
原创 ConcurrentHashMap
ConcurrentHashMap类的继承关系核心方法put()、get()解读 类的继承关系 public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable { AbstractMap:一个抽象类,与HashMap一样,会有一些公有方法定义在AbstractMap里,对Map的基本操作; ConcurrentMa
2020-07-28 21:51:08
154
原创 ReentrantLock
ReentrantLockReentrantLock底层实现获取锁与释放锁公平锁与非公平锁可重入锁与不可重入锁ReentrantLock与synchronized的比较 ReentrantLock 提供了无条件的,可轮询的,定时的以及可中断的锁获取操作 加锁和解锁都是显式的 使用格式:```java Lock lock = new ReentrantLock(); try{ lock.lock();//加锁操作 }finally{ lock.unlock(); } `` 使用后必须释放锁 底层实现 当我们n
2020-07-28 21:39:20
124
原创 Volatile
Volatile Volatile 内存屏障 在多线程中volatile关键字解决类似于cpu缓存一致性问题 线程1 线程2 线程1的工作内存 线程2的工作内存 (x的副本) (x的副本) 主内存(共享变量x)、 x++ unsafe.cpp源码中,volatile修饰的变量存在一个"lock."的前缀 "lock."相当于是一个内存屏障 例: int x = 10; int y = 10; volatile int
2020-07-28 21:24:53
129
原创 多线程的讲解
并发与并行: 并发:多个线程操作同一个资源,不是同时执行,而是交替执行,单核CPU交替执行时间间隔特别短 并发编程:指多个任务在一个时间段重复执行的结构 并发编程的三个特性: 1.原子性 原子操作:不可分割的操作,中间不会被其他线程打断,不需要同步操作 多个原子操作合起来就需要使用到同步 原子性指的是一次操作或者多个操作,要么全部执行,要么全部都不执行 例如: int a = 10 ; //原子操作 a++; // 不是原子操作 int b = a; //不是原子操作 a = a+1; // 不是操作
2020-07-28 21:04:32
122
原创 HashMap的分析
HashMap: HashMap 在底层将 key-value 当成一个整体进行处理,这个整体就是一个 Entry 对象。 HashMap 底层采用一个 Entry[] 数组来保存所有的 key-value 对,当需要存储一个对象时, 会根据hash算法来决定其在数组中的存储位置,在根据equals方法决定其在该数组位置上的链表中的存储位置;当需要取出一个对象时,也会根据hash算法找到其在数组中...
2020-04-04 22:10:35
183
原创 PriorityQueue的总结
PriorityQueue: 1、构造函数:无参数:默认参数大小为11 public PriorityQueue() { this(DEFAULT_INITIAL_CAPACITY, null); } 有参数:用户可自定义大小 public PriorityQueue(int initialCapacity) { this(initialCapacity, null); } 2:扩...
2020-04-04 21:18:21
243
原创 ArrayList 与 LinkedList区别:
ArrayList 与 LinkedList区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 LinkedList: public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque&l...
2020-04-03 17:16:11
202
原创 Mysql基础
一、数据库的基础使用: 创建数据库: create database 数据库名 命名规则: 数据库名不能重名 查看已创建好的数据库: show databases; 删除数据库: drop database 数据库名; 使用数据库: use 数据库名; 创建表: create table 表名 ( 属性名1 数据类型 … 属性名N 数据类型 完整性约束 ); 修改表: 添加字段: alter ta...
2020-03-02 21:14:08
390
原创 类和对象
#(类和对象) 首先要知道 类和对象的关系是对象是类的实例,类是对象的模板。 1.对象的含义:对象是生活中的的确确存在的事物 2.如何使用对象: 类名 对象名 =new 类名(); 例如: public class lei { public static void main(String[] args) { lei li=new lei(); } } 所包...
2019-11-25 22:27:35
110
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅