
Java
三千3000
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
list集合删除元素遇到的坑
在使用list删除元素时,如果出现重复元素的话,直接使用for循环会导致删除不干净的问题,所以可以使用迭代器Iterator进行删除。package com.java.base.list;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class RemoveList ...原创 2020-05-08 16:15:40 · 751 阅读 · 0 评论 -
ReentrantLock公平锁与非公平锁的区别及源码解析
一、获取锁对比FairLock:判断当前锁状态state是否为0.为0表示锁空闲,判断当前线程之前是否已经有线程在等待获取锁了,没有才能获取;所有线程都在排队,有序的等待获取锁,不会出现饥饿现象;因为所有线程都在等待获取锁,因此都产生阻塞,唤醒阻塞消耗资源。 final void lock() { acquire(1); } public fina...原创 2020-03-20 15:20:07 · 621 阅读 · 0 评论 -
LocalDate获取一年的周数,及指定周数周一到周日对应得日期
java8如何获取一年拥有的周数及周数对应的日期下面是一个测试的例子public class TestWeekNumAndDate { /** * @param args */ public static void main(String[] args) { //初始化,第一周至少四天 WeekFields wfs= WeekFields.of(DayOfWeek.MON...原创 2019-08-22 09:54:21 · 10752 阅读 · 0 评论 -
java8使用LocalDate和LocalDateTime加减时间容易忽略的问题
使用LocalDate和LocalDateTime加减时间的时候,自身是不会变的,这个与Calendar有点区别,Calendar加减时间时自身就会改变,需要重新声明变量或者重新赋值才行public class TestTime { public static void main(String[] args) { LocalDate startDate = LocalDate....原创 2019-08-15 17:05:58 · 29163 阅读 · 4 评论 -
jdk7关于HashMap数据存储与获取的源码解析
一、存储数据解析1、先看put方法public V put(K key, V value) { //如果key值为空,调用putForNullKey方法存储键值对,点进该方法中,可以看到,调用的addEntry方法默认会将内容存到数字下表为0的链表下 if (key == null) return putForNullKey(value); //根据ke...原创 2019-07-22 14:52:28 · 128 阅读 · 0 评论 -
最简单的IO解析
**对于IO流主要分三方面进行解析**1、输入流与输出流输入流与输出流主要的父类是InputStream和OutputStream,其他流类主要是由这两个类派生出来。输入流和输出流我们打个比方,我们再淘宝买了一套家具(柜子、床、沙发这些),在出发前,卖家把这些都拆成小块,方便物流货车装载,这就像我们的输入流把大的文件转成二进制流,货车就是传输通道,然后我们收到货后,把这些家具重新组装起来,...原创 2019-07-25 14:42:31 · 331 阅读 · 0 评论 -
泛型及通配符上下限的使用解析
在java中?指泛型的通配符,可以表示任何类型。如List<?>,Map<?,?>等public class GenericityTest { public static void main(String[] args) { List<String> lists = new ArrayList<>(); lists.add("111"...原创 2019-07-24 18:41:12 · 397 阅读 · 0 评论 -
最简单的线程、多线程的解析
线程是操作系统最小的执行单位,也可以称为轻量级进程,一个进程可以有多个线程组成。一个线程一般有自己的计数器、堆栈、局部变量。我们都知道现在的计算机cup内核在不断的扩展,计算机速度越来越快,单一的线程已经满足不了人们的需求,用户线户与轻量线程N:M关联,而轻量线程与内核线程是一一对应的关系。所以多线程被考虑到了,因为轻量级线程可以和用户线程混合使用。而用户线程正时我们编程使用的线程。多线程下...原创 2019-07-23 23:41:17 · 182 阅读 · 0 评论 -
jdk8在Java编程语言上加了哪些新特性
使用lambda表达式,如:() -> {return 1;} //该函数无入参,返回1;(a, b) -> a + b //返回a与b的和int a = (int a, int b) -> a + b; // 有类型声明,返回a与b的和int a = (a, b) -> a + b; // 无类型声明,返回a与b的和int a = (int a,...原创 2019-07-18 12:02:48 · 126 阅读 · 0 评论 -
jdk7在Java编程语言上加了哪些新特性
1.可使用二进制形式的字面值表示,在二进制数字前添加前缀0b或0B表示,如下:int a = 0b1011; //表示11int b = 0B1000; //表示82.在数值类型的字面值中使用下划线分隔符联接,如下:int a = 1000_0000; //表示一千万,编译的时候会去掉下划线,这样看着会比较直观3.创建泛型实例时自动类型推断,如下:List<Stri...原创 2019-07-05 11:27:39 · 149 阅读 · 0 评论 -
String[]转List,List转String[]
List 转换为 String数组List list = new ArrayList();list.add(“a”);list.add(“b”);String[] arr = list.toArray(new String[list.size()]);String 数组转换为 ListString[] arr = new String[] {“c”, “d”};List li...原创 2019-06-12 10:35:41 · 40389 阅读 · 0 评论 -
Json转对象失败
com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.huasisoft.egAffairs.JsonResult: no suitable constructor found, can not deserialize from Object value没有无参构造函数,再j...原创 2019-06-12 10:01:39 · 2969 阅读 · 0 评论 -
Java如何通过.properties文件获取配置信息
1.如建一个application.properties文件,文件内容如下:TEST1= ABCTEST2= DEF2.java代码处理public class TestProperties{ public static String getPropertiesByName() { String testValue1 = null; String testValue2 = nu...原创 2019-06-11 09:15:21 · 983 阅读 · 0 评论 -
final与static final的区别
先看如下例子:package finalandstatic;public class StudyFinal {final int data = (int) (Math.random()*10);static final int DATAS = (int) (Math.random()*10);public void print() {System.out.println(“data:”...原创 2019-04-24 10:59:07 · 1229 阅读 · 0 评论 -
java中native关键字的作用
native修饰的成员方法,表示这个方法是本地方法,java调用的是底层代码,属于调用的方法属于C编写的代码,如查看jdk源码时我们会发现线程的启动方法是native修饰的,所以,到这里的时候已经点不了了,可以使用openjdk继续查看源码,不过这个方法的代码实现方式已经是属于c编写的private native void start0();...原创 2019-04-24 10:17:49 · 1374 阅读 · 0 评论 -
对Java宏变量与宏替换的理解
一、宏变量先说说什么是宏变量,满足三个必须条件即是宏变量1、该变量必须是final修饰的变量;2、该变量必须在开始时就指定初始值;3、该初始值必须是在编译时期就可以确定。二、宏替换public class FinalTest { public static void main(String[] args) { String nb = "finaltest"; String ...原创 2019-04-24 10:08:41 · 1859 阅读 · 0 评论 -
win10配置jdk环境
一、找到环境变量设置此电脑右键属性—>高级系统设置—>环境变量—>系统变量如图新建:二、新建三个变量1、新建JAVA_HOME变量,改变量值为jdk的安装路径,我的安装路径是D:\MyProject\Tool\jdk8u1922、 新建CLASSPATH变量,值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意:最前面的点...原创 2019-04-15 00:32:29 · 204 阅读 · 0 评论 -
java反射对象和new出来的对象有什么区别
一、**********************************************************************a1:new属于静态编译b1:反射属于动态编译,意思就说只有到运行时才会去获得该对象的实例,大多框架都是使用反射获取对象实例,如Spring二、*****************************************************...原创 2019-04-26 08:45:44 · 5869 阅读 · 4 评论 -
谈谈我对序列化与反序列化的理解
一、首先来看看序列化和反序列化是用来干什么的?我们知道对象并不能直接在端与端之间进行通信,因此如果一个对象又需要进行端对端的通信怎么办呢?这时候有人就想出了在发送端把对象先转成可以进行传输的字节,在接收端再通过把字节转化成对象的方式进行传输。这种将对象转成字节的方式就是序列化,而将字节转回对象的方式则是反序列化。一般序列化解决的是将对象持久化到磁盘中,或者对象在网络中传输的问题。二、下面通过...原创 2019-04-20 17:15:43 · 493 阅读 · 0 评论