java基础
xby18772963985
这个作者很懒,什么都没留下…
展开
-
微服务统一登陆认证怎么做
微服务统一登陆认证怎么做原创 2023-01-26 15:00:56 · 1553 阅读 · 1 评论 -
排坑-junit单元测试和Main方法之多线程
遇到的问题:这两天写项目需求遇见一个大坑,代码两下写完了,测试卡了我整整一天,多线程获取zk分布式锁,没等多线程跑起来,程序就结束了。后来发现是单元测试时执行了异步任务的问题!把异步任务取消后,用main 启动程序立马跑通了,搞了我一整天的问题终于落在帷幕,避免以后再次卡住,在此记录junit单元测试在执行多线程情况下的问题和结论,并对比junit单元测试和主程序Main方法之多线程执行。一. 先放结论切记:junit不支持多线程!!!在junit单元测试中,当创建了新线程后,单元测试并不会等待主线程原创 2022-05-15 11:21:24 · 1068 阅读 · 0 评论 -
开放的redis、zk、kafka数据中心,json在线格式化
说明:我们在做开发是苦于没有redis、zk、kafka数据中心,没有json格式化工具,现在他来了开放的redis、zk、kafka数据中心,json在线格式化如果你觉得有用请作者喝杯水吧。原创 2022-04-26 23:23:47 · 1452 阅读 · 0 评论 -
本地模式安装部署
本地模式安装部署安装前准备安装jdk,拷贝zookeeper安装包到linux系统下,解压到指定的目录tar -zxvf zookeeper-3.5.7.tar.gz -C /opt/module/配置修改将/opt/module/zookeeper-3.5.7/conf这个路径下的zoo_sample.cfg修改为zoo.cfg;打开zoo.cfg文件,修改dataDir路径:dataDir=/opt/module/zookeeper-3.5.7/zkData在/opt/module/zoo原创 2022-04-23 12:42:25 · 128 阅读 · 0 评论 -
设计模式之----观察者模式
1.设计模式之----观察者模式import java.util.ArrayList;import java.util.List;public interface Observer { void undateMeSelf(int count);}class StaticDisplay implements Observer { private int count = 0; @Override public void undateMeSelf(int count)原创 2022-01-27 11:46:37 · 480 阅读 · 0 评论 -
设计模式----桥接模式
1.桥接模式public interface DrawApi {void drawCycle();}class DrawRedCycle implements DrawApi{@Overridepublic void drawCycle() { System.out.println("----drawRedCycle----");}}class DrawGreenCycle implements DrawApi{@Overridepublic void drawCycle()原创 2022-01-24 16:57:00 · 264 阅读 · 0 评论 -
设计模式----适配器模式
1.适配器模式public interface MediaPlayer {void player(String mediaType);}interface AdviceMediaPlayer {void playerMp4();void playerMp3();}class Mp4MediaPlayer implements AdviceMediaPlayer{@Overridepublic void playerMp4() { System.out.println("--pla原创 2022-01-24 16:25:37 · 139 阅读 · 0 评论 -
设计模式----原型模式
1.原型模式代码import java.util.HashMap;import java.util.Map;public abstract class CustFile implements Cloneable {protected String name;public Object clone(){ Object clone = null; try { clone = super.clone(); } catch (CloneNotSupportedExc原创 2022-01-24 11:54:53 · 75 阅读 · 0 评论 -
设计模式之----工厂模式
1.工厂模式示例代码public abstract class Coffee { protected String name; public abstract void setCoffeeName();}class MoCaCoffee extends Coffee{ public void setCoffeeName(){ this.name = "MoCaCoffee"; };}class MilkCoffee extends Coffee原创 2022-01-24 11:08:09 · 199 阅读 · 0 评论 -
设计模式之---单例模式
1.示例代码public class SingleInstance { private static SingleInstance instance = new SingleInstance(); private SingleInstance(){ } public static SingleInstance getInstance(){ return instance; }}2.关键点单例模式最主演的就是将构造方法写为私有的(privat原创 2022-01-24 10:56:18 · 186 阅读 · 0 评论 -
设计模式----命令者模式
1)命令者模式public class Light { private String lightName; Light(String lightName){ this.lightName = lightName; } public void on(){ System.out.println("----"+lightName+"--on--"); } public void of(){ System.out原创 2022-01-20 18:34:41 · 298 阅读 · 0 评论 -
设计模式----装饰者模式与代理模式
1.代理模式为主要的功能增加旁支末节的功能public interface OperDb { void insert(); void query(); void delete(); void update();}class OperDbImpl implements OperDb{ @Override public void insert() { System.out.println("-----insert-------")原创 2022-01-20 17:54:18 · 357 阅读 · 0 评论 -
windows下根据任务名称,端口杀死进程
1.根据网络端口查看进程ID(PID)netstat -ano |findstr "8088"2.根据任务名称查看进程ID(PID)tasklist |findstr "nginx"3.根据进程ID(PID)杀死任务taskkill -pid 88888 -f原创 2022-01-11 15:22:51 · 1390 阅读 · 0 评论 -
将Java文件编译成Jar包
1.将指定目录下的java文件编译为class文件import org.apache.commons.lang3.StringUtils;import javax.tools.*;import java.io.File;import java.util.Arrays;import java.util.List;// 将java文件编译为class文件public class CompilerUtil { private static JavaCompiler javaCompiler原创 2021-12-31 16:00:14 · 3204 阅读 · 1 评论 -
CPU占用高及问题排查
CPU异常往往是业务逻辑问题(死循环)、频繁gc以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导致的,可以使用jstack来分析对应的堆栈情况,本文通过死循环方式重现CPU过高场景,并实例讲解CPU过高问题排查的方式。1.环境Centos7 1核2GBJava82.模拟cpu占用高创建 cpu-over-test 项目,添加了一个MyMainClazz类。里面有一个可是要 java -jar 执行的Main方法模拟代码如下public class MyMainClazz {原创 2021-12-11 15:00:25 · 393 阅读 · 0 评论 -
java 中对于List集合,多字段分组,统计
1.java 中对于List集合,多字段分组,统计 List<Student> list =new ArrayList<>(); list.add(new Student("aaaa","aaaa","aaaa",15)); list.add(new Student("aaaa","aaaa","aaaa",10)); list.add(new Student("bbbb","bbbb","bbbb",5)); list.add(new Stu原创 2021-12-03 11:53:23 · 4997 阅读 · 0 评论 -
java-idea
alt+ enter 代码提示、导包alt +(左右键)多个窗口下左右切换代码窗口ctrl+alt (左右键) 来回切换代码修改、查看光标处ctrl +p 查看函数参数Ctrl+Alt+L 格式化代码(小写状态下加按个shift)ctrl+d 复制光标所在行代码并黏贴到下一行ctrl+y 删除当前光标所在行代码双击shift 打开类查找器(源码阅读必备)ctrl+f 打开当前文本字符查找ctrl+h 查看对应类的实现关系ctrl+shift+u 将选中代码转换为大写ctrl+e 展示最原创 2021-11-26 23:12:24 · 237 阅读 · 0 评论 -
springcloud介绍
eurke 注册中心applo 配置中心nocas (注册中心+配置中心)feign是声明式的web service客户端,它让微服务之间的调用变得更简单了原创 2021-11-26 22:54:11 · 135 阅读 · 0 评论 -
Java并发编程之JAVA多线程之Volatile与Synchronized的比较
一,volatile关键字的可见性[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qFUp7me1-1637936885440)(./assets/thread.png)]从图中可以看出:①每个线程都有一个自己的本地内存空间–线程栈空间,线程执行时,先把变量从主内存读取到线程自己的本地内存空间,然后再对该变量进行操作②对该变量操作完后,在某个时间再把变量刷新回主内存public class RunThread extends Thread { privat原创 2021-11-26 22:28:20 · 146 阅读 · 0 评论 -
ConcurrentHashMap基础原理
ConcurrentHashMap基础知识1、hashMap底层的数据结构采用的是,数组+(链表/红黑树)的数据结构Node[n] 数组的初始容量是16,容量因子系数是0.75,当在数组容量超过16*0.75=12时调用resize()扩容为32(2的N次方)数据的某个位置例如Node[1]上 需要放置多个元素时放在链表中,当链表的深度超过8时转化为红黑树(二叉树的一种,左边小右边大便于查找)。2.hashMap中元素存放数组位置的算法,计算元素存放数组位置,因为每个元素都有hashcode,在计算原创 2021-11-26 22:27:47 · 82 阅读 · 0 评论 -
HashMap基础原理
HashMap基础知识####1、hashMap底层的数据结构采用的是,数组+(链表/红黑树)的数据结构Node[n] 数组的初始容量是16,容量因子系数是0.75,当在数组容量超过16*0.75=12时调用resize()扩容为32(2的N次方)数据的某个位置例如Node[1]上 需要放置多个元素时放在链表中,当链表的深度超过8时转化为红黑树(二叉树的一种,左边小右边大便于查找)。####2.hashMap中元素存放数组位置的算法,计算元素存放数组位置,因为每个元素都有hashcode,在计算位置原创 2021-11-26 22:25:05 · 248 阅读 · 0 评论