文章分类 -  Java

上一页 1 2 3 4 5 6 7 ··· 9 下一页
摘要:Java 不可重入锁和可重入锁理解 基础知识 Java 多线程的 wait() 方法和 notify() 方法 这两个方法是成对出现和使用的,要执行这两个方法,有一个前提就是,当前线程必须获其对象的 monitor(俗称 “锁”),否则会抛出 IllegalMonitorStateException 阅读全文
posted @ 2020-03-26 00:34 别再闹了 阅读(502) 评论(0) 推荐(0)
摘要:mybatis 中的 和 $ 的区别 一:先上结论 {}:占位符号,好处防止 sql 注入 ${}:sql 拼接符号 二:具体分析 动态 SQL 是 mybatis 的强大特性之一,也是它优于其他 ORM 框架的一个重要原因。mybatis 在对 sql 语句进行预编译之前,会对 sql 进行动态解 阅读全文
posted @ 2020-03-25 21:10 别再闹了 阅读(117) 评论(0) 推荐(0)
摘要:String,StringBuilder,StringBuffer 实现原理解析 定义: 从 jdk1.5 开始提供的新的封装字符串的类StringBuilder,其字符串拼接操作的效率远远高于 String Java 里面提供了 String,StringBuffer 和 StringBuilde 阅读全文
posted @ 2020-03-24 22:55 别再闹了 阅读(1055) 评论(0) 推荐(0)
摘要:Java 中遍历 HashMap 的 5 种方式 本教程将为你展示 Java 中 HashMap 的几种典型遍历方式。 如果你使用 Java8,由于该版本 JDK 支持 lambda 表达式,可以采用第 5 种方式来遍历。 如果你想使用泛型,可以参考方法 3。如果你使用旧版 JDK 不支持泛型可以参 阅读全文
posted @ 2020-03-24 20:28 别再闹了 阅读(1428) 评论(0) 推荐(0)
摘要:Java 泛型和类型擦除 泛型,一个孤独的守门者。 大家可能会有疑问,我为什么叫做泛型是一个守门者。这其实是我个人的看法而已,我的意思是说泛型没有其看起来那么深不可测,它并不神秘与神奇。泛型是 Java 中一个很小巧的概念,但同时也是一个很容易让人迷惑的知识点,它让人迷惑的地方在于它的许多表现有点违 阅读全文
posted @ 2020-03-24 18:02 别再闹了 阅读(305) 评论(0) 推荐(0)
摘要:JDBC 驱动加载过程 概述 一般情况下,在应用程序中进行数据库连接,调用 JDBC 接口,首先要将特定厂商的 JDBC 驱动实现加载到系统内存中,然后供系统使用。基本结构图如下: 驱动加载入内存的过程 这里所谓的驱动,其实就是实现了 java.sql.Driver 接口的类。如 oracle 的驱 阅读全文
posted @ 2020-03-24 17:03 别再闹了 阅读(710) 评论(0) 推荐(0)
摘要:JVM方法区和堆中的Class对象 Class对象是存放在堆区的,不是方法区,这点很多人容易犯错。类的元数据( 元数据并不是类的Class对象!Class对象是加载的最终产品,类的方法代码,变量名,方法名,访问权限,返回值等等都是在方法区的 )才是存在方法区的。 方法区 在一个JVM实例的内部,类型 阅读全文
posted @ 2020-03-24 16:53 别再闹了 阅读(5282) 评论(1) 推荐(4)
摘要:Java JVM的符号引用和直接引用 在JVM中类加载过程中,\ 在解析阶段,Java虚拟机会把类的二级制数据中的符号引用替换为直接引用。\ 1.符号引用(Symbolic References): 符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标即 阅读全文
posted @ 2020-03-24 12:13 别再闹了 阅读(330) 评论(0) 推荐(0)
摘要:Class 文件中的常量池详解(上) NO1. 常量池在 class 文件的什么位置? ​ 我的上一篇文章《Java 虚拟机原理图解》 1、class 文件基本组织结构中已经提到了 class 的文件结构,在 class 文件中的魔数、副版本号、主版本之后,紧接着就是常量池的数据区域了,如下图用红线 阅读全文
posted @ 2020-03-24 11:56 别再闹了 阅读(660) 评论(0) 推荐(1)
摘要:Java 单例模式的双重检测 \1. 一般的单例模式如下: class Singleton{ private static Singleton singleton; private Singleton(){} public static Singleton getInstance(){ if(sin 阅读全文
posted @ 2020-03-24 10:45 别再闹了 阅读(2813) 评论(2) 推荐(1)
摘要:方法区和常量池 最近一直被方法区里面存着什么东西困扰着? ​ 1. 方法区里存 class 文件信息和 class 文件常量池是个什么关系。 ​ 2.class 文件常量池和运行时常量池是什么关系。 ​ 方法区存着类的信息,常量和静态变量 ,即类被编译后的数据。这个说法其实是没问题的,只是太笼统了。 阅读全文
posted @ 2020-03-23 11:27 别再闹了 阅读(437) 评论(0) 推荐(0)
摘要:JDK1.8关于运行时常量池, 字符串常量池的要点 网上关于jdk 1.8的各种实验, 结论鱼龙混杂 , 很多都相矛盾,网上有的实验也被后人测试出了不同的结果 很多都分辨不了真假, 这里记录一下网络上正确的结论, 欢迎指正! 首先自行区分运行时常量池与Class文件常量池(静态常量池)的概念, JV 阅读全文
posted @ 2020-03-23 11:18 别再闹了 阅读(1290) 评论(0) 推荐(0)
摘要:JDK中常用工具 java.exe:用于执行程序,用于执行编译好的.class文件; javadoc.exe:用来制作java文档 ; jdb.exe:java的调试器; javaprof.exe:剖析工具 ; javac.exe:编译java成二进制class文件 阅读全文
posted @ 2020-03-23 10:45 别再闹了 阅读(559) 评论(0) 推荐(0)
摘要:Java 并发编程:Callable、Future 和 FutureTask Java 并发编程:Callable、Future 和 FutureTask 在前面的文章中我们讲述了创建线程的 2 种方式,一种是直接继承 Thread,另外一种就是实现 Runnable 接口。 这 2 种方式都有一个 阅读全文
posted @ 2020-03-18 22:04 别再闹了 阅读(141) 评论(0) 推荐(0)
摘要:Java多线程:原子量 所谓的原子量即操作变量的操作是“原子的”,该操作不可再分,因此是线程安全的。 为何要使用原子变量呢,原因是多个线程对单个变量操作也会引起一些问题。在Java5之前,可以通过volatile、synchronized关键字来解决并发访问的安全问题,但这样太麻烦。 Java5之后 阅读全文
posted @ 2020-03-18 21:11 别再闹了 阅读(192) 评论(0) 推荐(0)
摘要:Java多线程:条件变量 条件变量是Java5线程中很重要的一个概念,顾名思义,条件变量就是表示条件的一种变量。但是必须说明, 这里的条件是没有实际含义的,仅仅是个标记而已 ,并且 条件的含义往往通过代码来赋予其含义 。 这里的条件和普通意义上的条件表达式有着天壤之别。 条件变量都实现了java.u 阅读全文
posted @ 2020-03-18 20:44 别再闹了 阅读(1326) 评论(0) 推荐(0)
摘要:Java阻塞队列 阻塞队列是Java5线程新特征中的内容,Java定义了阻塞队列的接口java.util.concurrent.BlockingQueue,阻塞队列的概念是, 一个指定长度的队列,如果队列满了,添加新元素的操作会被阻塞等待,直到有空位为止。 同样,当队列为空时候,请求队列元素的操作同 阅读全文
posted @ 2020-03-18 20:06 别再闹了 阅读(180) 评论(0) 推荐(0)
摘要:Java中Semaphore(信号量)的使用 Semaphore 的作用: 在 java 中,使用了 synchronized 关键字和 Lock 锁实现了资源的并发访问控制,在同一时间只允许唯一了线程进入临界区访问资源 (读锁除外),这样子控制的主要目的是为了解决多个线程并发同一资源造成的数据不一 阅读全文
posted @ 2020-03-18 20:00 别再闹了 阅读(13070) 评论(0) 推荐(1)
摘要:为什么一个 Java 文件中只能包含一个 public 类? 个人总结: \ 一个编译单元(java 文件)\ 可以存在多个类,在编译时产生多个不同的. class 文件,.class 文件便是程序运行的数据来源。java 将 public 类作为每个编译单元的数据接口,只能有一个,不然不能处理存在 阅读全文
posted @ 2020-03-18 19:55 别再闹了 阅读(353) 评论(0) 推荐(0)
摘要:公平锁和非公平锁 1. 若在释放锁的时候总是没有新的兔子来打扰,则非公平锁等于公平锁; 2. 若释放锁的时候,正好一个线程请求获得锁,而此时位于队列头的线程还没有被唤醒(因为线程上下文切换是需要不少开销的),此时后来的线程则优先获得锁,成功打破公平,成为非公平锁; 其实对于非公平锁,只要线程进入了等 阅读全文
posted @ 2020-03-18 19:33 别再闹了 阅读(139) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 ··· 9 下一页