文章分类 -  java basic

摘要:正则表达式语法(1) 正则表达式语法(2) 正则表达式语法(3) 正则表达式语法(4) 正则表达式语法(5) 正则表达式的匹配模式 正则表达式语法(6) 正则表达式语法(7) 阅读全文
posted @ 2020-10-27 16:29 预言2018 阅读(72) 评论(0) 推荐(0)
摘要:前言 在 Java 中,引用随处可见,我们通过类似 Object obj = new Object(); 的代码就可以创建一个引用,而我们直接通过这个代码段创建的引用被称为强引用(StrongReference),这种引用的特点是其指向的对象无论如何都不会被 JVM 的垃圾回收器(Garbage C 阅读全文
posted @ 2020-10-15 15:24 预言2018 阅读(539) 评论(0) 推荐(0)
摘要:网上很多Eclipse 安装UML插件教程,可能对高版本Eclipse都无法安装成功,本文提供的安装方式,亲测可用。 一、安装GEF插件 1、打开eclipse官网 https://www.eclipse.org/ 2、点击Projects,搜索GEF,然后看到GEF项目点击旁边的download 阅读全文
posted @ 2020-10-02 17:28 预言2018 阅读(189) 评论(0) 推荐(0)
摘要:之前已经说道,JVM提供了synchronized关键字来实现对变量的同步访问以及用wait和notify来实现线程间通信。在jdk1.5以后,JAVA提供了Lock类来实现和synchronized一样的功能,并且还提供了Condition来显示线程间通信。Lock类是Java类来提供的功能,丰富 阅读全文
posted @ 2020-10-01 20:54 预言2018 阅读(151) 评论(0) 推荐(0)
摘要:ThreadLocal 是线程本地存储,在每个线程中都创建了一个 ThreadLocalMap 对象,每个线程可以访问自己内部 ThreadLocalMap 对象内的 value。 经典的使用场景是为每个线程分配一个 JDBC 连接 Connection。这样就可以保证每个线程的都在各自的 Conn 阅读全文
posted @ 2020-09-24 11:00 预言2018 阅读(450) 评论(0) 推荐(0)
摘要:对于synchronized这个关键字,可能之前大家有听过,他是一个重量级锁,开销很大,建议大家少用点。但大家可能也听说过,但到了jdk1.6之后,该关键字被进行了很多的优化,已经不像以前那样不给力了,建议大家多使用。 那么它是进行了什么样的优化,才使得synchronized又深得人心呢?为何重量 阅读全文
posted @ 2020-09-22 22:01 预言2018 阅读(125) 评论(0) 推荐(0)
摘要:1、new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start(); 阅读全文
posted @ 2020-09-22 20:02 预言2018 阅读(99) 评论(0) 推荐(0)
摘要:熟悉线程操作的小朋友应该知道,Java中线程的挂起和唤醒一般用synchronized + wait + notify完成。 比如: synchronized(o) { o.wait(); //wait状态 } 在其他线程中o.notify(),就可以唤醒在o上wait的线程。 可是如果o上有多个线 阅读全文
posted @ 2020-09-21 22:44 预言2018 阅读(240) 评论(0) 推荐(0)
摘要:一,介绍 本文介绍JAVA多线程中的synchronized关键字作为对象锁的一些知识点。 所谓对象锁,就是就是synchronized 给某个对象 加锁。关于 对象锁 可参考:这篇文章 二,分析 synchronized可以修饰实例方法,如下形式: 1 public class MyObject 阅读全文
posted @ 2020-09-21 22:25 预言2018 阅读(80) 评论(0) 推荐(0)
摘要:一,volatile关键字的可见性 就存在内存可见性问题,看一个示例程序: 1 public class RunThread extends Thread { 2 3 private boolean isRunning = true; 4 5 public boolean isRunning() { 阅读全文
posted @ 2020-09-21 22:09 预言2018 阅读(59) 评论(0) 推荐(0)
摘要:在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程) 用个比较通俗的比如,任何一个守护线程都是整个JVM中所有非守护线程的保姆: 只要当前JVM实例中尚存在任何一个非守护线程没有结束,守护线程就全部工作;只有当最后一个非守护线程结束时,守护线程随着JVM 阅读全文
posted @ 2020-09-20 19:51 预言2018 阅读(95) 评论(0) 推荐(0)
摘要:Java中创建线程主要有三种方式: 一、继承Thread类创建线程类 (1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。 (2)创建Thread子类的实例,即创建了线程对象。 (3)调用线程对象的start()方法来 阅读全文
posted @ 2020-09-19 13:42 预言2018 阅读(119) 评论(0) 推荐(0)
摘要:我们知道 HashMap 的底层是由数组,链表,红黑树组成的,在 HashMap 做扩容操作时,除了把数组容量扩大为原来的两倍外,还会对所有元素重新计算 hash 值,因为长度扩大以后,hash值也随之改变。 如果是简单的 Node 对象,只需要重新计算下标放进去就可以了,如果是链表和红黑树,那么操 阅读全文
posted @ 2020-09-17 13:53 预言2018 阅读(194) 评论(0) 推荐(0)
摘要:首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value。这就是我们平时说的键值对。 HashMap通过hashcode对其内容进行快速查找,而 TreeMap中所有的元素都保持着某种固定的顺 阅读全文
posted @ 2020-09-16 14:26 预言2018 阅读(468) 评论(0) 推荐(0)
摘要:先讲使用,再讲原理 队列是遵循先进先出(First-In-First-Out)模式的,但有时需要在队列中基于优先级处理对象。 举两个例子: 作业系统中的调度程序,当一个作业完成后,需要在所有等待调度的作业中选择一个优先级最高的作业来执行,并且也可以添加一个新的作业到作业的优先队列中。 每日交易时段生 阅读全文
posted @ 2020-09-16 10:26 预言2018 阅读(157) 评论(0) 推荐(0)
摘要:1.Set Set继承于Collection接口,是一个不允许出现重复元素,并且无序的集合,主要有HashSet和TreeSet两大实现类。 在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。 HashSet是哈希表结构,主要利用HashMap的key来存储元素, 阅读全文
posted @ 2020-09-15 19:13 预言2018 阅读(386) 评论(0) 推荐(0)
摘要:<<表示左移移,不分正负数,低位补0; 注:以下数据类型默认为byte-8位 左移时不管正负,低位补0 正数:r = 20 << 2 20的二进制补码:0001 0100 向左移动两位后:0101 0000 结果:r = 80 负数:r = -20 << 2 -20 的二进制原码 :1001 010 阅读全文
posted @ 2020-09-15 14:50 预言2018 阅读(80) 评论(0) 推荐(0)
摘要:Queue接口的实现类 Queue接口作为队列数据结构,java在实现的时候,直接定义了Deque接口(双端队列)来继承Queue接口,并且只实现Deque接口。这样java中的双端队列就囊括了队列、双端队列、堆栈(Deque接口又定义了Stack的操作方法)这3种角色的功能。 所以我们在使用的时候 阅读全文
posted @ 2020-09-15 14:41 预言2018 阅读(235) 评论(0) 推荐(0)
摘要:Get(int)方法的实现在remove(int)中已经涉及过了。首先判断位置信息是否合法(大于等于0,小于当前LinkedList实例的Size),然后遍历到具体位置,获得节点的业务数据(element)并返回。 方法 get(int index):返回此列表中指定位置处的元素。getFirst( 阅读全文
posted @ 2020-09-15 10:19 预言2018 阅读(566) 评论(0) 推荐(0)
摘要:Java集合之ArrayList /Vector / LinkedList ArrayList Vector LinkedList 对比 Java集合中List接口的实现类主要有ArrayList/Vector/LinkedList。本篇博客主要记录三者的常用用法及区别。 ArrayList Arr 阅读全文
posted @ 2020-09-14 19:26 预言2018 阅读(125) 评论(0) 推荐(0)