随笔分类 -  Java

摘要:ByteBuffer Test: package java_guide; import java.nio.ByteBuffer; public class ByteBufferMethods { public static void main(String[] args) { //分配缓冲区(All 阅读全文
posted @ 2019-11-19 16:32 Practical 阅读(217) 评论(0) 推荐(0)
摘要:package how2j.threadTest; import java.util.LinkedList; public class ThreadPool { private int threadPoolSize = 10; //线程池的默认大小 private LinkedList<Runnab 阅读全文
posted @ 2019-11-12 14:27 Practical 阅读(576) 评论(0) 推荐(0)
摘要:/** * The default initial capacity - MUST be a power of two. * 初始化容量值的大小 即初始化数组的大小 为16 以后扩容也必须是2的倍数 */ static final int DEFAULT_INITIAL_CAPACITY = 1 < 阅读全文
posted @ 2019-11-11 11:08 Practical 阅读(182) 评论(0) 推荐(0)
摘要:异步调用:当我们执行一个方法时,假如这个方法中有多个耗时的任务需要同时去做,而且又不着急等待这个结果时可以让客户端立即返回然后,后台慢慢去计算任务。当然你也可以选择等这些任务都执行完了,再返回给客户端。 SpringBoot 异步编程实战 如果我们需要在 SpringBoot 实现异步编程的话,通过 阅读全文
posted @ 2019-10-28 16:38 Practical 阅读(459) 评论(0) 推荐(0)
摘要:相关依赖 如果开发普通 Java 程序的的话,你需要可能需要像下面这样依赖: <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6 阅读全文
posted @ 2019-10-25 11:22 Practical 阅读(226) 评论(0) 推荐(0)
摘要:类加载器总结 JVM 中内置了三个重要的 ClassLoader,除了 BootstrapClassLoader 其他类加载器均由 Java 实现且全部继承自java.lang.ClassLoader: BootstrapClassLoader(启动类加载器) :最顶层的加载类,由C++实现,负责加 阅读全文
posted @ 2019-10-14 15:54 Practical 阅读(982) 评论(0) 推荐(0)
摘要:一 概述 在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而且, 阅读全文
posted @ 2019-10-10 20:24 Practical 阅读(556) 评论(0) 推荐(0)
摘要:Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时,Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收。 Java 堆是垃圾收集器管理的主要区域,因此也被称作GC 堆(Garbage Collected Heap).从垃圾回收的角度,由于现在收集器基本都采用分代垃圾 阅读全文
posted @ 2019-10-09 19:58 Practical 阅读(294) 评论(0) 推荐(0)
摘要:1.2. 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗 synchronized关键字最主要的三种使用方式: 修饰实例方法: 作用于当前对象实例加锁,进入同步代码前要获得当前对象实例的锁 修饰静态方法: :也就是给当前类加锁,会作用于类的所有对象实例,因为静态成员不属于任何 阅读全文
posted @ 2019-09-26 15:01 Practical 阅读(398) 评论(0) 推荐(0)
摘要:Java内存区域讲解 线程私有的: 程序计数器 虚拟机栈 本地方法栈 线程共享的: 堆 方法区 直接内存 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线 阅读全文
posted @ 2019-09-23 20:01 Practical 阅读(360) 评论(0) 推荐(0)
摘要:ArrayList源码分析 System.arraycopy()和Arrays.copyOf()方法 通过上面源码我们发现这两个实现数组复制的方法被广泛使用而且很多地方都特别巧妙。比如下面add(int index, E element)方法就很巧妙的用到了arraycopy()方法让数组自己复制自 阅读全文
posted @ 2019-09-16 23:53 Practical 阅读(207) 评论(0) 推荐(0)
摘要:说说List,Set,Map三者的区别? List(对付顺序的好帮手): List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的对象 Set(注重独一无二的性质): 不允许重复的集合。不会有多个元素引用相同的对象。 Map(用Key来搜索的专家): 使用键值对存储。Map会维护与Key有 阅读全文
posted @ 2019-09-16 15:18 Practical 阅读(131) 评论(0) 推荐(0)
摘要:11. Java 面向对象编程三大特性: 封装 继承 多态 封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问。但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了。 继承 继承是使用已存在的类的定义作为基础 阅读全文
posted @ 2019-09-10 19:52 Practical 阅读(395) 评论(0) 推荐(0)
摘要:一.内存模型的相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起 阅读全文
posted @ 2019-08-30 14:21 Practical 阅读(23264) 评论(4) 推荐(7)
摘要:package netProgram; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class TCPServer { public static void main(String[] ... 阅读全文
posted @ 2019-06-18 21:48 Practical 阅读(1995) 评论(0) 推荐(0)
摘要:两个重要的类: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/DatagramPacket.html https://docs.oracle.com/en/java/javase/11/docs/api/j 阅读全文
posted @ 2019-06-17 22:15 Practical 阅读(671) 评论(0) 推荐(0)
摘要:InetAddress类,此类表示Internet协议(IP)地址。具体使用方法查看文档:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/InetAddress.html InetSocketAddress, 阅读全文
posted @ 2019-06-17 21:14 Practical 阅读(400) 评论(0) 推荐(0)
摘要:返回的地址一样 说明只创建了一个对象 线程局部变量:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ThreadLocal.html ReentrantLock的原理就是内部设置一个计数器,每次加锁的时候的 阅读全文
posted @ 2019-06-13 10:08 Practical 阅读(449) 评论(0) 推荐(0)
摘要:具体参见JDK文档:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Timer.html 定时调度框架:Quartz https://www.w3cschool.cn/quartz_doc/quartz_d 阅读全文
posted @ 2019-06-12 22:09 Practical 阅读(239) 评论(0) 推荐(0)
摘要:线程间通信的方法: 经典模型:生产者消费者模式 1.管程法: 输出: 生产的第0杯奶茶 消费的第0杯奶茶 消费的第1杯奶茶 生产的第1杯奶茶 生产的第2杯奶茶 消费的第2杯奶茶 生产的第3杯奶茶 消费的第3杯奶茶 消费的第4杯奶茶 生产的第4杯奶茶 生产的第5杯奶茶 生产的第6杯奶茶 生产的第7杯奶 阅读全文
posted @ 2019-06-12 21:32 Practical 阅读(184) 评论(0) 推荐(0)