java
fc咸蛋超人
这个作者很懒,什么都没留下…
展开
-
冒泡...
int[] cs = {1,4,3,8,10,2,9}; //冒泡 for(int i = 0;i<cs.length -1;i++) { for(int j=0;j<cs.length-1-i;j++) { if(cs[j]>cs[j+1]) { int tep = cs[j]; cs[j]=cs[j+1]; cs[j+1]=tep; } } } System.out.println(Arrays.toSt原创 2021-11-19 11:58:27 · 88 阅读 · 0 评论 -
最优单例模式Singletion
public class Singletion { private Singletion() { }; private static volatile Singletion instance; public static Singletion getInstance() { if(instance==null) { synchronized(Singletion.class) { if(instance==null) { instance= new Singletio原创 2021-11-17 23:02:00 · 124 阅读 · 0 评论 -
linux--vim基本用法
个人理解vim有2种模式,一种通俗的可编辑模式即插入模式,一种非直接编辑模式即命令模式1、当输入vim xxx 后进入的是命令模式,该模式下不可编辑,可以进行一些查找复制工作。:wq 保存修改并退出:w 将缓冲区写入文件,即保存修改:q! 强制退出,放弃修改:q 退出,如果对缓冲区进行过修改,则会提示yy 复制当前行nyy 复制从光标开始下面n行p 粘贴到当前行上面P 粘贴到当前行下面u 撤销dd 删除光标所在行查找替换/xx原创 2021-11-17 21:57:07 · 207 阅读 · 0 评论 -
java-多线程
拿qq比喻,进程就是一启动qq,qq本身所占用的资源进程,打开win资源管理器,看到的程序都是进程,而多个qq同时登陆就是多进程,多线程就是打开一个qq后开启多个窗口和不同的人聊天,线程是属于进程的。java是一种解释性语言,其所运行的程序都是在jvm中运行的,当启动一个java应用程序,就会启动一个JVM进程。在同一个JVM进程中,有且只有一个进程。jvm虚拟机的启动多线程的。 因为垃圾回收线程也要先启动,否则很容易会出现内存溢出。现在的垃圾回收线程加上主线程,最低启动了两个线程,所以,jvm的启动原创 2021-11-17 21:55:44 · 256 阅读 · 0 评论 -
HashMap----浅谈
1.结构分析:从JDK1.8开始,使用 数组+链表/红黑树。当链表长度>8的&数组大小>=64 时转化为红黑树。当红黑树节点小于6,转换为链表2.数据插入流程 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n,原创 2021-11-17 21:45:45 · 57 阅读 · 0 评论 -
多线程下如何操作ArrayList,Set
1.ArrayList//不安全的写法 ,会报出 ConcurrentModificationException,当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。 public static void main(String[] args) { List<String> list = new ArrayList(); for (int i = 0;i<10;i++){ new Thread(()->{原创 2021-11-17 21:42:35 · 268 阅读 · 0 评论 -
多线程下的Map操作
1.不安全的操作,容易报ConcurrentModificationExceptionMap<String, String> map = new HashMap<>(); for (int i = 0;i<10;i++){ new Thread(()->{ map.put(Thread.currentThread().getName(),UUID.randomUUID().toString().su原创 2021-11-17 21:39:50 · 2050 阅读 · 0 评论 -
LOCK 与Syschronized 差异
1.从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。synchronized是java中的一个关键字,也就是说是Java语言内置的特性。2.synchronized对象在获取锁后,其他线程只能等待,无法同时进行读操作,影响程序执行效率。lock锁住对象时,当一个线程在进行读操作时,其他线程可以进行读操作。3.synchronized不需要用户去手动释放锁,执行完后系统会自动让线程释放对锁的占用。Lock则必须要用户去手动释放原创 2021-11-17 21:38:06 · 474 阅读 · 0 评论 -
ReadWriteLock-读写锁
摘自api文档1.A ReadWriteLock维护一对关联的locks ,一个用于只读操作,一个用于写入。 read lock可以由多个阅读器线程同时进行,只要没有作者。 write lock是独家的。先上代码 public static void main(String[] args) { ReadWriteLockTep readWriteLockTep = new ReadWriteLockTep(); for(int i = 0;i<5原创 2021-11-17 21:36:16 · 118 阅读 · 0 评论