
Java
文章平均质量分 63
六吨代码
这个作者很懒,什么都没留下…
展开
-
函数式编程概述
在Java中如何像JS一样把代码片段/函数当做参数来传递?看Java 8的函数式编程原创 2022-11-22 16:05:33 · 429 阅读 · 0 评论 -
Java函数式编程入门之Function<T,R>接口
Java可以像JS那样把函数作为参数传递吗?看看Java 8提供的Function系列接口吧!原创 2022-09-24 17:37:31 · 6362 阅读 · 0 评论 -
Web项目Spring 5.x使用log4j 2
Spring从4.x版开始,日志方面不再使用陈旧的log4j 1,改为支持log4j 2版,网上的在web.xml中配置Log4jConfigListener监听器的方法都是老版,目前已经不适用。在Spring 4.x+版本中使用log4j 2的步骤为:1.导入依赖(Maven)<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api原创 2021-10-20 16:31:48 · 613 阅读 · 0 评论 -
字符集与编码系列:Unicode字符集与Java char类型
前文介绍了Unicode基本知识,没看过的去看一下,传送门:字符集与编码系列:Unicode字符集_liudun_cool的博客-优快云博客常用汉字在Java中的用法对于一些常用汉字,一般都在Unicode的BMP平面,也就是2个字节足够表示。比如,我打开一个Unicode CJK码表,可以看到第一个汉字就是编码为4E00的 ‘一’,第二个是编码为4E01的 ‘丁’。下图中的CJKV的含义: C = 中国(大陆、香港、台湾) J = 日本 K ...原创 2021-10-13 15:54:45 · 673 阅读 · 0 评论 -
字符集与编码系列:Unicode字符集
基本概念1.字符集:要想在计算机中显示文字,必须把文字都收集起来放在一个表中,这个表叫字符集(Charset)。2.码表:字符集中的每个文字,都分配一个数字码,这叫码表(Code chart)。比如中文 ‘霸’字,在码表中对应的码是38712(十进制),或者9738(十六进制)。3.编码方式:有了码表,就需要确定哪些文字用几个字节表示,以及如果有多个字节代表一个字,字节的读取顺序,这些就是字符编码方式(Encoding)。虽然为了严谨起见,上面我把字符集和码表分开说明,但实际上很多字符集也给原创 2021-10-13 14:53:44 · 6967 阅读 · 0 评论 -
Spring Boot 2.5打包访问JSP页面
1.项目结构:2.视图解析器:3.控制器:4.pom.xml <packaging>war</packaging> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte原创 2021-06-23 13:52:35 · 395 阅读 · 0 评论 -
讨厌俄罗斯套娃?用Java 8的Optional<T>类和函数式编程语法吧!
代码中经常要写非空判断,甚至俄罗斯套娃?来来来,我们一起做一个优雅的人。原创 2021-05-08 15:11:55 · 433 阅读 · 1 评论 -
从@SBA注解的三大BUFF,理解Spring Boot自动配置の原理
用SpringBoot(简称SB)来搭建项目香不香?毫无疑问是香的!这都是因为本文的男猪脚@SBA注解,全称@SpringBootApplication注解。没错,就是那个你每次创建SB项目时,启动类上都有的那个。对于Spring来说,一切都是IoC容器中的Bean。@SBA注解为什么这么厉害,启动类上只要有它就搞定了?因为他身上叠加了三大BuFF,能完成所有IoC容器初始化的工作。看↓↓↓图。一个网红背后有很多打工人在奉献。@SBA注解虽然光芒万丈,但光靠他自己是不行的。在开发工具中按..原创 2021-01-06 10:34:29 · 339 阅读 · 0 评论 -
Spring Boot 2自动配置原理
用过Spring Boot并且长得帅的人都知道,应用的启动类上,只要有@SpringBootApplication注解,就是一个Spring Boot的应用,就会按自动配置所需的Bean。怎么做到的呢?唯一的线索就是@SpringBootApplication注解本身了。Ctrl + 单击点开这个注解,会看到它身上附带了3个其它注解(@Target等元注解除外),其中一个@EnableAutoConfiguration和我们要研究的自动配置有关,它打开了整个项目自动配置的开关。这个注解怎么做到的原创 2020-08-24 11:48:27 · 431 阅读 · 0 评论 -
SpringMVC框架 + 客户端 jQuery 跨域请求解决方案之JSONP
做Web开发必然会遇到的一个问题就是跨域,被浏览器的同源策略给拦截,请求根本发不出去。由于用的Spring版本时3.2.13,@CrossOrigin注解还不支持,而且在Response中加Access-Control-Allow-Origin之类Header的方式也不太有效,我就不说了,老夫这里只说的JSONP方式解决跨域问题。假设用了fastjson库,那么Controller中作如下处理:if(null != user){//登录成功 //放入session session.setAtt原创 2020-08-06 21:16:30 · 328 阅读 · 0 评论 -
游戏服务器JVM Full GC长时间暂停导致数万玩家掉线问题诊断
最近收到一个游戏服务器崩溃,导致玩家掉线的问题,让我看看,并发给我一个JMC的飞行记录和堆内存的hprof 堆转文件。我分别用JDK中的jmc和jvisualvm打开进行分(瞎J)析(8看)。先看看基本信息。 基本信息: 生成的日期: Tue Jul 28 19:51:09 CST 2020 文件: E:\Downloads\java_pid11875\java_pid11875.hprof.4 文件大小: 13,721.7 MB 字节总数: 12,583,316,2...原创 2020-07-30 13:28:15 · 1828 阅读 · 5 评论 -
Java Web项目设置默认首页指向Servlet、Controller
本例中,把实际为控制器handler的登录页面地址,设置为默认首页,按如下步骤。1.在Controller中的URL为/user/login在web.xml中设置默认首页指向Servlet或控制器,有一个限制,不能有后缀,否则被当做页面。控制器代码如下:@Controller@RequestMapping("/user")public class UserController { @RequestMapping("/login") public String login() {原创 2020-06-04 11:33:26 · 3629 阅读 · 1 评论 -
Java中基于OpenCV的人脸检测
1.下载并安装OpenCV 根据你的运行平台选择OS和版本,我是windows-x64,因此下载: https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.4.0/opencv-3.4.0-vc14_vc15.exe/download 下载后,安装到文件夹中,会看到buil...原创 2019-06-12 18:20:42 · 1143 阅读 · 1 评论 -
JDK中的开发工具简介
位于%JAVA_HOME%/bin目录下的开发工具种类繁多,如果不多多了解,怎么能算资深Java程序员呢?appletviewer.exe HTML中的Applet小程序查看器 extcheck.exe 检测目标 jar 文件与当前安装方式扩展 jar 文件间的版本冲突 idlj.exe 对idl通用接口文件进行解析,生成所需的java文件 jabswitch.e...原创 2019-01-18 21:35:02 · 1257 阅读 · 0 评论 -
同步和对象锁-Synchronization and Object Locking
Java语言的一个主要强项就是对多线程程序的内置支持。一个对象在多个线程之间共享读取时可以通过加锁来实现有序同步的访问。Java提供原语来指明关键代码区域,原语作用于共享对象,并保证同一时刻只有一个线程能执行这些代码。第一个进入代码区域的线程锁定共享对象,当与这个共享对象相关的第二个线程要进入相同的代码区域时,它只能等待,直到第一个线程解锁这个共享对象。 在Java官方的HotSp...翻译 2019-01-07 23:32:07 · 418 阅读 · 0 评论 -
Java对象结构与锁实现原理及MarkWord详解
阅读本博客前,需要了解基本的同步概念,传送门:http://note.youdao.com/noteshare?id=7f10475c6bb01658b955eaca531c0be6&sub=590214A72B3C455FAB266C4FB7A32698我们都知道,Java对象存储在堆(Heap)内存。那么一个Java对象到底包含什么呢?概括起来分为对象头、对象体和对齐字节。如下图所...原创 2019-01-11 09:20:01 · 5040 阅读 · 3 评论