基础知识
文章平均质量分 51
一个东北来的程序猿
这个作者很懒,什么都没留下…
展开
-
记一次 while(true) 产生的CPU爆满
背景最近工作中碰到一个问题测试系统稳定性的时候发现 CPU 一直爆满经过多方面排查 发现是多处用了while(true)处理办法在while(true) 的代码中加一个 Thread.sleep(1)即可事后思考为什么呢 那就得回顾一下操作系统相关的知识操作系统的 CPU 现在可能有四核、八核、16核 但是我们打开tomcat线程数一看有120多那么操作系统的 CPU 就要有正确的调度规则 , 操作系统中有很多算法 Unix系统使用的是时间片算法,而Windows则属.原创 2022-01-19 16:38:24 · 2122 阅读 · 1 评论 -
Gradle|Maven多模块开发解决循环依赖
前提纪要公司目前是gradle多模块开发 没有用到传统互联网公司的分布式 springCloud、dubbo等差不多是20个jar包 一个底座war 依赖所有jar包有公共模块framework、core等问题出现前面说过是多模块开发 其中有两个模块比较特殊一个是 定时调度暂且称为T、一个是数据抽取Etl 暂且称为E目前的业务要求是T需要调用E中的运行方法、E需要获取T中的定时运行状态以及记录按照分布式的解决方法很简单就利用Rpc相互调用方法就行了 也不存在直接依赖关系如图解决原创 2021-10-14 16:02:50 · 1199 阅读 · 0 评论 -
Java基础知识---HashMap线程不安全的部分原因
想要说清楚HashMap线程不安全的事情 分两部分JDK 1.8 以前HashMap底层是数组+链表以前人尽皆知了那说一个不是人尽皆知的问题,HashMap放入新元素是采用头插法,什么是头插法呢:一个数组 Int[] array = {1,2,3,4}我们想放入一个新的元素0 就是Int[] array = {0,1,2,3,4}再说一个问题 HashMap 是有容量上限的 再超过上限的时候 但凡是一个集合都会开始扩容 当然他也不例外所以怎么扩容呢原Map 重新计算放.原创 2021-08-26 17:58:25 · 134 阅读 · 0 评论 -
Java---文件指定行添加内容
/** * 指定路径文件 从 flagStr 按行添加 writeContent * @param writeContent * @param path * @param flagStr * @throws IOException * @throws URISyntaxException */ public static void write2File(List<String> writeContent, String原创 2021-08-11 17:46:41 · 2700 阅读 · 0 评论 -
Java 生成随机长度字母组合
需求最近在做数据模型相关 需要手动将图形化操作转换成 数据库关联查询join 语句这里就有一个表别名的问题 所以需要随机的字母组合代码// 这里是种子字母 当然如果需要可以加上数字 已经把大小写区分不明显的去掉了public static Character[] words = new Character[]{'a', 'b', 'd', 'e', 'f', 'g', 'h', 'm', 'n', 'q', 'r', 't', 'y',原创 2021-07-14 15:24:24 · 555 阅读 · 0 评论 -
jar包读取资源文件报错:找不到资源文件(No such file or directory)
现象先看一段代码File readFile = null; try { String path = this.getClass().getClassLoader().getResource(fileLocation).getPath(); readFile = new File(path); } catch (Exception e) { logger.error("=================原创 2021-06-15 13:48:28 · 2351 阅读 · 1 评论 -
Synchronized锁机制详解
锁是一种怎样的存在一个简单的日常的生活的例子:如果有人问你怎样保证自行车不被偷走,肯定回答上锁就行了呗。类比如果有人又问你多线程情况下怎样保证数据安全性,上锁就行了呗。所以程序世界中的锁到底是什么样子呢Synchronized...转载 2021-05-13 15:35:11 · 458 阅读 · 0 评论 -
20201122---整理面试问题
最近回北京重新找工作,面试(2.5年工作经验Java开发)也没好好准备背题啥的,就直接上阵了,那肯定是会被怼的现整理一波不会的不熟的以作记录 我也没查正确答案 完全就是自己的理解不分先后,想起来啥写啥1、MySQL优化 这个是必问的 我就把日常会用到的说一说 欢迎大神补充重点a)表结构:用适用字段,能用int不用vachar 前者对于mysql来说处理速度是比较快的b) sql语句:一般就是从sql优化说起来,sql优化一般就是从索引说起来,要适量加索引,这里可以展开说好多关于索引的东西原创 2020-11-22 22:45:03 · 144 阅读 · 0 评论 -
Java源码解析之———LinkedHashMap
LinkedHashMap继承于HashMap,同样实现了Map接口,与HashMap不同的是,LinkedHashMap的插入取出是有序的,并且可以控制。先看一下数据结构 其中数字是表示结点插入的顺序,可以看到的是LinkedHashMap用链表将每个元素串起来,数据结构为 数组+单链表+红黑树+双链表。先看LinkedHashMap的几个属性,因为继承了HashMap,所以Has...原创 2018-04-18 17:55:51 · 247 阅读 · 0 评论 -
Java源码解析之———HashMap
Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用实现类,HashMap,Hashtable,LinkedHashMap,TreeMap.如图:HashMap简介: 它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因为具有很快的访问速度,但遍历顺序是不固定的。HashMap最多只允许一个键为null,允许多个值为null。Hash...原创 2018-04-18 11:48:14 · 256 阅读 · 0 评论 -
Java源码解析之———ArrayList
ArrayList是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。继承于AbstractList,实现了List,RandomAccess,Cloneable,java.io.serializable这些接口。 和Vector不同,ArrayList中的操作不是线程安全的!!!所以建议在单线程中才使用ArrayList,而在多线程中可以选择Vector或者...原创 2018-04-16 18:16:49 · 245 阅读 · 0 评论 -
Java原子性操作之——Atomic包的原理分析
Atomic: Atomic包是java.util.concurrent下的另一个专门为线程安全设计的java的包,包含多个原子性操作的类。基本特性就是在多线程情况下,当多个线程想要同时操作这些类的某些实例方法时,具有排他性,也就是当某个线程在执行某个方法时,不会被其他线程打断,其他线程会在外部等待,一直等到该方法执行完毕,才由JVM从等待队列中选择另一个线程进入,这只是一种逻辑上的理解。实...原创 2018-04-19 17:39:42 · 5189 阅读 · 0 评论 -
Java8特性----lambda表达式之Collection常见操作
现在越来越多的公司开始使用jdk8了,jdk8有许多新特性,其中一个特性便是流式处理,进而有好多对于集合的便利操作我自己也是刚开始熟悉jdk8,便在此记录一些基本的关于集合的操作 至于一些理论上的东西我就不写了,某度一大堆,因为一点点介绍每段的含义来路也不是一篇博客就能写完的,我只会简单说一下每段的意思,废话不多说,上代码先创建一下的练习会用到的类 package com.chunying....原创 2018-07-13 16:10:14 · 6869 阅读 · 3 评论 -
Windows 10jdk环境变量配置会出现的小问题
先声明 我是一个小白 只是遇到了这个问题就来说一下,不知道是否正确 很多我接触到的人包括自己在Windows10系统下配置环境变量 偶尔会出现重启后失效的问题,这个问题也是困扰了笔者很久,也是试了很多方法,机缘巧合之下找到了解决方法 ,出现这种问题的小白们可以试一试众所周知 配置环境变量无非就是加一个JAVA_HOME 如图然后在path中加入JAVA_HOME 然后加一个"/bin"来指向jdk...原创 2017-03-28 00:32:29 · 3724 阅读 · 1 评论 -
Java工具类---------获取系统环境变量以及配置文件的值
我们在开发时 有很多配置|配置文件需要放在环境变量中 以便于多个项目|不同开发者 或等等原因的使用Java为我们内置了读取环境变量的方法 这里加以简单的封装package com.hqjl.career.util;import com.hqjl.common.util.Common;import java.io.BufferedReader;import java.io.File;...原创 2019-10-17 12:05:26 · 1012 阅读 · 0 评论 -
Java-------对Synchronized锁的理解
Java对于多线程是有自己的处理方式的,但是锁的机制来来回回看了好几遍 每次都有新的理解、甚至不同。今天又看了几篇博主的文章,也不知道理解的对不对,决定把自己的见解记录下来。过后有新的见解会再加上或更改Java 为了实现多线程同步,有锁机制,大致有Lock 和 synchronized两种方法这篇为了记录对synchronized锁对象的理解,过后会写Lock1 、 synchronize...原创 2019-10-12 14:51:53 · 204 阅读 · 0 评论 -
Java基础知识-----String字符串 如何从a截取到b
今天有这样一个需求 从文章内容中截取出图片的链接。于是有了下面这个方法public class StringUtil {public static List<String> getHref(String param) { List<String> results = new ArrayList<>(); //参数是 正则表达式 从 '&l...原创 2019-10-08 15:40:54 · 1353 阅读 · 0 评论