Java
文章平均质量分 62
kris999
这个作者很懒,什么都没留下…
展开
-
Java8 (LocalDateTime) 时间转换
注意:LocalDateTime是带时分秒的1.将LocalDateTime转为自定义的时间格式的字符串public static String getDateTimeAsString(LocalDateTime localDateTime, String format) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); return localDateTime.format(formatter);原创 2020-10-13 08:26:48 · 2220 阅读 · 0 评论 -
Java中ArrayList循环遍历并删除元素的陷阱
面试题:Java中ArrayList循环遍历并删除元素的陷阱面试官问到这个问题时,当时有点没反应过来,多了解哈先看测试案例:import java.util.ArrayList; public class ArrayListRemove { public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>();原创 2020-05-16 16:25:40 · 402 阅读 · 0 评论 -
解析为什么hashmap是线程不安全的?
https://blog.csdn.net/loveliness_peri/article/details/81092360总结版:HashMap在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能出现同时在同一数组...原创 2020-03-22 17:37:44 · 151 阅读 · 0 评论 -
设计模式之工厂模式
工厂模式单例设计模式的关键点一.私有构造函数二.声明静态单例对象三.构造单例对象之前要加锁(lock一个静态的object对象,某些语言可以声明同步执行,其实是一个目的)四.需要两次检测单例实例是否已经被构造,分别在锁之前和锁之后好了,本文将向大家来讨论一下工厂模式,并且归纳工厂模式的关键点。分类一般分为3种。简单工厂,工厂和抽象工厂**本质工厂模式的核...原创 2018-04-07 16:21:01 · 230 阅读 · 0 评论 -
想进大厂?50个多线程面试题,你会多少?(一)
想进大厂?50个多线程面试题,你会多少?(一)https://cloud.tencent.com/developer/article/1064496什么是线程?什么是线程安全和线程不安全?什么是自旋锁?什么是Java内存模型?什么是CAS?什么是乐观锁和悲观锁?什么是AQS?什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes...原创 2020-03-08 17:16:01 · 244 阅读 · 0 评论 -
什么情况下需要重写hashCode和equals方法 ?为什么需要重写?
https://cloud.tencent.com/developer/article/13853911 什么情况需要重写1 自定义类 需要判断对象在业务逻辑上是否相等,需要重写hashCode和equals。如果不被重写(原生)的hashCode和equals是什么样的?不被重写(原生)的hashCode值是根据内存地址换算出来的一个值。不被重写(原生)的equals方法是严格判断...原创 2020-03-07 17:42:06 · 6610 阅读 · 0 评论 -
知识架构总结
1、Java基础https://blog.csdn.net/kris1025/article/details/944304842、redishttps://blog.csdn.net/kris1025/article/details/944310953、Spring原创 2019-07-02 09:55:27 · 267 阅读 · 0 评论 -
【IDEA】MAC 修改".vmoptions"导致 IDEA 无法启动 解决方案
https://blog.csdn.net/zzh920625/article/details/104053170?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task删除 iead.vmoptions副本即可/Users/用户名/Library...原创 2020-03-02 14:48:06 · 1668 阅读 · 0 评论 -
位运算与 和取模运算 &比%具有更高的效率
由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快。https://blog.csdn.net/weixin_33700350/article/details/85782769?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task...原创 2020-02-29 17:21:53 · 4368 阅读 · 0 评论 -
ThreadLocal 原理与使用场景
ThreadLocal 原理与使用场景https://zhuanlan.zhihu.com/p/65511028原创 2020-02-28 23:30:51 · 107 阅读 · 0 评论 -
好的博客汇总
jdk源码学习Java3y https://zhongfucheng.bitcron.com/post/shu-ju-jie-gou-suan-fa/ba-da-ji-chu-pai-xu-zong-jieMySQL基础https://zhongfucheng.bitcron.com/post/shu-ju-ku/shu-ju-ku-mian-shi-ti https://zh...原创 2018-05-03 11:04:08 · 470 阅读 · 0 评论 -
单例
静态内部类实现public class SingletonPattern { private SingletonPattern() { } private static class SingletonPatternHolder { private static final SingletonPattern singletonPattern = new...转载 2018-04-23 10:19:32 · 134 阅读 · 0 评论 -
synchronized的可重入性
https://www.cnblogs.com/cielosun/p/6684775.html1.1. 线程安全 线程安全函数的概念比较直观,众所周知,同一进程的不同线程会共享同一主内存,线程的私有栈中只包括PC,栈,操作数栈,局部变量数组和动态链接。对共享内存进行读写时,若要保证线程安全,则必须通过加锁的方式。1.2. 可重入 1.2.1. 定义 关于可重入这一概念,我们需要参考维...转载 2018-04-27 19:54:38 · 253 阅读 · 0 评论 -
正则表达
https://blog.csdn.net/qq80583600/article/details/69062659https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143193331387014ccd1040c814dee8b2164bb4f064cff000转载 2018-04-26 10:13:45 · 106 阅读 · 0 评论 -
Java四种线程池使用
Java 四种线程池的使用https://juejin.im/post/59df0c1af265da432f301c8d1,线程池的作用 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果。 少了浪费了系统资源,多了造成系统拥挤效率不高。 用线程池控制线程数量,其他线程排 队等候。 一个任务执行完毕,再从队列的中取最前面的...转载 2018-04-21 11:47:34 · 1719 阅读 · 0 评论 -
戏(细)说Executor框架线程池任务执行全过程(上)
http://www.infoq.com/cn/articles/executor-framework-thread-pool-task-execution-part-01一、前言 1.5后引入的Executor框架的最大优点是把任务的提交和执行解耦。要执行任务的人只需把Task描述清楚,然后提交即可。这个Task是怎么被执行的,被谁执行的,什么时候执行的,提交的人就不用关心了。具体点讲,提...转载 2018-04-21 11:21:40 · 135 阅读 · 0 评论 -
多线程基础
线程间的状态转换:线程间的状态转换: 新建(new):新创建了一个线程对象。可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权 。运行(running):可运行状态(runnable)的线程获得了cpu 时间片(timeslice) ,执行程序代码。阻...原创 2018-04-21 10:35:09 · 142 阅读 · 0 评论 -
深入研究Java锁机制
Java的锁机制参考 https://zhongfucheng.bitcron.com/post/duo-xian-cheng/javasuo-ji-zhi-liao-jie-yi-xiahttp://cmsblogs.com/?page_id=111Java显示锁lock获取lock的几种方法 lock : 在锁上等待,直到获取锁; tryLock:立即返回,获得锁返回t...原创 2018-04-19 20:35:40 · 567 阅读 · 0 评论 -
Java中volatile的原理
https://blog.csdn.net/u010412719/article/details/46683029Java中Volatile的作用 看了几篇博客,发现没搞懂,但是简单来说,就是在我们的多线程开发中,我们用Volatile关键字来限定某个变量或者属性时,线程在每次使用变量的时候,都会读取变量修改后的最新的值,即Volatile关键字保证了变量的可见性。但是,并不能保证变量的原子...原创 2018-04-19 18:19:36 · 958 阅读 · 0 评论 -
深入研究Java虚拟机--Java内存模型
https://blog.csdn.net/eff666/article/details/66479636转载 2018-04-19 18:17:13 · 102 阅读 · 0 评论 -
ThreadLocal学习
前言一、什么是ThreadLocal二、为什么要学习ThreadLocal?2.1管理Connection2.2避免一些参数传递三、ThreadLocal实现的原理3.1ThreadLocal原理总结四、避免内存泄露五、总结前言 今天要研究的是ThreadLocal,这个我在一年前学习JavaWeb基础的时候接触过一次,当时在baidu搜出来的第一篇博文ThreadLo...原创 2018-05-08 10:50:32 · 151 阅读 · 0 评论 -
Java8的groupBy实现集合的分组
场景:Java8的groupBy实现集合的分组,类似Mysql的group by分组功能,注意得到的是一个map1.对集合按照单个属性分组e.g. 按照skuId分组Map&amp;lt;String, List&amp;lt;EntryDeliveryDetailywk&amp;gt;&amp;gt; detailsMap01 = dtos1.stream().collect(Collectors.groupi...原创 2018-06-16 18:06:27 · 160491 阅读 · 9 评论 -
Java创建对象的几种方式
我们总是讨论没有对象就去new一个对象,创建对象的方式在我这里变成了根深蒂固的new方式创建,但是其实创建对象的方式还是有很多种的,不单单有new方式创建对象,还有使用反射机制创建对象,使用clone方法去创建对象,通过序列化和反序列化的方式去创建对象。这里就总结一下创建对象的几种方式,来好好学习一下java创建对象的方式。一、使用new关键字 这是我们最常见的也是最简单的创建对象的方式,通...转载 2018-04-09 07:28:18 · 105 阅读 · 0 评论 -
redis总结
1、天下无难试之Redis面试题刁难大全https://zhuanlan.zhihu.com/p/32540678Redis有哪些数据结构?使用过Redis分布式锁么,它是什么回事?原创 2019-07-02 09:49:03 · 103 阅读 · 0 评论 -
Java基础
https://blog.csdn.net/moneyshi/article/details/53033578在Java中,对象的生命周期包括以下几个阶段: 创建阶段(Created) 应用阶段(In Use) 不可见阶段(Invisible) 不可达阶段(Unreachable) 收集阶段(Collected) 终结阶段(Finalized)...原创 2019-07-02 09:36:43 · 164 阅读 · 0 评论 -
Java中final关键字的用法
Java中final关键字的用法https://www.cnblogs.com/lixiaolun/p/4317004.htmlfinal:adj. 最终的,不可改变的我们就取其字面意思”不可改变的“。final可以修饰类、方法、变量。那么分别是什么作用呢?(1)修饰类:表示类不可被继承(2)修饰方法:表示方法不可被覆盖(3)修饰变量:表示变量一旦被赋值就不可以更改它的值。jav...转载 2019-03-18 22:28:51 · 158 阅读 · 0 评论 -
计算图片的大小
/*** 获取本地图片的字节数* @param imgPath* @return*/public static String pathSize(String imgPath) { File file = new File(imgPath); FileInputStream fis; int fileLen = 0; ...转载 2019-01-10 23:18:41 · 2255 阅读 · 0 评论 -
Java8排序stream.sorted()
使用Java8排序stream.sorted()http://www.concretepage.com/java/jdk-8/java-8-stream-sorted-example国外对Java8一系列总结的不错, 翻译过来给大家共享这篇文章将会讲解Java 8 Stream sorted()示例, 我们能够以自然序或着用Comparator 接口定义的排序规则来排序一个流。Comp...转载 2019-01-05 17:23:59 · 77307 阅读 · 0 评论 -
Gson使用
Gson使用gson类型转换gson类型转换Gson提供了fromJson()方法来实现从Json相关对象到Java实体的方法。在日常应用中,我们一般都会碰到两种情况,转成单一实体对象和转换成对象列表或者其他结构。第一种:提供两个参数,分别是json字符串以及需要转换对象的类型。比如json字符串为:[{“name”:”name0”,”age”:0}]Person person =...原创 2018-12-31 19:26:38 · 125 阅读 · 0 评论 -
深入理解Java虚拟机一
虚拟机栈与本地方法栈溢出Java虚拟机规范中描述了两种异常:1 如果线程请求的栈深度大于虚拟机所允许的最大深度,将抛出StackOverflowError异常。2如果虚拟机在扩展栈时无法申请到足够的内存空间,则抛出OutOfMemorryError异常...原创 2018-11-26 09:47:02 · 118 阅读 · 0 评论 -
java8新特性,可以用简洁高效的代码来实现一些数据处理。
利用java8新特性,可以用简洁高效的代码来实现一些数据处理。定义1个Apple对象:public class Apple { private Integer id; private String name; private BigDecimal money; private Integer num; public Apple(Integer id, S...转载 2018-11-13 22:45:43 · 496 阅读 · 0 评论 -
mybatis绑定错误
报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)一般的原因是Mapper interface和xml文件的定义对应不上,需要检查包名,namespace,函数名称等能否对应上,需要比较细致的对比,我经常就是写错了一两个字母搞的很长时间找不到错误按以下步骤一一执行:1:...原创 2018-06-19 23:57:01 · 310 阅读 · 0 评论 -
Java类加载机制
http://www.importnew.com/25295.html加载 加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(动态代理),也可以由其它文件生成(比如将JS...原创 2018-04-17 18:01:16 · 175 阅读 · 0 评论 -
如何正确地停止一个线程?
如何正确地停止一个线程? 停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作。停止一个线程可以用Thread.stop()方法,但最好不要用它。虽然它确实可以停止一个正在运行的线程,但是这个方法是不安全的,而且是已被废弃的方法。 在java中有以下3种方法可以终止正在运行的线程:使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 使用stop方法强...转载 2018-04-11 08:47:24 · 151 阅读 · 0 评论 -
面经汇总
阿里 https://zhuanlan.zhihu.com/p/33273041 https://www.itcodemonkey.com/article/2356.html http://shanghai.ujiuye.com/msjq/1719.html http://www.cnblogs.com/binyue/p/4015884.htmlhttps://zhuanlan.zh...原创 2018-04-08 22:20:40 · 739 阅读 · 0 评论 -
Java 8的另一个新特性——Stream API
Java 8的另一个新特性——Stream API本篇文章继续介绍Java 8的另一个新特性——Stream API。新增的Stream API与InputStream和OutputStream是完全不同的概念,Stream API是对Java中集合操作的增强,可以利用它进行各种过滤、排序、分组、聚合等操作。Stream API配合Lambda表达式可以加大的提高代码可读性和编码效率,Stre...转载 2018-04-14 12:07:06 · 153 阅读 · 0 评论 -
Java8 新特性
Java8 新特性1 Lambda表达式2 stream 流式数据处理3 新的Optional类4 新的日期和时间API2014年3月发布的Java 8,有可能是Java版本更新中变化最大的一次。新的Java 8为开发者带来了许多重量级的新特性,包括Lambda表达式,流式数据处理,新的Optional类,新的日期和时间API等。这些新特性给Java开发者带来了...转载 2018-04-14 12:01:42 · 183 阅读 · 0 评论 -
core java (三)
第12章 流与文件[17]1.保存在文件中的信息,或者从一个网络连接中获取的信息,其处理方式在本质上是完全一样的。可以从中读出一系列字节的对象称为输入流,能向其中写入一系列字节的对象称为输出流。这两种对象分别用抽象类InputStream和OutputStream来实现。对于以Unicode格式来保存的信息来说,用以字节为基础的流来处理不是很方便,因此,专门处理Unicode的类都从抽象类Re...原创 2018-04-01 16:44:06 · 105 阅读 · 0 评论 -
core java (二)
异常处理1.一个异常对象总是Throwable子类的实例。Throwable的子类演变成两个分支:Error和Exception。Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情况,应用程序不应该抛出这种类型的对象。Exception自身也演变成两个分支:一个是RuntimeException的子类,以及不从它衍生的其他异常。由编程导致的错误会导致RuntimeExcepti...原创 2018-04-01 16:36:09 · 104 阅读 · 0 评论 -
Core Java(一)
第五章 继承1.子类无法直接访问其超类中的私有字段,要访问这些字段必须和其他方法一样使用公有接口。2.super不同于this,它不是一个对对象的引用(不能把super赋给另一个对象变量),而是指示编译器调用超类方法的专用关键字。3.一个对象变量可以指向多种实际类型的现象被称为“多态”。而在运行时自动选择正确的方法进行调用的现象称为“动态绑定”。动态绑定有一个非常重要的特性:它使程序无...原创 2018-04-01 15:12:38 · 117 阅读 · 0 评论