自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (5)
  • 问答 (5)
  • 收藏
  • 关注

原创 MySQL的“ utf8 ”和“utf8mb4”

mysql中的“utf8”最大只支持3 个bytes,而真正的utf8编码(大家都使用的标准),最大支持4个bytes。正是由于mysql的utf8少一个byte,导致中文的一些特殊字符和emoji都无法正常的显示。mysql真正的utf8其实是utf8mb4,这是在5.5版本之后加入的。而目前的“utf8”其实是utf8mb3。mb就是 max bytes的意思。所以尽量不要使用...

2019-08-22 12:59:02 163

原创 synchronized

根据获取的锁的分类:获取对象锁和获取类锁获取对象锁的两种用法 1、同步代码块(synchronized(this),synchronized(类实例对象)),锁是小括号()中的实例对象。 2、同步非静态方法(synchronized method),锁是当前对象的实例对象。获取类锁的两种用法 1、同步代码块(synchronized(类.class...

2019-08-20 11:44:00 72

原创 如何实现处理线程的返回值

1、主线程等待法 实现起来比较简单,缺点是需要自己实现循环等待的逻辑,当需要等待的变量一多,代码便会显得异常的臃肿,无法做到精准的控制。public class MyRunnable implements Runnable { private String name; @Override public void run() { ...

2019-08-20 10:04:10 87

原创 Java中的强引用、软引用、弱引用虚引用

强引用 > 软引用 > 弱引用 > 虚引用1、强引用(Strong Reference) 最普遍的引用:Object obj = new Object() 当内存空间不足时,抛出OutOfMemoryError终止程序也不会回收强引用的对象 如果不使用这个对象,可以通过将对象设置为null来弱化引用,或者等它超出生命周期,使其被回收...

2019-08-19 19:16:27 79

原创 Object的finalize()方法的作用

Object的finalize()方法的作用 与C++的析构函数不同,析构函数调用确定,而它不确定的; 将未被引用的对象放置于F-Queue队列,并在稍后由虚拟机建立的低优先finalize线程去执行finalize()方法; 方法执行随时可能会被终止(优先级低) 给予对象最后一次重生的机会。注: finalize方法运行的不确定性较大,无法保证各对象...

2019-08-19 18:55:18 291

原创 常见的垃圾收集器

常见的垃圾收集器1、Serial收集器(-XX:+UseSerialGC,复制算法) 单线程收集,进行垃圾收集时,必须暂停所有工作线程 简单高效,Client模式下默认的年轻代收集器2、ParNew收集器(-XX:+UseParNewGC,复制算法) 多线程收集,其余的行为、特点和Serial收集器一样 单核执行效率不如Serial,在多核...

2019-08-19 18:35:15 79

原创 Stop-the-World和Safepoint

Stop-the-World JVM由于要执行GC而停止了应用程序的执行; 任何一种GC算法中都会发生,除了GC所在线程以外,所有线程都处于等待状态,直到GC任务完成; 多数GC优化通过减少Stop-the-World发生的时间来提升程序性能,从而使系统具有高吞吐、低停顿的特点。 Safepoint 分析过程中对象引用关系不会发生变化的点; ...

2019-08-19 18:10:02 135

原创 垃圾回收算法

垃圾回收算法:标记-清除算法(Mark and Sweep)、复制算法(Copying)、标记-整理算法(Compacting)、分代收集算法(Generational Collector) 1、标记-清除算法(Mark and Sweep)标记-清除算法(Mark and Sweep) 标记:从根集合进行扫描,对存活的对象进行标记 清除:对...

2019-08-19 17:36:21 107

原创 GC垃圾标记算法

GC垃圾回收算法-引用计数算法和可达性分析算法 1、引用计数算法判断对象的引用数量 通过判断对象的引用数量来决定对象是否可以被回收; 每个对象实例都有一个引用计数器,被引用则+1,完成引用则-1; 任何引用计数为0的对象实例可以被当作垃圾收集。优点:执行效率高,程序执行受影响较小。缺点:无发检测出循环引用的情况,导致内存泄露。...

2019-08-19 16:04:23 184

原创 MetaSpace相比PermGen的优势

jdk1.8之后,jvm移除了永久代,使用元空间。 MetaSpace相比PermGen的优势 字符串常量池存在永久代中,容易出现性能问题和内存溢出。 类和方法的信息大小难以确定,给永久代的大小指定带来困难。 永久代会为GC带来不必要的复杂性。 ...

2019-08-19 15:37:12 204

原创 不同JDK版本之间的intern()方法的区别-JDK6 VS JDK6+

今天看到一篇讲解不同版本intern()方法区别,截了一下图,分享一下。

2019-08-18 20:45:42 229

原创 元空间、堆、线程在内存中的联系

下面分析一下元空间、堆、线程在内存中的联系 以下面代码为例public class HelloWorld { private String name; public void sayHello() { System.out.println(name); } public void setName(String name) { th...

2019-08-18 20:41:04 571

原创 Java内存模型中堆和栈的区别

Java内存模型中堆和栈的区别 管理方式:栈自动释放,堆需要GC 空间大小:栈比堆小 碎片相关:栈产生的碎片远小于堆 分配方式:栈支持静态和动态分配,而堆仅支持动态分配 效率:栈的效率比堆高...

2019-08-18 20:30:12 199

原创 JVM三大性能调优参数

JVM三大性能调优参数 -Xms -Xmx -Xss的含义 java -Xms128m -Xmx128m -Xss256k -jar xxx.jar -Xss: 规定了每个线程虚拟机栈(堆栈)的大小,通常256k就足够了,此配置会影响此进程中并发线程数大小 -Xms: 堆的初始值,java中堆空间大小,一旦超出,就会扩容至-Xmx, ...

2019-08-18 20:23:22 737

原创 我对Java语言的理解

去年七月初通过校招进入了现在的公司,转眼已经过去一年多了,经过一年多的实战开发,重新整理一下自己对java的理解,希望能对正在面试以及即将入职工作的blogger有所帮助。1、平台无关性 Java源码首先被编译成字节码,再由不同的平台的JVM(Java Virtual Machine)进行解析,Java语言在不同的平台上运行时不需要进行重新编译,Java虚...

2019-08-18 16:58:40 587

原创 简单总结 Reactive Programming

Reactive Programming 作为观察者模式(Observer)的延伸,不同于传统的命令编程方式(Imperative Programming)同步拉取数据的方式,如迭代器(Iterator)。而是采用数据发布者同步或异步推送到数据流(Data Streams)的方案。当该数据流(Data Streams)订阅者监听到传播变化,立即作出相应。在实现层面上,Reacti...

2019-08-16 15:13:13 375

原创 IDEA实现序列化接口Serializable自动生成serialVersionUID

在Java中如果我们生成的对象要在网络中传输,就要序列化,实现接口: java.io.Serializable IDEA实现序列化接口Serializable自动生成serialVersionUID...

2019-08-15 15:43:02 724

原创 The Reactive Manistro

响应式系统,感兴趣的可以了解一下 原文:https://www.reactivemanifesto.org/

2019-08-15 13:56:16 54

原创 @Async使用注意事项

使用注意事项: 启动类上添加注解@EnableAsync,用于开启异步; 方法上加@Async注解 ;   使用了@Async的方法,会被当成是一个子线程,所有整个@Async的方法,会在主线程执行完了之后执行; 同一个类中,一个方法调用另外一个有@Async的方法,注解是不会生效的。...

2019-08-14 16:37:55 1437

原创 spring web mvc rest 处理流程

2019-08-13 14:19:59 247

原创 如何发一条空白的朋友圈或者app昵称名

微信发送空白朋友圈以及昵称空白的原理是零宽字符,又或者叫零宽连字符 零宽空格(zero-width space, ZWSP)是一种不可打印的Unicode字符,用于可能需要换行处。 零宽连字符(zero-widthjoiner,ZWJ)是一个不打印字符,放在某些需要复杂排版语言(如阿拉伯语、印地语)的两个字符之间。 零宽连字符使得这两个本不会发生连字的...

2019-08-08 10:50:58 929

原创 Spring Bean 初始化之InitializingBean, init-method 和 PostConstruct

InitializingBean从接口的名字上就可以知道,它的作用就是在bean初始化后执行定制化的操作。 Spring容器中的Bean是有生命周期的,Spring允许在Bean初始化完成后以及Bean销毁前执行特定的操作,长用的设定方式有以下三种: 1、通过实现 InitializingBean/DisposableBean 接口来定制初始化之后/销...

2019-08-01 17:29:41 273

原创 开发中如何防范重放攻击

重放攻击的基本原理就是把以前窃听到的数据原封不动地重新发送给接收方。很多时候,网络上传输的数据是加密过的,此时窃听者无法得到数据的准确意义。但如果他知道这些数据的作用,就可以在不知道数据内容的情况下通过再次发送这些数据达到愚弄接收端的目的。例如,有的系统会将鉴别信息进行简单加密后进行传输,这时攻击者虽然无法窃听密码,但他们却可以首先截取加密后的口令然后将其重放,从而利用这种方式进行...

2019-08-01 13:00:38 2033

gateway-demo.rar

Spring Cloud 系列之 Spring cloud gateway 实现网关路由转发和过滤功能 在最开始接触springcloud-gateway的时候,网上很多教程都涉及服务注册与发现,以及服务调用,这对于新手来说真的很不方便,比如我只想测试学习gateway的路由转发和过滤器配置,如果还要配置服务注册发现和服务调用,就太沉重了。 这个demo就是学习gateway的路由转发和过滤功能,gateway模块只引用了gateway的包和一个测试包,测试包可以删掉,不影响功能展示。 适合入门

2020-06-28

企业级权限管理系统ssm

手把手原生实现一套权限管理系统 数据库详细表结构设计 Spring MVC + Mybatis + Maven 环境搭建 通用配置及工具开发 扩展RBAC模型相关功能开发 前端管理界面开发 权限拦截、权限缓存、权限更新记录、权限恢复等高级功能开发 相关操作界面 权限管理界面、角色管理界面、用户管理界面 角色和权限关系维护界面、用户和角色关系维护界面

2018-12-12

黑客帝国代码雨-java实现

黑客帝国中展现的超炫代码雨,最近在网上查找了一些资料,使用java语言实现

2018-12-02

购物新天地网上商城

本系统主要由前台和后台两部分组成,前台为客户端,顾客可以在此处购买商品,后台为商品管理端,实现对商品和订单的管理,具体功能如下。 1.客户端功能 用户的注册 用户资料的修改 用户登录 商品的购买 商品的搜索 商品的分页查看 商品的分类搜索 购物车中商品的删除与商品数量的修改 订单提交及收货人信息的修改 2.后台管理功能 管理员登录及密码修改 商品的管理,包括商品的增、删、改、查 订单的管理,包括订单的发货及删除 管理员管理,包括管理员的添加及管理员密码密码重置

2018-06-22

Java五子棋源码

AI

2017-05-08

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

TA关注的人

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