
java
文章平均质量分 55
StringKai
这个作者很懒,什么都没留下…
展开
-
《深入剖析Tomcat》源码学习(边读边更新)
最近在读《深入剖析Tomcat》这本书,书中附带了很多源码帮助学习.但是部分源码存在一些小问题需要修复才可以正常运行.另外有些源码的运行方式也需要特殊注意.第一章如下图所示,代码清单1-6中直接发送了响应体,缺失了http响应头,需要补充.否则http请求会失败.修改后的代码:public void sendStaticResource() throws IOException { byte[] bytes = new byte[BUFFER_SIZE]; Fil原创 2022-05-04 12:02:52 · 685 阅读 · 1 评论 -
《深入理解Java虚拟机》笔记:volatile的实现原理
volatile在并发程序中有两个特点:1、保证其修饰变量的线程间可见性;2、禁止对其修饰变量的指令重排。这两个特点都与volatile底层实现有关。通过观察汇编代码可以发现,在对volatile变量赋值后,会多执行一条指令:lock add1 $0x0,(%esp)这条指令的作用是:将本处理器的缓存写入内存,并使其他处理器的缓存无效。显然通过这条命令可以让前面对volatile变量的修改对其他处理器立即可见。因为在Java中,...原创 2020-09-17 22:22:06 · 205 阅读 · 0 评论 -
二叉树先序,中序,后序遍历 非递归形式
import java.util.HashSet;import java.util.Set;import java.util.Stack;public class BinaryTreeTraversal { //先序 public static void preOrder(TreeNode root) { TreeNode node = root; ...原创 2020-04-05 20:25:32 · 268 阅读 · 0 评论 -
什么情况下Integer用==判断可相等?String呢?
首先我知道Integer和String的equals都重写过,比较的是对象的value字段,这个问题很简单.而Integer和String用==判断时,比较的都是地址,就需要讨论了.先说结论使用直接赋值或valueOf()方法时,Integer和String都会查缓存,缓存中有就返回缓存中的地址,没有则新建.使用new Integer()和new String()方法都不查缓存,直...原创 2020-04-01 00:50:34 · 464 阅读 · 0 评论 -
小米OJ 6.交叉队列 深度优先遍历解法
网上有用动态规划解这题的,代码量比较大.我这里用 深度优先遍历 写更简单一些.思路就是很常见的思路.具体流程:如果 s1[i] 和 s2[j] 都不等于 s3[i+j] , 说明无解 , 返回false.如果s1[i] 等于 s3[i+j] , 递归判断 s1[i+1] , s2[j] 和 s3[i+j+1] 的关系.如果s2[j] 等于 s3[i+j] , 递...原创 2020-03-21 20:54:05 · 224 阅读 · 0 评论 -
Java 8 Stream的一些用法,持续更新中...
//int数组转set集合//1.转换成stream,2.包装,3.stream转SetSet<Integer> set= Arrays.stream(array).boxed().collect(Collectors.toSet());//错误举例,array元素需为包装类Set<Integer> set=new HashSet<>(Arrays....原创 2020-03-08 12:53:04 · 265 阅读 · 0 评论 -
@Value在工具类中取到的值为null
转载版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/BeNiceman/article/details/78540920@Componentpublic class MailUtil {/** 日志 */private static Logger log = Logg...转载 2019-11-03 10:01:30 · 915 阅读 · 0 评论 -
一个Java线程间内存可见性实例的解读
代码来源public class TestVolatile { public static void main(String[] args) throws InterruptedException { ThreadDemo threadDemo = new ThreadDemo(); new Thread(threadDemo).start(); ...原创 2019-09-24 20:36:19 · 532 阅读 · 0 评论 -
基于Nginx-rtmp+Java的直播拉流鉴权方案
概述在之前这篇博客《无插件web直播解决方案》中,我汇总了一个可用的直播前后端解决方案。而这篇博客将针对该方案,讲述一种直播拉流鉴权方法。也就是一种验证用户是否有权限访问直播流地址的方法,可以用来防盗链。就当是记录自己的想法了。思路用户在web端登陆成功后,Java服务端将用户的id、密码,当前时间等信息合并成一个字符串,使用RSA算法公钥加密该字符串,生成一个密文key。把这个密...原创 2019-09-19 23:44:05 · 4014 阅读 · 5 评论 -
Java反射的作用及应用 笔记
Java代码在计算机中经历的三个阶段1.源代码阶段.java源码文件 ---》.class字节码文件2.Class类对象阶段类加载器 ---》Class类对象(反射机制)(Class类对象包括,成员变量Field[] fields + 构造方法Constructor[] constructors + 成员方法Method[] methods)3.运行时阶段Class类对...原创 2019-08-03 20:35:33 · 212 阅读 · 0 评论 -
spring项目,在多个前端页面间共享后端数据,后端向多个未映射前端页面传值
最近在做一个小的springboot项目,涉及到嵌套页面间数据的共享。需要通过后端向不同的页面传递数据。但是因为是嵌套页面,不会发生页面的跳转,故不能通过设置多个model.addAttribute实现数据共享。但是我又发现在一个 @RequestMapping方法中model.addAttribute设置的数据无法被其他 @RequestMapping所使用。经过百度我知道了requ...原创 2018-11-18 23:26:14 · 1384 阅读 · 0 评论