Java知识点整理
captxb
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1_Java类加载机制
类的生命周期是:加载->验证->准备->解析->初始化->使用->卸载,只有在__准备__阶段和__初始化__阶段才会涉及类变量(static)的初始化和赋值,因此只针对这两个阶段进行分析 类的准备阶段需要做的是__为类变量分配内存并设置默认值__,因此类变量st为null、b为0 如果类变量被final修饰,编译时javac将会为value生成Co...转载 2019-02-17 17:44:37 · 131 阅读 · 0 评论 -
13_线程池的实际操作
参考 https://www.cnblogs.com/kuoAT/p/6714762.html 线程池一般就是这么用的 public static void main(String[] args) { ExecutorService executorService = Executors.newFixedThreadPool(8); Future<Int...原创 2019-09-15 19:24:47 · 162 阅读 · 0 评论 -
AQS和ReentrantLock
AQS提供的几个比较关键的 public 方法有 public final void acquire(int arg) 底层用到了 protected boolean tryAcquire(int arg) 和 final boolean acquireQueued(final Node node, int arg) 方法 public final void acquireInterr...原创 2019-08-09 18:06:12 · 374 阅读 · 0 评论 -
java nio示例
参考 https://crunchify.com/java-nio-non-blocking-io-with-server-client-example-java-nio-bytebuffer-and-channels-selector-java-nio-vs-io/ NIOServer.java import java.io.IOException; import java.ne...转载 2019-06-20 18:00:03 · 190 阅读 · 0 评论 -
11_Java反射机制
Class类 (1) 位于 java.lang 下 (2) JavaDoc的介绍 1° Class代表类的类或者接口的类(enum是一种类,注解是一种接口) 2° Class类没有public构造器,所以Class类的对象实例时由JVM自动在类被加载时构造出来的 3° 获取对应的Class实例的方法: 如果是对象,则可以用 对象.getClass()方法获得(getClass()方法是Obje...原创 2019-03-24 15:10:09 · 213 阅读 · 0 评论 -
5_HashMap
参考资料 HashMap和Hashtable的区别 HashMap和Hashtable的区别 (1) HashMap非线程安全,Hashtable线程安全 HashMap.java public class HashMap&lt;K,V&gt; extends AbstractMap&lt;K,V&gt; implements Map&lt;K,V&gt;, Cloneable, Se...原创 2019-03-13 20:21:44 · 196 阅读 · 0 评论 -
9_Java中两个int相除向哪个方向取整
class Solution { public static void main(String[] args) { int result = 0; result = 4/3; System.out.println("4 / 3: " + result); result = -4/-3; ...原创 2019-02-18 17:51:35 · 2698 阅读 · 0 评论 -
8_关于Callable, Future和FutureTask
耳熟能详的两种创建线程的方式是扩展Thread和实现Runnable接口 但是它们有一个固有缺陷: 无法获取执行的结果 为了解决这个问题, Callable诞生了 Callable (1) 在java.util.concurrent包下, 是一个泛型接口 public interface Callable&lt;V&gt; { /** * Computes a ...转载 2019-02-18 17:48:22 · 157 阅读 · 0 评论 -
7_sleep和wait的比较
(1) 所有对象都自动含有单一的锁。 (2) JVM负责跟踪对象被加锁的次数。如果一个对象被解锁,其计数变为0。在任务(线程)第一次给对象加锁的时候,计数变为1。每当这个相同的任务(线程)在此对象上获得锁时,计数会递增。 (3) 只有首先获得锁的任务(线程)才能继续获取该对象上的多个锁。 (4) 每当任务离开一个synchronized(同步)方法,计数递减,当计数为0的时候,锁被完全释放,此...转载 2019-02-18 10:30:45 · 169 阅读 · 0 评论 -
6_关于wait, notify与notifyAll
wait (1) wait是Object类的非静态方法,也就是说,所有对象实例都有wait方法 (2) Object类中提供了wait的__三种__重载形式 1° public final void wait() throws InterruptedException; 2° public final native void wait(long timeout) throws Int...翻译 2019-02-18 10:14:32 · 179 阅读 · 0 评论 -
5_关于Thread的join方法
在Thread类中一共有__3种__join函数的重载形式,都是非静态函数 public final void join() throws InterruptedException; public final synchronized void join(long millis) throws InterruptedException public final synchron...原创 2019-02-18 09:21:23 · 578 阅读 · 0 评论 -
4_关于String的indexOf方法
indexOf 没有使用 KMP算法,使用的算法是先找到 目标字符串target[0]在源字符串中的位置i,然后再判断其他部分是否一致 不使用KMP算法的原因可能是KMP需要额外的空间开销,并且要处理的多数字符串长度较短,没有必要使用 ...原创 2019-02-18 09:10:22 · 309 阅读 · 0 评论 -
3_关于java中的注解
注解是那些插入到源代码中__使用其他工具__可以对其进行处理的标签 注解不会改变编译方式,无论是否包含注解,生成的虚拟机指令是相同的 注解的用途包括 (1) 自动生成。例如bean信息类 (2) 测试、日志等代码的自动生成 需要专门的__处理工具__处理注解,向相应的处理工具可以理解的代码中插入注解 注解本身不干任何事情,需要工具支持才有用 注解的形式: @Test(tim...转载 2019-02-18 09:09:34 · 221 阅读 · 0 评论 -
2_Java自动装箱的缓存策略
缓存策略__仅在自动装箱时使用__(例如 Integer a = 1;),使用构造器构建时无效(例如 Integer b = new Integer(1);) 以Integer为例,Integer a = 1; 对应的实际过程为 Integer a = Integer.valueOf(1);查看源码可以发现调用 valueOf 函数时,首先检查Integer的私有静态类IntegerCac...转载 2019-02-18 09:07:36 · 159 阅读 · 0 评论 -
两个线程分别交替打印A、B的一种Java写法
大致思路是用条件变量作为两个线程通信的工具,然后用一个AtomicBoolean的变量作为flag保证线程间的可见性 代码如下 import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.Condition; import java.util.concurrent.loc...原创 2019-09-16 10:20:34 · 1423 阅读 · 0 评论
分享