java
cg_Amaz1ng
这个作者很懒,什么都没留下…
展开
-
JDK1.8新特性
https://www.cnblogs.com/jacksontao/p/8608291.html转载 2020-08-26 15:03:34 · 166 阅读 · 0 评论 -
Java 编程下 IO 中的输入流的 read() 方法返回值为什么是 int 值
https://blog.csdn.net/qijingwang/article/details/79742561原创 2020-07-13 00:25:49 · 362 阅读 · 0 评论 -
【设计模式】模板方法模式
原理:基于Java的继承和多态特性场景:父类提供一个方法壳,由一个统一的方法调起,子类重写父类的方法壳,调用父类的统一方法,将按照父类的步骤,子类的具体逻辑来执行。例子:public class Demo { public static void main(String[] args) throws Exception { Product a = new Element(); a.printA(); }}class Product {原创 2020-06-07 15:29:09 · 178 阅读 · 0 评论 -
SpringBoot和Bean的初始化过程
1、SpringBoot的入口SpringApplication.run(Application.class, args);2、当使用@Autowired注入bean的时候,调用栈,调用线程main at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postP...原创 2020-03-30 11:35:32 · 635 阅读 · 0 评论 -
华为社招算法题
有多组整数数组,需要将他们合并成一个新的数组。合并规则:从每个数组里按顺序取出固定长度的内容合并到新的数组中,取完的内容会删除掉,如果该行不足固定长度或者为空。则直接取出剩余内容放到新的数组中,继续下一行。输入:第一行是每次读取的固定长度,第2-n行是需要合并的数组,不同的数组用回车换行分隔,数组内用逗号分隔。输出:新的数组,用逗号分隔示例:输入:32,5,6,71,...原创 2020-03-29 18:16:21 · 967 阅读 · 0 评论 -
SpringBoot+Tomcat源代码解读
SpringBoot默认使用Http11NioProtocol,该类的唯一构造函数使用了NioEndpoint来构造成员变量NioEndPoint默认设置PollerThread默认名:http-nio-端口号-ClientPoller-序号,例如http-nio-8080-ClientPoller-0默认数量:2如果使用Http11NioProtocol来替代Ni...原创 2020-03-16 15:32:35 · 282 阅读 · 0 评论 -
CloseableHttpResponse用完需要手动关闭吗
不用。前提是调用了EntityUtils去读取过了。当我们使用调用CloseableHttpClient的时候,调用CloseableHttpClient.execute(httpPost)方法会返回CloseableHttpResponse对象,CloseableHttpResponse的唯一实现类是HttpResponseProxy,我们来研究下不手动close,这个对象能否被正常回收...原创 2020-03-15 16:36:38 · 16443 阅读 · 1 评论 -
Docker的方式安装JFrog Artifactory
1、查找镜像docker search jfrog2、拉取排名最高的镜像docker pull scandio/jfrog-artifactory3、安装镜像docker run --rm --name artifactory -d \-v artifactory6_data:/var/opt/jfrog/artifactory \-p 8081:8081 ...原创 2020-03-08 23:44:36 · 4350 阅读 · 1 评论 -
【java】下载文件字节数组
public static byte[] loadFromUrl(String url) throws IOException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpGet httpGet = new HttpGet(url); ...原创 2020-03-07 10:34:56 · 752 阅读 · 0 评论 -
IDEA切换gradle版本
原创 2020-02-28 00:47:05 · 9468 阅读 · 0 评论 -
@Async如何增加traceId
https://www.jianshu.com/p/4093add7f2cd原创 2020-02-27 16:47:10 · 1481 阅读 · 0 评论 -
Freemarker动态构造map,增加或改变元素
需求:遍历一个List,按照key值统计每个key值有多少个,将结果放到map中由于freemarker不支持对map的直接操作,所以需要将对map的直接操作转化为重新构建新的map<!-- 初始化map --><#assign creditDic = {}><!-- 遍历list --><#list report.creditTipss ...原创 2020-01-09 17:19:16 · 1781 阅读 · 0 评论 -
MySql 复杂的删除语句很慢
delete from product_parameter where parameter_id in (select p4.parameter_id from product p1 inner join product_parts_relation p2 on p1.product_id = p2.product_id and p1.version = p2.versioninner jo...原创 2019-12-10 15:30:04 · 407 阅读 · 0 评论 -
SpringBoot健康检查
https://www.jianshu.com/p/d59f06724f1bhttps://www.cnblogs.com/baidawei/p/9183531.html例如查看当前系统使用了@RequestMapping的Url,使用Get请求 http://localhost:8080/mappings...原创 2019-10-30 16:26:00 · 362 阅读 · 0 评论 -
volatile多线程中一定write优先于read吗?
不一定。如下测试代码:int a = 0;volatile int b = 0;@Testpublic void testVolatile() throws InterruptedException { Thread thread1 = new Thread(() -> sleepAndCount()); Thread thread2 = new Thread...原创 2019-10-16 16:39:02 · 177 阅读 · 0 评论 -
happens-before是什么?
https://blog.csdn.net/zjw_mzone/article/details/83999316https://blog.csdn.net/qqqqq1993qqqqq/article/details/75285899happens-before的规则1)程序顺序规则:一个线程中的每个操作,happens-before于该线程中的任意后续操作。2)监视器锁规则:对一个...转载 2019-10-16 15:25:29 · 174 阅读 · 0 评论 -
Java基本数据类型
Java有八大基本数据类型1、byte 8位2、short 16位3、int 32位4、long 64位5、double 64位,默认小数是用它6、float 32位7、bool8、char 16位原创 2019-06-11 11:36:53 · 143 阅读 · 0 评论 -
String为什么是final
https://blog.csdn.net/bn493235694/article/details/79599883https://blog.csdn.net/sdmxdzb/article/details/83003734转载 2019-06-17 10:43:07 · 161 阅读 · 0 评论 -
哈希查找算法的Java实现
class HashDemo{ private Integer[] array; private int size; private final static int DEFAULT_CAPACITY = 5; private int capacity; public int size() { return size; }...原创 2019-06-11 17:37:03 · 562 阅读 · 0 评论 -
【设计模式】单例模式
1、最经典也是最简单的单例模式:public class Singleton { private Singleton(){} private static Singleton instance; public static Singleton getInstance(){ if (instance == null) { i...原创 2019-06-17 17:35:03 · 179 阅读 · 0 评论 -
ArrayList的底层实现
1、底层是Object数组,叫做 elementData2、默认容量10,叫做 DEFAULT_CAPACITY,不是初始容量3、如果不指定初始容量,刚new出来的list如果没有存储任何对象,则容量为0,但是如果指定了初始容量,刚开始size也是为0ArrayList<String> list = new ArrayList();System.out.println(...原创 2019-06-11 11:01:37 · 122 阅读 · 0 评论 -
为什么需要重写hashcode和equals方法
RT,以前我也不知道为什么一定要重写。大家都忽略了HashMap,HashTable和HashSet是干嘛的了吧。想要使用HashMap,HashTable,HashSet存储对象,就必须重写此对象的hashcode和equals方法。如果不使用,则不用重写...原创 2019-06-11 09:54:37 · 132 阅读 · 0 评论 -
类加载、类实例化过程
1、名词等同,类实例化=对象初始化2、Java对象初始化过程是先初始化成员变量(包括代码块),再执行构造函数。3、如果某个类没有被用到,则此类一直不会被加载。4、类实例化的过程是先按照代码先后顺序执行类中定义的static代码块/static成员变量,再按照顺序执行普通代码块/普通成员变量...原创 2019-06-14 17:18:20 · 194 阅读 · 0 评论 -
HashMap原理深入理解
HashMap原理深入理解转载 2019-06-13 15:16:56 · 140 阅读 · 0 评论 -
synchronized底层原理实现
https://www.jianshu.com/p/e62fa839aa41转载 2019-06-12 17:07:25 · 1328 阅读 · 0 评论 -
jdk几个好用的性能调优工具
1、jpsjava提供的一个显示当前所有java进程pid的命令2、jstack查看线程状态3、jconsole监控jvm的工具原创 2019-10-09 11:27:10 · 235 阅读 · 0 评论 -
volatile关键字
线程安全(上)--彻底搞懂volatile关键字转载 2019-06-12 15:57:39 · 131 阅读 · 0 评论 -
IDEA main方法启动项目后控制台打印日志中文乱码?调用接口中文乱码?
终极解决方案:1、File-settings-Editor-File Encodings-Global Encodings设置为UTF-82、File-settings-Editor-File Encodings-Project Encodings设置为UTF-83、File-settings-Build,Execution,Deployment-Compiler-Java Com...原创 2019-06-25 17:49:50 · 2095 阅读 · 0 评论 -
类的加载和实例化过程
类的加载和实例化过程转载 2019-06-18 10:41:45 · 130 阅读 · 0 评论 -
Servlet学习笔记
Servlet基础 先介绍JSP页面的运行原理:当用户请求一个JSP页面时,Tomcat服务器自动生成Java文件、编译Java文件,并用编译得到的字节码文件在服务器端创建一个对象来响应用户的请求。JSP的根基是Servlet技术,该技术的核心就是在服务器端创建能响应用户请求的对象,被创建的对象习惯上称作一个servlet对象。JSP技术不是Java Servlet技术的全部,只是Servle原创 2017-05-07 09:36:56 · 418 阅读 · 0 评论 -
hashMap的容量(capacity)为什么必须是是2的n次方
https://blog.csdn.net/qq_44933374/article/details/98469424转载 2019-10-10 16:33:00 · 249 阅读 · 0 评论 -
HashMap初始化集合大小的算法
static final int tableSizeFor(int cap) { int n = cap - 1; n |= n >>> 1; n |= n >>> 2; n |= n >>> 4; n |= n >>> 8; n...原创 2019-10-09 14:54:08 · 184 阅读 · 0 评论 -
Spring @Async注解的使用
https://www.cnblogs.com/moxiaotao/p/9415304.html實現異步調用原创 2019-09-17 22:33:59 · 185 阅读 · 0 评论 -
idea springboot thymleaf html无法显示静态资源图片
网上很多解决方案都不行的话,考虑一下idea的静态资源文件夹路径是不是对的图一怎么变为图二呢,原创 2019-09-15 12:06:36 · 2959 阅读 · 0 评论 -
freemarker如何读取jar包内的模板文件
修改freemarker的配置属性// configuration.setDirectoryForTemplateLoading(file); 此行配置不要了configuration.setClassForTemplateLoading(this.getClass(), "填你的resource下的路径,比如/ftl");configuration.setTemplateLoader(...原创 2019-08-28 20:44:56 · 4023 阅读 · 3 评论 -
如何读取Jar包内的文件及文件夹
给出getFile的三种方式1、从外部目录读取2、从jar包内读取3、从classpath读取1和3都属于规范读取,即可以通过标准文件读取协议读取,而2是java特有的,必须得用类加载器读取public File getFile(String path) throws Exception { File file = null; try { ...原创 2019-08-28 20:41:46 · 827 阅读 · 0 评论 -
Java线程状态预览
Java线程有五个状态:就绪(刚创建的时候),运行中(RUNNING),限时等待中(TIMED_WAITING),等待中(WAITING),阻塞(BLOCKED)以下代码模拟线程的各个情况(针对TIMED_WAITING,WAITING和BLOCKED)public class ThreadStatusDemo { public static void main(Strin...原创 2019-08-22 15:02:00 · 172 阅读 · 0 评论 -
NIO和BIO
https://www.jianshu.com/p/ef418ccf2f7d转载 2019-07-24 09:48:32 · 112 阅读 · 0 评论 -
BIO多线程编程
package com.dashuf.caes.job.batch;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java...原创 2019-07-19 11:07:01 · 220 阅读 · 0 评论 -
Object的 wait 和 notify 和 notifyAll 方法
这三个方法用于线程同步方法内:1、wait可以让当前线程释放持有的锁,并让线程处于wait状态2、notify随机唤醒之前持有该锁对象的处于wait状态的线程,让其加入锁的竞争(不会马上获得锁)3、notifyAll唤醒所有的之前持有该锁对象的处于wait状态的线程,让其加入锁的竞争(不会马上获得锁)所谓唤醒线程,另一种解释可以说是将线程由等待池移动到锁池,notifyAll调用...原创 2019-06-12 15:35:27 · 159 阅读 · 0 评论