
Java
文章平均质量分 65
zhangbaqing
github地址:https://github.com/GHzbq
展开
-
使用-XX:+PrintCommandLineFlags展示JVM启动参数
导语: 近期在学习周志明老师的<<深入理解Java虚拟机: JVM高级特性与最佳实践(第3版)>>, 在IDEA中测试老师的示例代码时, 发现程序的输出和老师的输出不一样, 想到可能是我的JVM启动参数与老师的不一样, 有没有什么办法来查看JVM启动参数呢?一. 背景1. Java版本# 使用 java -verison 命令查看java version "1.8.0_45"Java(TM) SE Runtime Environment (build 1.8.0_45-.原创 2022-01-03 15:45:21 · 1397 阅读 · 0 评论 -
scala使用Gson解析数组
完整代码在最后哦,可以通过目录跳转文章目录一、背景二、解决方案1. 高版本的解法(2.8.7)2. 低版本的解法(2.8.2)3. 直接解析为实体类三、总结1. 在scala中获取类类型2. 使用@SerializedName注解四、完整代码1. ParseJson.scala2. Result.java3. 使用到的依赖一、背景假设某个HTTP接口的返回值如下,怎么在scala中使用Gson把result解析出来呢?{ "code":0, "message":"OK", .原创 2021-07-01 12:27:44 · 1086 阅读 · 1 评论 -
单例模式
目录一、饿汉式单例模式1. 描述2. 优缺点3. Java实现二、懒汉式单例模式1. 描述2. Java实现一3. 懒汉式单例模式实现一存在的问题4. 加锁解决线程安全问题5. 双检测加锁6. 使用静态内部类创建实例三、 注册式单例模式1. Spring中容器式单例模式四、单例模式小结一、饿汉式单例模式1. 描述饿汉式单例模式,在类加载的时候就立即初始化,并且创建单例对象。它绝对线程安全,在其他线程还没出现之前,就已经完成了实例化.原创 2021-04-11 20:16:10 · 333 阅读 · 0 评论 -
IDEA 多线程调试单例模式
一、准备条件1. 代码package com.zhang.pattern.singleton;/** * 单例模式:饿汉-不考虑线程安全 */public class LazySimpleSingleton { private LazySimpleSingleton() { } private static LazySimpleSingleton instance; public static LazySimpleSingleton getInstan原创 2021-04-11 17:38:18 · 412 阅读 · 0 评论 -
PriorityQueue源码分析
文章目录预备知识一、底层的数据结构二、如何构造PriorityQueue三、向PriorityQueue插入元素,会发生什么四、删除元素五、其他操作上篇文章,我们使用PriorityQueue解决了TopK问题,其中有个神奇的操作就是,当从PriorityQueue中插入或者删除一个元素时,他总能通过一定的方式调整,使得堆顶的元素是这个PriorityQueue的最值,这一节我们就来研究一下PriorityQueue底层是用什么存储的数据,又是怎么调整数据,使得其满足以上特性。预备知识如何把一个原创 2021-03-30 16:53:34 · 364 阅读 · 0 评论 -
TopK问题
TopK问题在海量数据处理中,经常会有一类问题,求最小的K个数,或者,求最大的K个数,这类问题统称为TopK问题。文章目录TopK问题一、对此类问题的一些思考二、引出“堆”这种数据结构三、Java有没有相关的实现呢?四、使用PriorityQueue解决topK问题一、对此类问题的一些思考如果数据量比较小的话,我么可以通过排序,然后截取其中我们想要的K个数,但假如数据量比较大的话,即使是考虑效率和资源的快速排序(时间复杂度O(nlgn)O(nlgn)O(nlgn),空间复杂度O(1)O(1)O(原创 2021-03-28 20:12:47 · 271 阅读 · 0 评论 -
maven如何同时启动两个子项目
一、maven多项目启动在多个子模块的maven项目中,可以通过配置.idea/workspace.xml来配置多个子模块同时启动,如果有调试需求的同学,可以使用尝试一下。二、workspace.xml中添加 <component name="RunDashboard"> <option name="configurationTypes"> <set> <option value="SpringBootApplicatio原创 2021-01-13 23:46:13 · 1484 阅读 · 0 评论 -
Java连接数据库
文章目录1. 待办列表2. 项目中遇到的问题以及解决方案2.1. 使用Mybatis连接数据库2.1.1. JDBC连接数据库2.1.1.1. 引入MySQL依赖包2.1.1.2. JDBC步骤如下2.1.2. Mybatis连接数据库2.1.2.1. 引入依赖2.1.2.2. 添加Mybatis配置文件2.1.2.3. 添加mapper.xml2.1.2.4 修改Mybatis配置文件2.1.2...原创 2021-01-09 14:37:54 · 183 阅读 · 0 评论 -
Java中equals方法和==有什么区别
我们先上结论喽:==要求比较严格,要求两个对象必须是同一个对象;equals方法,判断完了是否是同一个对象,会继续判断两个对象的值是否相同,他的要求没那么严格,只要值相同,就好了。文章目录1、背景2、源码面前,了无秘密1、背景今儿看了一个Java的.class文件,发现for循环中有个++i,于是就去查了下,Java是用什么语言编写的,得到的答案是,Java的虚拟机是使用C语言和汇编编写的,上层是用Java语言本身,然后又看了一下那个.class文件,忽然一拍脑门,Java原创 2020-09-24 22:23:35 · 250 阅读 · 0 评论 -
Maven配置资源导出问题
一、使用场景在打包Java后台程序时,可能会遇到src/main/java目录下的资源文件不被导出,导致程序运行过程中报资源找不到错误,此时需要在Maven配置文件中进行配置,这样会将src/main/java目录下的资源文件也打包。二、Maven配置在Maven配置文件中加入以下配置即可。 <build> <resources> <resource> <directory>src原创 2020-08-12 16:27:14 · 824 阅读 · 1 评论 -
Jsp使用${pageContext.request.contextPath}代表当前项目
文章目录一、使用场景二、添加依赖一、使用场景Java Web程序,在编写Jsp代码时,经常会遇到提交表单,可以使用${pageContext.request.contextPath}来获取我们后台运行的项目名称。<html lang="zh"><header> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"></header><body><原创 2020-08-12 16:20:43 · 812 阅读 · 0 评论