java
文章平均质量分 75
水的精神
一件事,要么不做,要么做到极致。
展开
-
java内存模型 JMM详解
什么是JMM模型JMM是一种抽象的概念,并不真实存在,是一组规范或者规则;关注的是多个线程对共享内存空间和线程私有工作空间的访问方式,围栏并发的原子性、有序性、可见性来展开的,想要了解JAVA的并发编程,就应该理解JMM。 JMM通过定义了对变量(包括实例成员、静态成员和组成数组对象的元素)的访问方式,在程序运行时,运行程序的是实体是线程,每个线程创建时候,虚拟机都会为每个线程分配一定的内存空间,每个线程的内存空间用来存储线程私有的数据。但是JMM中规定数据都是存储在共享的主内存空间,而且每个线.原创 2021-04-10 08:34:02 · 1145 阅读 · 1 评论 -
聊聊JDK JVM垃圾回收器
JVM是面试的重灾区,同样垃圾回收期也是重中之重。不过我们学习不是为了应付面试,而是处在这个行业中,应该去了解一下。聊聊JVM垃圾回收器。来先看看都有哪些垃圾回收器 垃圾回收器,可以进行分类,分为多线程的和单线程的。垃圾回收器有以下几个。1.新生代Serial (第一代) PraNew (第二代) Parallel Scavenge (第三代) G1收集器(第四代)2.老年代Serial Old (第一代) Parallel Old (第二代) CM...原创 2021-03-15 00:58:45 · 378 阅读 · 0 评论 -
JDK HashMap几个有意思的问题
##HashMap的hash算法hash源码如下做了什么?获取hash值 hash值无符号右移 然后把前两步的结果做亦或运算 为啥这么做?经过上边的操作,右移和亦或运算。得到的hash值二进制的高十六位和低十六位将都保留hash值的数字特征。 另外,也和hash寻址有关,按照正常的逻辑,我们想要把hash值对数组长度取模,然后当做数字下标。而源码进行了优化,通过 (n-1)&hash 值得到下标,其实一样的效果,这不过这样的效果更好一点 。 再根据上边的...原创 2021-03-02 00:43:07 · 158 阅读 · 1 评论 -
java如何才能提供HTTPS服务
正常情况下,我们写的服务是http的。但是如何才能让我们的服务提供https服务?跟着我这篇文章,简单三步就可以让你的服务从http变成https服务!先讲怎么做,最后讲原理##第一步,生成证书找到我们安装JDK的bin目录在bin目录下,输入cmd按回车然后看到,下边的命令行工具,输入以下内容,然后按回车,就让输入密钥库的口令,也就是设置一个密码。输入以后按回车,然后再确认输入再按回车。然后让输入名字单位之类的,可以直接回车,一路回车就生成成功...原创 2020-11-23 20:11:18 · 5438 阅读 · 5 评论 -
java 钩子程序,在kill 的时候程序平滑退出
需求:想要在程序退出的时候,能够进行一些文件的清理,能够进行一些资源的释放,一些运行时的数据的保存。还有一个需求是在退出的时候,需要将阻塞队列里边的数据,处理完再退出。 说明:springboot项目 关闭程序的时候,只能使用kill pid的方式终止程序,不能使用kill -9 pid的方式。因为kill -9的方式,会直接退出。这个这里不过多的赘述了。# #解决方案 在application启动类里边添加如下...原创 2020-10-14 16:29:06 · 1178 阅读 · 0 评论 -
spring 的相关的事务失效的问题总结
这一个问题,真的是很有意思。之前不了解的时候觉得会用就行了。但是真的不知道里边这么多坑。不过这些坑都真的很有意思。它推着你去了解底层。推着你看源码,了解实现原理。 也是因为我在最近的开发中遇到了一些问题,自己进行排查,然后谷歌了很多很多的文章。这篇文章算是一个总结吧。希望可以做到的是,关于事务失效的问题看这一篇文章就够了。 尽可能的做到全一点,篇幅可能会大一点。这里为了省事,一些...原创 2020-04-03 13:32:29 · 379 阅读 · 0 评论 -
以前文章总结一下事务的原理
今晚学习了网易微专业的公开课,讲的是事务的相关的问题。这里写一篇文章记录一下。# #先看一下一个简单版的spring的事务原理全貌图 对于事务问题,之前都是一知半解。 之前别人一提到事务,我就想到了ACID。我知道开始事务的注解,知道想要使用注解的时候,就在service层类上添加一个注解@Transactional。我以为这样我就知道事务了。但是我不知道我...原创 2020-04-03 00:03:52 · 235 阅读 · 0 评论 -
JDK 1.8 HashMap 扩容源码详解
作为开发人员,千万不能停留在实现功能上,一定要提升到性能方面上。这需要我们不断的实践,学习源码,根据底层实现原理,来做出最好的操作。 就HashMap而言,一定是我们常用的集合,它有着查询速度是O(1)的特点,特就是快速获取键值对结果。 但是如果不去读源码,就不会知道它的默认的大小是capcity 16,负载因子是 0.75 ,在hashmap中存放超过caticy *...原创 2020-03-05 10:48:03 · 810 阅读 · 2 评论 -
阿里 athas全链路追踪工具学习
最直接看官方文档吧:https://alibaba.github.io/arthas/quick-start.html原创 2020-03-04 11:19:21 · 3844 阅读 · 1 评论 -
一篇文章介绍 符号运算的妙用
以后把看到的觉得有用的符号运算记录下来。符号运算效率会更高一点,虽然甚微,但是还是有的。我记录的都是实用的,要是用上自己都看不懂,就有点搬石头砸自己的脚了。# # 判断int类型和 long类型 是奇数还是偶数 用符号 & ,这个符号是与的意思 首先在第一个问题上说为什么符号运算要比算术运算效率更高,因为首先计算机底层是二进制,就是非零就是一,算...原创 2020-03-03 08:44:14 · 390 阅读 · 0 评论 -
计算机专业,大学不知道该干什么怎么办
解惑:我是计算机专业的,我曾一度怀疑自己,什么时候自己能写出来一个项目。我学的东西什么时候能转化成生产力。现在看来,这一切都不重要,疑惑也是没必要的,有本事先过笔试面试再说。别扯什么架构,你会什么什么技术,没用。因为没有机会给你展示。 我来回答这个问题:我保证这在某个时候,你会觉得非常有用。1.去刷算法题,开阔自己的解题思路。我推荐读左程云的算法面试指南。不要问为什么要读这...原创 2019-11-29 00:23:36 · 725 阅读 · 3 评论 -
代理模式
初次听到这么名字,觉得高大上。熟悉又陌生,熟悉就熟悉在很多框架都用到了代理模。陌生陌生在自己在coding的过程中没有写过代理模式。# #一起学学习一下代理模式https://juejin.im/post/5c1ca8df6fb9a049b347f55c 这篇文章挺好的,让我明白了静态代理,动态代理,了解了动态代理的真正的过程。##学习笔记代理...原创 2019-11-17 15:10:45 · 167 阅读 · 0 评论 -
带着疑问学习 static
做开发也这么长时间了,看到一个题,static都能修饰什么?有点蒙了,竟然要想一想,感情还是我理解的不够深入。一起来寻找答案把! 另外思考一个问题,static修饰的回收不回收。 static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独...原创 2019-11-09 11:04:39 · 169 阅读 · 0 评论 -
Lambda入门教程
分享一篇Lambda入门教程:https://objcoding.com/2019/03/04/lambda/写的非常详细。原创 2019-10-20 10:20:03 · 1090 阅读 · 0 评论 -
java 中实际用到的获取当前时间,格式化
在实际开发中,有些操作是需要获取当前时间的,获取时间,并且以一定的格式存到数据库中。# #获取时间并且格式化方案一:SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date now = new Date();System.out.println("当前时间:" + sdf.format(n...原创 2019-09-06 14:37:40 · 607 阅读 · 0 评论 -
一篇很好的ajax的入门文章,写的非常好
转发:https://juejin.im/post/5a82f6e86fb9a0633f0e1f2a原创 2019-08-08 19:52:35 · 198 阅读 · 0 评论 -
不扯面试,单纯的说说 java 的知识点
网上有很多类似于面试宝典的文章,打开都是看到罗列一通面试问题。掌握细节不是为了面试把,而是更加有利于我们的开发才对把。我觉得还是不要做南辕北辙的事为好,学会一个知识点,不是为了可以面试中回答出来,而是对我们的编程真的有帮助。这篇文章会持久更新,我想把我学到的知识点都串起来,另外,一些知识点,我会引用别人的文章。放心,我不会随便搜一些文章,说这是最佳答案的。 第...原创 2019-08-04 17:27:13 · 182 阅读 · 0 评论 -
Lambda 表达式整理
本文转载自:https://dwz.cn/5H0shOuC 作者 :吴仙杰由JavaGuid整理1. 引言在 Java 8 以前,若我们想要把某些功能传递给某些方法,总要去写匿名类。以前注册事件监听器的写法与下面的示例代码就很像:manager.addScheduleListener(newScheduleListener(){@Overridepu...转载 2019-06-27 19:22:13 · 277 阅读 · 0 评论 -
谈谈synchronized关键字
我觉得这个关键字是一个很关键的关键字。但是刚开始学习并没有经常用到。为啥呢?业务场景所限,单机单线程下真的很少用到。那有什么用呢? 因为它是解决多线程同步的一个很关键的成员。 里边的大部分内容来自:作者:SnailClimb先说对synchronized的理解 synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保...原创 2019-06-21 19:39:27 · 821 阅读 · 0 评论 -
内存模型 类的加载机制 对象创建过程
图解JVM的类加载机制(详细版)https://www.cnblogs.com/chenyangyao/p/5245669.htmlJVM内存模型、指令重排、内存屏障概念解析https://www.cnblogs.com/chenyangyao/p/5269622.html图解JAVA对象的创建过程https://www.cnblogs.com/chenyan...原创 2019-06-21 18:03:45 · 196 阅读 · 0 评论 -
java各类面试题链接
Java面试题全集(上) 各大公司的Java后端开发面试题总结面试心得与总结—BAT、网易、蘑菇街关于Java面试,你应该准备这些知识点原创 2018-11-13 20:56:36 · 241 阅读 · 0 评论 -
再理解面向对象
写在前边:距离最开始的理面向对象,时隔两年。中间不断地对面向对象的理解加深,这次读到一本好书《码出高效:java开发手册》。再记一点笔记。OOP(面向对象编程) 面向对象编程推动了高级语言的快速发展和工业化进程,OOP 的 封装,继承,多态,抽象理念是软件规模化成为可能,降低了开发成本,维护成本,复用成本。使得大型的开发变得像搭积木一样可控,方便。面向对象编程主要区别于面向过程编...原创 2019-04-27 12:09:27 · 176 阅读 · 0 评论 -
Java语法糖3:泛型
声明:本文转自(五月的仓颉)致敬经典泛型初探在泛型(Generic type或Generics)出现之前,是这么写代码的:public static void main(String[] args){ List list = new ArrayList(); list.add("123"); list.add("456"); Syste...转载 2019-01-09 22:53:21 · 183 阅读 · 0 评论 -
Java语法糖1:可变长度参数以及foreach循环原理
声明:本文转载自(五月的仓颉)博主是一个很严谨的人,向他学习与致敬。语法糖接下来几篇文章要开启一个Java语法糖系列,所以首先讲讲什么是语法糖。语法糖是一种几乎每种语言或多或少都提供过的一些方便程序员开发代码的语法,它只是编译器实现的一些小把戏罢了,编译期间以特定的字节码或者特定的方式对这些语法做一些处理,开发者就可以直接方便地使用了。这些语法糖虽然不会提供实质性的功能改进,但是它...转载 2019-01-09 22:11:06 · 172 阅读 · 0 评论 -
反射
声明:本文转载自(五月的仓颉)反射的作用Java反射描述的是,在运行状态中:1、对于任意一个类,都能够知道这个类的所有属性和方法2、对于任意一个类,都能够调用它的任意一个属性和方法之所以强调属性、方法,是因为属性、方法是开发者对于一个类最关注的两个部分。实际上通过反射,不仅仅可以获知类的属性、方法,还可以获知类的父类、接口、包等信息至于反射的原理,不难,Java类加载机制一...转载 2019-01-09 21:54:26 · 182 阅读 · 0 评论 -
java中有必要了解和掌握的内容
一、数据结构与算法基础说一下几种常见的排序算法和分别的复杂度。用Java写一个冒泡排序算法描述一下链式存储结构。如何遍历一棵二叉树?倒排一个LinkedList。用Java写一个递归遍历目录下面的所有文件。二、Java基础接口与抽象类的区别?Java中的异常有哪几类?分别怎么使用?常用的集合类有哪些?比如List如何排序?ArrayList和Linked...转载 2018-11-13 19:27:28 · 184 阅读 · 0 评论 -
数十年从事java工作的经验分享
今天有幸看到一篇好的文章,很有学习的价值,我来分享一下一位10年的Java工作经验的架构师聊的Java和工作经验从事近十年的JavaEE应用开发工作,现任阿里巴巴公司系统架构师。对分布式服务架构与大数据技术有深入研究,具有丰富的B / S架构开发经验与项目实战经验,擅长敏捷开发模式。国内开源软件推动者之一,Smart Framework开源框架创始人。热爱技术交流,乐于分享自己...转载 2018-11-13 19:19:28 · 4996 阅读 · 2 评论 -
java入门,到工程师,学习过程中的重点掌握的内容(面试角度剖析)
(此内容是我转载别人的,自己搜索到的,觉得很有学习价值,就保存了)2017年09月21日 09:57:09 (原创作者:)LiMing_0820(原创访问路径)https://blog.csdn.net/liming_0820/article/details/78048418重点知识 由于我面试的JAVA开发工程师,针对于JAVA,需要理解的重点内容有: ...转载 2018-09-29 10:02:26 · 280 阅读 · 0 评论 -
30分钟入门正则表达式
转载与推荐(我看了很多个帖子,感觉这个写的通俗易懂一点)不管什么语言,只需要清楚正则表达式的语法结构就好。我重点了解的java,Java虽然专门提供了两个类来使用正则表达,分别是java.util.regex下的Pattern类和Matcher类,实际上,我们只需要使用String提供的matchers(String regex),String[] split(String regex),S...转载 2019-03-07 16:58:12 · 365 阅读 · 0 评论 -
正则表达式
什么时候用正则表达式?凡是涉及到字符串匹配,以特定的一种规则分割字符串,替换字符串等问题,最好的解决方案,就是使用正则表达式,使用正则表达式是最方便的解决方案。什么是 RegExp?RegExp 是正则表达式的缩写。当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。简单的模式可以是一个单独的字符。更复杂的模式包括了更多的字符,并可用于解析、...原创 2019-01-06 17:00:43 · 197 阅读 · 0 评论 -
对于正则表达式的妙用
转载:好多关于正则表达式的都是介绍语法的,这个告诉你正则表达式有什么用处。对于正则表达式,在很多人脑海中就是一堆完全不知所云的特殊符号,看了第一眼,就不想再看第二眼,学习难度可想而知,其实这种看法完全是因为多余正则表达式没有过多的接触,如果花时间去了解正则表达式,你会发现,其实他没有那么难学,也没有那么难理解,唯一难的就是组合起来之后,可读性比较差,当然本文并不是旨在讲解如何入门正则表达式...原创 2019-05-07 11:21:47 · 1355 阅读 · 0 评论 -
这些java基础你知道么
写在前边:本文是阅读《码出高效》第二章面向对象,整理的笔记。如有错误,请留言。目录类:类的定义接口与抽象类内部类访问权限控制this和super类关系序列化方法方法签名参数构造方法类内方法getter和setter同步和异步覆写重载数据类型基本数据类型 8+1包装类型JIT是啥:编译...原创 2019-05-10 21:09:37 · 248 阅读 · 0 评论 -
什么是UML类图
之前一直决定这个图看起来挺烦人的,后来遇到这篇文章,我觉得这个讲的很清楚。就转发一下、看懂UML类图和时序图这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系; 能看懂类图中各个类之间的线条、箭头代表什么意思后,也就足够应对 日常的工作和交流; 同时,我们应该能将类图所表达的含义和最终的代码对应起来; 有了这些知识,看后面章节的设计模式结构图就没有什么问题了;本章所...转载 2019-05-26 09:05:06 · 450 阅读 · 0 评论 -
面试所有线程问题小总结
为什么要使用多线程呢? 好比是马拉车,你明明有多匹马,但是你因为不会让多匹马拉一辆车,而天天只玩一匹马拉车。是多匹马并驾一起拉车好,还是一匹马好呢? 之前条件艰苦,没有那么多马(单核CPU),现在不一样了,随着计算机硬件发展,处理器都是多核的了。目录第一个问题,实现多线程的方式有几种?分别是?第二个问题,既然有多种实现方式,怎么选择?有什么区别?第三个问题,T...原创 2019-06-08 21:58:23 · 330 阅读 · 0 评论 -
聊聊反射
三要素:是什么,有什么好处,怎么用。反射是什么,做了什么事 在 Java 中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象方法的功能成为 Java 语言的反射机制。有什么好处 也就是为什么要用反射呢? 其实反射有自己的应用场景,在 Java 程序中...原创 2019-06-20 09:18:44 · 309 阅读 · 0 评论 -
锁机制:synchronized、Lock、Condition
原文地址:https://blog.csdn.net/vking_wang/article/details/99520631、synchronized把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有 原子性(atomicity)和 可见性(visibility)。1.1 原子性原子性意味着个时刻,只有一个线程能够执行一段代码,这段代码通过一个mon...转载 2019-06-20 10:42:13 · 268 阅读 · 0 评论 -
NIO
三要素:是什么;有什么好处;怎么做概要:NIO:new IO。自然是区别于IO的。两点区别:第一点区别是NIO可以直接操作物理内存;第二点是非阻塞式网络通信。是什么? Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,...原创 2019-06-10 21:57:35 · 279 阅读 · 0 评论 -
java面经
动机:最近换了个公司,从三月底开始面,面到四月底,面了有快二十家公司。我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是自己之前没遇到过的,或者是哪个知识点今天又问了等等。四月中旬的时候,我就在构思要写一篇面经,主要是想着可能对那些跟我相同处境的人有点帮助,再者就是稍微记录下这为期一个月的面试过程。本文地址:http://blog...转载 2018-11-13 20:53:25 · 307 阅读 · 0 评论