
java 基础
文章平均质量分 72
feng_xiaoshi
突破光速,跨越纬度。
展开
-
Java11 新特性
Java 11是继Java 8之后的第二个LTS版本。从 Java 11 开始,Oracle JDK 将不再免费提供商业用途。可以在开发阶段使用它,但要在商业上使用它,则需要购买许可证。Java 11 还排除了JRE或Server JRE,下载仅可以获得 JDK。Java 11功能还包括Windows和macOS的更新打包格式的更改。Java 11中Windows的更新打包格式为.zip,而不是 tar.gz。macOS的更新打包格式为.dmg而不是.app。原创 2020-05-13 21:38:07 · 3777 阅读 · 0 评论 -
Java POST请求发送文件同时发送参数
通常的POST请求的业务场景,不是上传文件,就是提交表单,很少遇到上传文件同时需要提交表单信息。原创 2020-05-12 20:19:02 · 8128 阅读 · 0 评论 -
Java11 HttpClientUtil
HttpClientUtil 工具类,内部使用 Java11 HttpClient实现。原创 2020-05-12 19:43:30 · 3765 阅读 · 1 评论 -
Java8 新特性
Java 8 (又称为 jdk 1.8 ) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的 Stream API 等。原创 2020-01-12 20:29:10 · 3571 阅读 · 0 评论 -
Java Beans 是什么?
JavaBeans 是 Java 中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供 getter 方法和 setter 方法访问对象的属性。名称中的 “Bean” 是用于 Java 的可重用软件组件的惯用叫法。原创 2020-01-01 12:18:12 · 8346 阅读 · 0 评论 -
动态代理是什么?
代理模式是为了提供额外或不同的操作,而插入的用来替代”实际”对象的对象,这些操作涉及到与”实际”对象的通信,因此代理通常充当中间人角色。原创 2020-01-01 11:04:07 · 7698 阅读 · 0 评论 -
OutOfMemoryError是什么?
OutOfMemoryError 异常是 JVM 所抛出的,当JVM没有足够的可用内存来分配时,就会抛出。OutOfMemoryError 在 Exception 类层次结构中属于 Error 类别。原创 2019-12-31 16:12:50 · 3656 阅读 · 0 评论 -
ThreadPoolExector 是什么?
简述ThreadPoolExector 是 线程池执行器 ,用来构建线程池。Java 线程池 (thread pool) 是管理工作线程的池化实现。它包含一个使任务等待执行的队列。在 Java 中,可以使用ThreadPoolExecutor 来创建线程池。Java 线程池管理可运行线程的集合。工作线程从队列中执行可运行线程。java.util.concurrent.Executors 为...原创 2019-12-27 21:43:34 · 3238 阅读 · 0 评论 -
FutureTask 是什么?
简介在 Java 中为了编程异步事件,我们使用 Thread 类和 Runnable 接口,它们可以开发并行应用程序。问题是在执行结束时不能返回值。因此,添加了 FutureTaks,Future 和 Callable 类,它们与以前的类具有大致相同的功能,但极大地促进了并行应用程序的开发。由于线程 Thread 只支持 Runnable 构造,于是有了 Future 可以根据 Callable...原创 2019-12-27 18:26:02 · 5956 阅读 · 1 评论 -
CopyOnWriteArrayList 是什么?
简述Java 中的 CopyOnWriteArrayList 是 List 接口的线程安全实现。在 Java 1.5 和 Collections 框架的一部分中添加了 CopyOnWriteArrayList。在多线程程序中,当开发人员希望以线程安全的方式遍历列表而无需显式同步时,CopyOnWriteArrayList 非常有用。它是ArrayList的增强版本,其中所有修改(添加,设置,删...原创 2019-12-27 09:54:13 · 3361 阅读 · 1 评论 -
BlockQueue 是什么?
当线程队列是空时,从队列中获取元素的操作将会被阻塞;当线程队列是满时,往队列里添加元素的操作将会被阻塞。原创 2019-12-25 21:48:16 · 8978 阅读 · 0 评论 -
CountDownLatch是什么?
简介CountDownLatch 在Java中是一种同步器,它允许一个线程 来开始处理之前,等待一个或多个线程。可以在程序中使用Java中的等待和通知机制来实现和CountDownLatch相同的功能 ,但是它需要大量代码,并且在第一次使用时非常困难(tricky),而使用CountDownLatch 可以使用几行代码简单完成。CountDownLatch 还允许灵活地等待主线程要等待的线程...原创 2019-12-22 15:32:43 · 483 阅读 · 0 评论 -
自旋锁是什么?
定义自旋锁 spin lock下面内容摘自维基百科在软件工程中,自旋锁是一种锁,它使试图获取它的线程在循环(“自旋”)中简单地等待,同时反复检查该锁是否可用。由于线程保持活动状态,但未执行有用的任务,因此使用这种锁是一种繁忙的等待。一旦获得了自旋锁,通常将一直保持这些自旋锁,直到显式释放它们为止,尽管在某些实现中,如果正在等待线程(持有锁的线程)阻塞或“进入睡眠状态”,则它们可能会自动...原创 2019-12-21 22:30:05 · 4521 阅读 · 0 评论 -
可重入锁是什么?
简介在Java 5.0中,增加了一个称为ReentrantLock的新功能,以增强内部锁定功能。在此之前,“synchronized" 和 "volatile”是实现并发的手段。public synchronized void doAtomicTransfer(){ //进入同步代码块 获取对此对象的锁定。 operation1() operation2(); ...原创 2019-12-21 16:53:02 · 5384 阅读 · 0 评论 -
JVM 本地方法栈(native method stack)解释
什么是本地方法栈?oracle官方文档jvms-se7Java虚拟机的实现可以使用传统的堆栈(俗称“ C堆栈”)来支持native方法(用Java编程语言以外的语言编写的方法)。解释器的实现也可以使用诸如C之类的语言来解释Java虚拟机的指令集,以使用native 本机方法栈。无法加载方法并且自身不依赖于常规堆栈的Java虚拟机实现无需提供本机方法栈。如果提供,通常在创建每个线程时为每个线程...原创 2019-12-17 22:26:15 · 5126 阅读 · 0 评论 -
Object的方法有哪些
Java中的超类Object,都包含哪些方法,都是用来做什么的,用处和关联。原创 2019-12-15 09:54:30 · 3541 阅读 · 0 评论 -
JMM 简介
JMM(Java Memory Model) java内存模型,首先它是不存在的只是硬件抽象的规范和概念。JMM的特性:1. 可见性 2. 原子性 3. 有序性下面简单介绍一下JVM和JMM的关系:JVM运行程序的实体是线程,而每个线程在创建时JVM都会为其创建一个工作内存(栈空间),JMM规定所有的变量都存储在主内存中,主内存是共享的内存区域(所有线程都可以访问),其他线程操作变量都是从主...原创 2019-12-11 13:53:24 · 3380 阅读 · 0 评论 -
Java IO模型总结
BIO、AIO、NIO的区别:什么是同步?指的是用户进程触发IO操作等待并轮询的去查看IO操作是否就绪。什么是异步?异步指的是用户进程触发IO操作后便开始做自己的事情,而当IO操作已经完成的时候会得到IO完成的通知(异步的特点就是通知)。什么是阻塞?所谓阻塞方式的意思是指, 当试图对该文件描述符进行读写时, 如果当时没有东西可读,或者暂时不可写, 程序就进入等待 状态, 直到有东西可...原创 2019-12-11 11:33:49 · 2741 阅读 · 0 评论 -
反射机制
允许从类名字符串创建对象JDBC驱动中的Class.forName(驱动类型名)就是一个最常见的例子允许选择对象的构造函数创建对象允许通过方法的字符串名称以及参数类型调用方法允许通过属性的字符串名称存取属性的值反射机制的使用通过对前一阶段多种不同的语句类型的解码,可以发现一定规律:对于简单语句(parametric sentences),都是将语句分段之后,按照每段的不...原创 2019-12-09 14:41:34 · 2878 阅读 · 0 评论