java
improvement...
这个作者很懒,什么都没留下…
展开
-
macos idea zookeeper tomcat maven
mac os java运行环境原创 2022-10-26 15:59:43 · 286 阅读 · 0 评论 -
linux配置java-web站点
linux的java web项目运行环境部署原创 2022-09-16 16:19:26 · 420 阅读 · 0 评论 -
maven项目打包 导入本地依赖并打包
打jar包原创 2022-08-25 17:19:15 · 6728 阅读 · 0 评论 -
Java8之集合(Collection)遍历 forEach()、stream()
https://www.iteye.com/blog/lixh1986-2423830JAVA8新特性--集合遍历之forEach - 皇问天 - 博客园list.forEach(System.out::println);list.forEach(new Consumer<Object>() { @Override public void accept(Object s) { System.out.println(s); }});原创 2022-03-03 10:59:38 · 1169 阅读 · 0 评论 -
简单解释为什么会存在hash冲突
哈希冲突,链表原创 2022-03-02 10:21:26 · 2020 阅读 · 0 评论 -
线程安全与同步
package com.shj.practice.exer;/** * 线程通信 * 经典例题:生产者/消费者问题 * 生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处 * 取走产品,店员一次只能持有固定数量的产品(比如:20),如果生产者试图 * 生产更多的产品,店员会叫生产者停一下,如果店中有空位放产品了再通 * 知生产者继续生产;如果店中没有产品了,店员会告诉消费者等一下,如 * 果店中有产品了再通知消费者来取走产品。 * 这里可.原创 2022-02-17 18:01:08 · 62 阅读 · 0 评论 -
排序算法(冒泡,选择,插入,快速)PHP和java实现
冒泡排序:每次选择两个元素,按照需求进行交换,使小的元素慢慢“浮”到数列的顶端。最坏复杂度 O(n^2) 最好O(n) https://pic4.zhimg.com/v2-33a947c71ad62b254cab62e5364d2813_b.webp (最简单的) for ($i = 1; $i < $count; $i++) { for ($j = 0; $j < $count - $i; $j++) { if ($arr[$j] &g...原创 2022-01-07 18:20:11 · 575 阅读 · 0 评论 -
自定义ClassLoader实现热加载
public class MyClassLoader extends ClassLoader{ public String dir; public MyClassLoader(ClassLoader parent, String dir) { super(parent); this.dir = dir; } public MyClassLoader(String dir) { this.dir = dir; }.原创 2021-11-24 00:12:11 · 322 阅读 · 0 评论 -
JVM中GC算法相关
11. 垃圾回收概述及算法 · 语雀一、判断对象是否存活的算法:1、引用计数算法:在对象中添加一个引用计数器, 每当有一个地方引用它时, 计数器值就加一; 当引用失效时, 计数器值就减一; 任何时刻计数器为零的对象就是不可能再被使用的。弊端是无法处理循环引用,造成内存泄漏。Python就使用这种算法,通过手动解除引用来解决循环引用的问题。2、可达性分析算法:当前程序语言(java,c#)主要使用的方法,这个算法的基本思路就是通过一系列称为“GC Roots”的根对象作为起始节点集, 从这些节点开始原创 2021-11-11 16:53:02 · 342 阅读 · 0 评论 -
java json处理
Map<String,Object> obj = JSON.parseObject(doPost,Map.class);Map<String, String> resultMap =JSON.parseObject(result,Map.class);String token = "access_token=" + JSON.parseObject(token,Map.class).get("access_token").toString();configJso...原创 2021-11-10 18:21:51 · 472 阅读 · 0 评论 -
字符串拼接原理及字符串中jvm中存储位置
/* 字符串拼接操作 ● 常量与常量的拼接结果在常量池,原理是编译期优化 ● 常量池中不会存在相同内容的变量 ● 只要其中有一个是变量,结果就在堆中。变量拼接的原理是StringBuilder ● 如果拼接的结果调用intern()方法,则主动将常量池中还没有的字符串对象放入池中,并返回此对象地址*/ String s = new String("a")+new String("b");//new String.原创 2021-11-07 14:05:02 · 223 阅读 · 0 评论 -
巧取随机大小写字母 以及随机数的总结
原理:ASCII中大写字母A-Z是位置上65-90, 小写字母a-z的位置上97-112 随机获取[A-Z,a-z]任意字母。int a = (int)(Math.random() * (26) + 65); //65-90int b = (int)(Math.random() * 2) * 32; // 0, 32int n = (int)(Math.random() * (26) + 65) + (int)(Math.random() * 2) * 32; //65-90, 97-11原创 2021-11-04 16:15:58 · 548 阅读 · 0 评论 -
java线程概念
创建线程的方式:1. 继承thread类2. 实现Runnable接口3. 实现Callable接口4. 通过线程池去创建上述四种方式的区别- 第一种和第二种没有返回值、第三种没有返回值- 等等等自己补充线程池 - 面试重点1. 线程池顾名思义就是一个装线程的池子,可以降低资源的消耗---通过重复利用已经创建的线程,降低线程创建和销毁对性能的影响2. 提高响应速度,当任务到达时可以不需要等待线程创建就能立即执行3. 提高线程的管理,线程创建和销毁统一管理,不回消耗过多的系统资源线程池原创 2021-09-10 18:00:42 · 53 阅读 · 0 评论 -
不借用第三个变量实现交换两个整型变量的值
(1)通过加减方式实现有两种顺序的实现方式 int a = 5; int b = 10; a = a + b; b = a - b; a = a - b;/* a = a - b; b = a + b; a = b - a;*/ System.out.println("a:" + a + ",b:" + b);(2)通过异或运算符,一个变量异或另一个变量两次还是他本身int i = 5;int j = 10;i = i ^ j;j = i ^ j;i = i ^ j;原创 2021-07-21 17:48:44 · 275 阅读 · 0 评论 -
Java的int和Integer 与自动装箱拆箱
https://blog.csdn.net/chenliguan/article/details/53888018中的介绍很详细总结《java核心技术》补充内容如下:public static Integer c; public static int d; public static void main(String[] args) { System.out.print(c); //null System.out.print(",");原创 2021-07-21 16:49:53 · 122 阅读 · 0 评论