![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
Twilight.c
这个作者很懒,什么都没留下…
展开
-
关于Java的IO读写,缓冲区是如何提高读写效率的?
BufferedxxxStream为什么会比FilexxxStream效率高比较浅显的解释就是使用了缓冲区。更深层的解释如下。调用I\O操作的时候,实际上还是一个一个的读或者写,关键就在,CPU只有一个,不论是几个核心。CPU在系统调用时,会不会还要参与主要操作?参与多次就会花更多的时间。系统调用时,若不用缓冲,CPU会酌情考虑使用 中断。此时CPU是主动地,每个周期中都要花去一部分去询问I\O设备是否读完数据,这段时间CPU不能做任何其他的事情(至少负责执行这段模块的核不能)。所以,调用一次读了一转载 2020-07-18 16:53:16 · 855 阅读 · 0 评论 -
Java循环中标签作用
一直都不知道Java的for循环还有这么个奇妙的地方换句话说,不需要使用flag灯标记,使用标签可以方便的控制从一个多层嵌套循环中退出。以下内容转自https://www.iteye.com/blog/lihengzkj-1090034outer1: for(int i =0;i<4;i++){ System.out.println("begin to itrate. "+i); for(int j =0;j<2;j++){ if(i=转载 2020-07-15 16:19:10 · 207 阅读 · 0 评论 -
ReentrantLock精确唤醒
import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class Test { // A:1、B:2、C:3 private int number = ...原创 2020-02-06 21:03:55 · 325 阅读 · 0 评论 -
Synchronized和Lock的区别
1、原始构成1)synchronized是关键字属于JVM层面,底层有两个关键方法monitorenter和monitorexit。底层是通过monitor对象来完成,其实wait/notify等方法也依赖于monitor对象只有在同步块或者方法中才能调wait/notify等方法。2)Lock是具体类(JUC里面的工具类)是api层面的锁。2、使用方法1)synchronized不需要...原创 2020-02-06 20:51:38 · 183 阅读 · 0 评论 -
CAS个人理解
以下主要以AtomicInteger类中的方法描述CAS。1、CAS是什么1)CAS即比较并交换,功能就是判断内存某个位置是否为预期值,如果是则更改为新值,这个过程是原子的。简单说CAS有3个操作数,内存值V,旧的预期值A,需要修改的更新值B,当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。2)AtomicInteger里面的compareAndSet,getAndIn...原创 2020-02-06 09:50:59 · 309 阅读 · 0 评论 -
MybatisPlus的乐观锁
主要适用场景:当要更新一条记录的时候,希望这条记录没有被别人更新,也就是说实现线程安全的数据更新1、乐观锁实现方式:1)取出记录时,获取当前version:假设取出的version=1SELECT id,name,age,email,create_time,update_time,version FROM user WHERE id=12)更新时,带上这个versionUPDATE...原创 2020-02-05 00:00:09 · 307 阅读 · 0 评论 -
POI简单使用和大文件写优化
一、 POI简介(Apache POI)1、什么是POIApache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。HSSF - 提供读写Microsoft Excel格式档案的功能。(.xls)XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。(.xlsx)HWPF ...原创 2020-02-03 18:53:12 · 1110 阅读 · 0 评论 -
Java序列化与反序列化
什么是序列化内容主要参考 https://blog.csdn.net/xlgen157387/article/details/79840134Java的序列化(Object serialization)机制,就是将对象编码成一个字节流(序列化serialization),以及从字节流编码中重新构建对象(反序列化deserialization)的过程。一旦将对象序列化后,一方面可以将其持久化到磁...原创 2018-12-01 15:27:30 · 326 阅读 · 0 评论 -
Eureka服务管理界面功能的一些完善
1.JDK和JRE有什么区别?JRE是java运行的环境,包含了java虚拟机,java基础类库。JDK是java开发工具包,JDK包含了JRE,还包含了编译java源码的编译器javac等。2.==和equals的区别是什么?双等号基本数据类型用进行比较的时候,比较的是值。引用数据类型进行比较的时候,比较的是内存中存放地址。equals默认情况下,比较的是地址值,重写该方法后比较...原创 2020-01-25 01:35:13 · 2138 阅读 · 0 评论 -
Springboot处理文件上传
Maven&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&gt;&lt;/dependenc原创 2019-02-09 23:46:53 · 1041 阅读 · 0 评论 -
Sigar的使用
Sigar可以获得系统的如下方面信息:引用来自 https://www.jianshu.com/p/c3d88dd617bf1.操作系统的信息,包括:dataModel、cpuEndian、name、version、arch、machine、description、patchLevel、vendor、vendorVersion、vendorName、vendorCodeName2.CPU信...原创 2018-12-06 15:57:29 · 2548 阅读 · 0 评论 -
SpringSecurity自定义异常处理
以下为SpringSecurity默认自带的异常处理机制 两个重要的异常类 1. AccessDeniedException 该异常实现了很多子类。子类都是涉及到权限校验问题的。 2. AuthenticationEntryPoint 同样该异常类也实现了很多子类。springSecurity把异常划分的很细。概括来说都是身份校验问题。自定异常处理类public class My...原创 2018-09-01 20:38:54 · 19497 阅读 · 18 评论 -
springboot项目的优雅关闭方式
本案例使用的是springboot2.0.4当把打包好的jar包发布到服务器,并通过java -jar运行,一般要把springboot项目关闭大多数都是先找到项目的pid,然后直接kill pid,不过这种方法在特殊需求场景下不太合适(不安全),同时也不优雅。下面通过actuator来让springboot项目关闭优雅化。 先导入maven依赖&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;原创 2018-08-25 20:06:00 · 15681 阅读 · 9 评论 -
Validator框架的使用
Validator一般用来验证前端页面传过来的数据 是否符合预期 下面是所需要的maven &lt;dependency&gt; &lt;groupId&gt;javax.validation&lt;/groupId&gt; &lt;artifactId&gt;validation-api&lt;/artifactId&原创 2020-09-15 18:58:05 · 6620 阅读 · 0 评论 -
JWT在前后端分离中的运用实例
JWT说明,参考博客 https://blog.csdn.net/csdn_blog_lcl/article/details/73485463下面就是运用实例基于SpringBootMaven配置&amp;amp;amp;amp;amp;lt;!-- https://mvnrepository.com/artifact/com.nimbusds/nimbus-jose-jwt --&amp;amp;amp;amp;amp;gt;&amp;amp原创 2018-08-15 16:04:56 · 7017 阅读 · 3 评论 -
SpringSecurity前后端分离下对登录认证的管理
&amp;amp;amp;amp;amp;nbsp; &amp;amp;amp;amp;amp;nbsp; &amp;amp;amp;amp;amp;nbsp; &amp;amp;amp;amp;amp;nbsp;本案例基于springboot2.0.4,只说对登录验证的管理,不涉及权限的管理。因为学习新东西一下子太多,很容易乱。(后面还有对登录验证管理的源码分析) &amp;amp;amp;amp;amp;nbsp; &am原创 2018-08-26 20:33:08 · 23365 阅读 · 24 评论 -
SpringSecurity登录验证步骤和源码浅析
该博客可能需要结合https://blog.csdn.net/XlxfyzsFdblj/article/details/8208344来看。 下面主要浅析spring security登录校验的过程和源码。 主要说说一些重要的filter &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp; &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;原创 2018-08-26 20:40:25 · 6262 阅读 · 4 评论 -
运用inotify实现springboot项目自动更新部署
把war包提交到tomcat下的webapps目录,tomcat就会自动帮你运行,当你上传新版本war到webapps时候。同样也会自动帮你更新,非常的方便。 虽然使用springboot就可以直接使用jar包的方式直接运行项目,免去了云服务器还需要额外安装tomcat等服务的麻烦。但是,当你把新版本的,jar项目上传到服务器原来.jar的位置并替换,会发现并没有自动帮我们重启项目,换句话说你还...原创 2018-08-27 11:40:24 · 2487 阅读 · 0 评论 -
SpringSecurity自定义权限校验和源码浅析
之前的SpringSecurity登录验证步骤和源码浅析已经完成了登录部门,接下来结合自定义权限校验。 在springSecurity中 自定义权限校验意思就是,用保存在数据库中的权限来设置url的请求权限。 先看看configure文件@SpringBootConfigurationpublic class WebSecurityConfiguration extends WebSe...原创 2018-08-31 21:49:11 · 3989 阅读 · 6 评论