- 博客(13)
- 收藏
- 关注
原创 Linux总结
Linux文件操作命令1、文件查看命令文本查看cat查看文件内容合并文件往文件中写入数据, Ctrl+d 是结束输入more当一个文件的内容超过一个屏幕能显示的行数,使用 more 可以分屏显示文件内容。使用方式: more filenameless文本内容查看器,查看文件内容,但是文件内容不会显示到界面上head显示文件前 n 行的内容tail显示文件后 n 行的内容数据统计wc统计文件中单词个数(-w)、字符个数(-c)、行数(-l)文件编辑命令VIM
2020-10-21 12:00:05 163
原创 初始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 283
原创 线程间通信
线程间通信线程通信是什么wait()/notify()/notifyAll()await/signal/signalAll线程通信是什么线程通信的目标是使线程间能够互相发送信号。另一方面,线程通信使线程能够等待其他线程的信号。例如,线程B可以等待线程A的一个信号,这个信号会通知线程B数据已经准备好了wait()/notify()/notifyAll()必须在synchronized同步代码块中使用一个线程一旦调用了任意对象的wait()方法,就会变为非运行状态,直到另一个线程调用了同一个对象的n
2020-07-31 10:59:29 177
原创 死锁
这里写目录标题什么是死锁二级目录三级目录什么是死锁二级目录三级目录死锁是指两个或两个以上的线程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。死锁的必要条件1)互斥条件:某个资源某一时刻只能由一个线程占用2)不可抢占条件:资源申请者不能从资源占有者手中抢夺资源3)占有且申请:线程至少已经占有一个资源,但又去申请新的资源,新资源被占用,该线程会阻塞4)循环等待:
2020-07-28 21:55:54 87
原创 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 109
原创 ReentrantLock
ReentrantLockReentrantLock底层实现获取锁与释放锁公平锁与非公平锁可重入锁与不可重入锁ReentrantLock与synchronized的比较ReentrantLock提供了无条件的,可轮询的,定时的以及可中断的锁获取操作加锁和解锁都是显式的使用格式:```javaLock lock = new ReentrantLock();try{lock.lock();//加锁操作}finally{lock.unlock();}``使用后必须释放锁底层实现当我们n
2020-07-28 21:39:20 73
原创 Volatile
VolatileVolatile 内存屏障在多线程中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 74
原创 多线程的讲解
并发与并行:并发:多个线程操作同一个资源,不是同时执行,而是交替执行,单核CPU交替执行时间间隔特别短并发编程:指多个任务在一个时间段重复执行的结构并发编程的三个特性:1.原子性原子操作:不可分割的操作,中间不会被其他线程打断,不需要同步操作多个原子操作合起来就需要使用到同步原子性指的是一次操作或者多个操作,要么全部执行,要么全部都不执行例如:int a = 10 ; //原子操作a++; // 不是原子操作int b = a; //不是原子操作a = a+1; // 不是操作
2020-07-28 21:04:32 80
原创 HashMap的分析
HashMap:HashMap 在底层将 key-value 当成一个整体进行处理,这个整体就是一个 Entry 对象。HashMap 底层采用一个 Entry[] 数组来保存所有的 key-value 对,当需要存储一个对象时,会根据hash算法来决定其在数组中的存储位置,在根据equals方法决定其在该数组位置上的链表中的存储位置;当需要取出一个对象时,也会根据hash算法找到其在数组中...
2020-04-04 22:10:35 130
原创 PriorityQueue的总结
PriorityQueue:1、构造函数:无参数:默认参数大小为11public PriorityQueue() { this(DEFAULT_INITIAL_CAPACITY, null);}有参数:用户可自定义大小public PriorityQueue(int initialCapacity) { this(initialCapacity, null);}2:扩...
2020-04-04 21:18:21 189
原创 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 165
原创 Mysql基础
一、数据库的基础使用:创建数据库:create database 数据库名命名规则: 数据库名不能重名查看已创建好的数据库:show databases;删除数据库:drop database 数据库名;使用数据库:use 数据库名;创建表:create table 表名 (属性名1 数据类型…属性名N 数据类型 完整性约束);修改表:添加字段: alter ta...
2020-03-02 21:14:08 321
原创 类和对象
#(类和对象)首先要知道 类和对象的关系是对象是类的实例,类是对象的模板。1.对象的含义:对象是生活中的的确确存在的事物2.如何使用对象:类名 对象名 =new 类名();例如:public class lei { public static void main(String[] args) { lei li=new lei(); }}所包...
2019-11-25 22:27:35 78
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人