自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

酸奶灬的博客

好记性不如烂笔头!

  • 博客(28)
  • 收藏
  • 关注

原创 JUC学习之读写锁

读写锁:(并发情况下比独占锁效率要高,适用于读操作频率高,写频率低的场景) - 写写、读写(互斥) - 读读(不互斥)public class Test { public static void main(String[] args) { ReadWriteLockDemo demo = new ReadWriteLockDemo(); // 单...

2018-07-23 15:55:03 346

原创 JUC学习之线程通信小Demo

按照顺序打印A、B、C,共打印五轮:public class Test { public static void main(String[] args) { AlternatePrinting printing = new AlternatePrinting(); new Thread(() -> { for (int i...

2018-07-23 15:29:34 234

原创 JUC学习之虚假唤醒

public class Test { public static void main(String[] args) throws ExecutionException, InterruptedException { Seller seller = new Seller(); Productor productor = new Productor(sell...

2018-07-23 14:45:28 271

原创 Java线程创建方式

第一种、自定义类继承Thread,重写run()方法public class Test { public static void main(String[] args) { new Demo().start(); }}class Demo extends Thread { @Override public void run() { ...

2018-07-20 16:50:14 169

原创 JUC学习之同步锁和闭锁

闭锁:在要完成某些运算时,只有其它线程的运算全部运行完毕,当前运算才继续下去。例如:计算线程的执行时间public class Test { public static void main(String[] args) { // 闭锁计数器和其它线程数一样 final CountDownLatch latch = new CountDownLatc...

2018-07-20 14:36:25 372

原创 JUC学习之Volatile和原子性问题

Volatile 关键字当多个线程操作共享数据时,可保存线程内存之间数据可见,还可防止指令重排序。相对于synchronized 是一种更为轻量级的同步策略。public class TestVolatile { public static void main(String[] args) { ThreadDemo td = new ThreadDemo(); ...

2018-07-20 10:28:33 356

原创 JVM学习之引用类型

Java引入类型强引用:当内存不足的时候,JVM宁可出现OutOfMemoryError,也不会将内存回收。强引用是JVM默认的支持模式,即:在引用期间,如果该堆内存被栈内存所指向,那么该对象无法被GC回收,如果出现内存空间不足,就会抛出 “OutOfMemoryError”。public static void main(String[] args) { Object o ...

2018-07-14 16:13:03 165

原创 JVM学习之G1回收器

G1 收集器不区分年轻代或老年代,所有的堆内存就是一块。但是会划分出不同的子区域。虽然在G1收集器里面将整个内存区域都混合在了一起,但是其本身在小范围内依然进行了年轻代和老年代的区分,就是说依然会采用不同的GC策略来处理不同的内存域。 G1 回收流程:年轻代的处理流程 1、先对内存空间进行子区域划分。2、对子区域中需要清理(包括一些满的,未满的子区域)的年轻代内存空...

2018-07-13 22:36:24 973

原创 JVM学习之GC流程和GC策略

新生代可用GC策略串行GC并行回收GCSTW:在年轻代使用并行GC处理的时候,会产生一个“STW”暂停,在进行对象 回收的时候所有其他线程将被暂时性挂起。并行GC老年代可用GC策略串行GC并行GC并发GCGC策略参数调整:观察GC策略一、默认策略java String str = "showGCStrategy"; while (tr...

2018-07-12 23:28:29 8308 1

原创 JVM学习之内存模型

JVM学习之内存管理一、运行时数据区分为以下几块空间:1、堆(Heap):保存所有引用类型的真实数据2、栈(VM Stack):基本类型、运算、指向堆内存的指针3、方法区(Method Data Area):所有定义的方法的信息都保存在方法区之中,此区为共享区。4、程序计数器:是一个非常小的内存空间。5、本地方法栈:每次执行递归方法处理的时候实际上都会将上一个方法入栈二、J...

2018-07-12 18:18:53 156

原创 JVM学习之Java类加载

Java类加载我们知道,java源代码(*.java)不能直接执行,我们需要通过java编译器javac.exe将源代码编译为java字解码文件(*.class),然后再通过java.exe在JVM中解释此程序。一、Java程序执行流程 二、类加载器(ClassLoader) 类加载器有以下几种类型:1、启动类加载器(Bootstrap ClassLoader):该Cla...

2018-07-11 16:25:26 167

原创 JVM学习之对象访问模式

Java对象访问模式一、引用数据类型Java的引用数据类型是最为重要的数据处理模型,而整个的引用数据类型处理数据的时候会牵扯到:堆内存、栈内存、方法区。以一个最简单的程序为主:实例化一个Object类对象Object obj = new Object();“Object obj”:描述的是在栈内存之中,保存的有堆内存的引用。严格来说,这个数据会保存在本地变量表中。 表中会描...

2018-07-11 13:59:53 164

原创 SprinMVC 学习小记

一、学习SpringMVC运行原理之前先学习一下四大组件DispatcherServlet:前端控制器。接收请求,响应结果,相当于转发器,中央处理器。有了dispatcherServlet减少了其它组件之间的耦合度。用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存...

2018-07-10 17:47:31 182

原创 Struts 运行流程以及值栈小记

一、Struts运行流程图先了解一下: 引用网上的总结: 一个请求在Struts2框架中的处理大概分为以下几个步骤: 1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如...

2018-07-08 22:06:45 144

原创 Spring DI源码跟踪小记

1、开始public Object getBean(String name) throws BeansException { return this.doGetBean(name, (Class)null, (Object[])null, false);}protected <T> T doGetBean(String name, Class<T&gt...

2018-07-06 17:20:49 276

原创 Spring IOC初始化源码跟踪小记

1、开始public ClassPathXmlApplicationContext(String configLocation) throws BeansException { this(new String[]{configLocation}, true, (ApplicationContext)null);}public ClassPathXmlApplicati...

2018-07-05 17:00:11 179

原创 SpringBoot 热部署

使用SpringBoot devtools 热部署 基于Intellij IDEA1、pom.xml 引入<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId&g...

2018-06-12 23:33:46 123

原创 Centos 升级内核

Centos 升级内核1、查询当前内核[root@localhost ~]# uname -r3.10.0-862.el7.x86_62、启用ELRepo 仓库[root@localhost ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org[root@localhost ~]# rpm -Uvh h...

2018-06-12 21:40:38 1744

原创 SpringBoot 使用外部Tomcat方法及启动原理

SpringBoot 使用外部Tomcat方法及启动原理 基于 SpringBoot 2.x方法一、必须是一个war项目,利用IDEA可以直接创建,或者是修改pom.xml文件<packaging>war</packaging>二、将内置Tomcat的作用范围修改成provideddependency> <gr...

2018-05-21 16:43:28 13259

原创 java如何获取当前时间到第二天凌晨的秒数

java如何获取当前时间到第二天凌晨的秒数 原因:前两天写了一个接口,redis缓存有效时间设置到第二天的凌晨中遇到一个坑,这里记录一下。坑在这里 public Long getSecondsNextEarlyMorning() { Calendar cal = Calendar.getInstance(); cal.add(Calend...

2018-03-07 18:40:41 14960 4

原创 本地配置Https环境

配置Https开发环境工具:JDK + Tomcat + IntelliJ IDEAhttp和https的区别这里引用两篇博客,可以更清晰的认识https,谢谢两位博主!http和https的区别https相关原理生成证书命令行进入JDK下面的bin目录命令行键入keytool -genkey -v -alias tomcat -keyalg RSA -k

2018-02-06 14:06:51 4939 1

原创 MySQL优化策略小记

MySQL优化表的优化与列类型选择一、表的优化定长与变长分离 如id int, 占4个字节,char(4)占4个字符长度, 即:每一个单元值占的字节是固定的。核心且常用的字段,宜建成定长,放在一张表中。 而varchar、text、blob等。这种变长的字段,适合单放一张表中,用主键与核心表关联起来。常用字段和不常用字段要分离。 需要结合网站具体业务来分析字段的查询场景,查询频度低的字段

2017-11-09 12:00:24 305

原创 本地安装linux服务器,并且连接到远程服务器

本地安装linux服务器,并且连接到远程服务器说明:这里使用的相关工具如下(自行下载)Centos7.XVMwareXShell这里VMware安装不在描述,个位小伙伴自行安装。其他有什么不对的地方,欢迎指正!VMware安装Linux服务器打开VMware, 点击创建新的虚拟机 选择自定义(高级),点击下一步 直接下一步 选择稍后安装操作系统,然后下一步 选择好自己的linux发行版本,

2017-10-16 16:44:45 3881 1

原创 java中如何对比时间的前后

java中如何对比时间的前后 开发中日期使用很频繁,免不了要判断时间的前后顺序,java中该如何做呢?这部分没什么好讲的,直接上Demopackage com.huoq.admin.product.action;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayLi

2017-08-25 14:28:02 5495 2

原创 Spring中静态方法中使用@Resource注解的变量

Spring框架中使用静态注入 开发中,有些时候可能会工具类的静态方法,而这个静态方法中又使用到了@Resource注解后的变量。如果要直接使用 Utils.staticMethod(),项目会报异常;如果不直接使用,还要先 new Utils().staticMethod() 吧啦吧啦一大堆!对于一个强迫症码农不能忍! 那么,问题来了…例如下面代码:/** * @Description 业

2017-08-25 12:05:02 9413 2

原创 springboot中通过aop的形式获取方法执行时间

前言老大让本人写一个方法,获取controller中的每个方法的执行时间,大于一定的时间抓出来,后期做优化。网上找了一些方法,特此记录一下。注意:这里需要各位同学对springboot有一定的了解。话不多说,直接上代码:aspect类:package com.fengye.aspect;import com.fengye.common.enums.ResultEnum;import com.f

2017-08-17 16:43:14 5382 1

原创 Git+IDEA

1、Git初始化git初始化 注:git的安装在此不作演示,各位同学自行学习。 安装成功之后桌面点击右键,选择Git Bash Here,键入git,出现以下内容: 则说明安装成功。 git注册 键入:git config –global user.name “你的用户名” 键入:git config –global user.email “你的github登录邮箱”配置Win

2017-08-14 18:03:51 386

原创 java获取本地IP和服务器IP

java获取IP地址最近公司在做日志报警服务,需要在异常信息上添加IP地址,用于快速定位异常位置。总结以下知识点:获取本地IP地址String address = InetAddress.getLocalHost().getHostAddress().toString(); 这种方法能不能在Linux服务器上直接获取IP有待验证获取服务器IP地址/** * 根据网络接口获取IP地

2017-07-24 10:55:34 25360 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除