- 博客(26)
- 收藏
- 关注
原创 LINUX 查看机器配置
查看每个物理CPU内核个数:cat /proc/cpuinfo | grep 'process' | sort | uniq | wc -l。查看cpu个数:cat /proc/cpuinfo | grep 'physical id' | sort | uniq | wc -l。查FGC命令:必须用root权限查看:jstat -gcutil 9308 300 10。查看目录大小:du -sh /srv/data/restore/2021/10/*查看磁盘大小:lsblk -r| grep dis。
2023-07-18 16:56:49
564
原创 @Autowired 注入三种方式
问题在使用 IDEA 开发 SpringBoot 项目时,在Controller类中使用注解 @Autowired 注入一个依赖出现了警告提示。这是怎么回事?当我们鼠标停留在警告线处会出现提示:Field injection is not recommended(不建议Field注入)Spring Bean 的注入方式1.变量(Field)注@RestController@RequestMapping(value = "/test")public class ParkMapContr
2021-06-10 18:36:46
7325
原创 java 实现excel与txt 相互转化
pom依赖<dependency> <groupId>net.sourceforge.jexcelapi</groupId> <artifactId>jxl</artifactId> <version>2.6.8</version></dependency>样例import jxl.Cell;import jxl.Sheet;import jxl.Workbook;
2021-06-10 16:57:53
1455
原创 通过MongoDbFactory创建mongoTemplate
添加maven依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>配置文件#MongDB配置#MongoDB服务器连接地址spring.data.mongodb.host=192.168.XX
2021-06-09 17:06:57
3583
原创 pb文件byte[],pb的java对象,jsonString 之间转化
如何将.proto通过命令转换成.java文件首先上github下安装压缩包:https://github.com/google/protobuf/releases下载:protoc-3.11.4-win64.zip压缩包样例地址:https://blog.csdn.net/qq_33546747/article/details/532568911、先从网上下载protobuf的压缩包2、解压缩包到protobuf-tool文件,得到一个include文件夹和一个bin文件夹,bin里面包含pr
2021-05-26 17:50:40
1995
原创 Spring Boot 进行初始化资源的几种方式
一、@PostConstruct 注解完成资源初始化操作使用@PostConstruct注解完成资源初始化操作,但前提这些初始化操作不需要依赖于其它Spring beans 的初始划工作。测试样例: @PostConstruct public void init(){ System.out.println("@PostConstruct初始化"); } 注意:1.只有一个非静态方法能是使用次注解。2.被注解的方法不得有任何参数。3.被注解的方法返回值.
2021-05-21 11:24:20
358
原创 HashMap、Hashtable、ConcurrentHashMap的原理与区别
HashTable底层数组+链表实现,无论key还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap做了相关优化 初始size为11,扩容:newsize = olesize*2+1 计算index的方法:index = (hash & 0x7FFFFFFF) % tab.lengthHashMap底层数组+链表实现,可以存储null键和null值,线程不安全 初始size为16,扩容:new
2020-05-11 22:53:36
97
原创 Redis消息队列和KafKa优劣对比
Redis作为消息队列redis发布(pub)、订阅(sub)模式redis中的发布订阅由三部分组成。发布者(生产者)、通道(类似于topic)、订阅者(消费者),具体结构如下图: Redis的pub-sub模式非常像西式快餐一样,快产快消,全都是因为Redis是使用内存来做存取,所有你生产的消息立马会被消费者一次性全部处理掉,并且没有留下任何痕迹...
2020-04-23 18:01:19
1660
原创 java多线程的实现方式
java多线程的实现方式有3种,分别是继承Thread类、实现Runnable接口、实现Callable接口,其中前两种比较常用。第一种,通过继承Thread类创建线程类通过继承Thread类来创建并启动多线程的步骤如下:1、定义一个类继承Thread类,并重写Thread类的run()方法,run()方法的方法体就是线程要完成的任务,因此把run()称为线程的执行体;2、创建该类...
2020-04-22 18:17:50
145
原创 数据库中索引优缺点
定义概念 索引是为了加速对表中数据行的检索而创建的一种分散的存储结构。索引是针对表而建立的,它是由数据页面以外的索引页面组成的,每个索引页面中的行都会含有逻辑指针,以便加速检索物理数据。一旦建立了索引后,数据库中查询优化器使用索引来快速定位数据,然后就无需扫描表中给定查询的每一行了。优缺点优点1.大大加快数据的检索速度;2.创建唯一性索引,保证数据库表中每一行数据的...
2020-04-21 15:12:12
558
原创 Spring 为啥默认把bean设计成单例详解
熟悉Spring开发的朋友都知道Spring提供了5种作用域scope分别是singleton、prototype、request、session、global session。Bean简介:在Spring中,那些组成你应用程序的主体(backbone)及由SpringIoC容器所管理的对象,被称之为bean。简单地讲,bean就是由Spring容器初始化、装配及管理的对象,除...
2020-04-21 11:20:38
169
原创 Java中 ExecutorService四种线程池的使用
一、为什么使用线程池使用new Thread执行多个线程有如下一些问题:每次new Thread新建对象性能差。线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。缺乏更多功能,如定时执行、定期执行、线程中断。相比new Thread,Java提供的四种线程池的好处在于:重用存在的线程,减少对象创建、消亡的开销,性能佳。可有效控制最大并发...
2020-04-17 17:58:59
198
转载 Java8新特性-Lambda表达式
一,Java8新特性简介1,速度更快2,代码更少(增加了新的语法Lambda表达式)3,强大的Stream API4,便于并行5,最大化减少空指针异常Optional二,Lambda表达式1,为什么使用Lambda表达式Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。...
2020-04-14 18:35:07
109
原创 ThreadPoolExecutor 中的 shutdown() 、 shutdownNow() 、 awaitTermination() 的区别
shutdown()将线程池状态置为shutdown,并不会立即停止:停止接收外部submit的任务 内部正在跑的任务和队列里等待的任务,会执行完 等到第二步完成后,才真正停止shutdownNow()将线程池状态置为STOP。企图立即停止,事实上不一定:跟shutdown()一样,先停止接收外部提交的任务 忽略队列里等待的任务 尝试将正在跑的任务interrupt中断...
2020-04-14 18:08:19
370
原创 Class.forName与 ClassLoader 的区别
功能 在java中Class.forName()和ClassLoader都可以对类进行加载。定义 ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是“通过一个类的全限定名来获取描述此类的二进制字节流”,获取到二进制流后放到JVM中。 Class.forName()方法实际上也是调用的ClassLoader来实现的。 ...
2020-04-14 14:43:18
144
原创 Springboot get请求是参数过长问题解决
问题原因Springboot get请求是参数过长抛出异常:Request header is too large 的问题错误描述java.lang.IllegalArgumentException: Request header is too large解决方案请求头超过了tomcat的限值。本来post请求是没有参数大小限制,但是服务器有自己的默认大小。设置服...
2020-04-13 16:01:48
4592
转载 JVM内存模型程序计数器、虚拟机栈、本地方法栈、堆、方法区、运行时常量池、直接内存
java内存虚拟机主要分为程序计数器、java虚拟机栈、本地方法栈、java堆、方法区(方法区/运行时常量池)5大部分。1.程序计数器(Program Counter Register)他记录了程序执行的字节码的行号和指令,字节码解释器工作时就是通过改变计数器值来选择下一个要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等。由于java虚拟机多线程是通过线程轮流...
2020-04-13 14:28:43
193
转载 Spring的@Transactional注解控制事务有哪些不生效的场景?
技术博文越看越邪门,刚看就遇到相同问题,不看可能都不知道这是个问题,中心思想:多看“书”==写点总结和理解,如有不全,请补充讨论。1.数据库引擎不支持事务以MySQL为例,其MyISAM引擎是不支持事务操作的,InnoDB才是支持事务的引擎。从MySQL 5.5.5开始默认的存储引擎是:InnoDB,之前默认都是MyISAM。所以值得注意,底层引擎不支持事务再怎么搞都是白搭...
2020-04-13 10:28:17
218
原创 文件下载带宽计算
一,内存换算 1TB=1024GB; 1GB=1024MB; 1MB=1024KB; 1KB=1024Byte; 1Byte=8bit。 二,单位含义 MB的含义是“兆字节”,一般用作文件大小; Mb的含义是“兆比特”,一般用作网络传输速度; Byte的含义是“字节数”; bit的含义是“位数”; 三,带宽计...
2020-04-09 10:39:59
1010
原创 MB与Mb ,B与b的区别
MB与Mb的区别: MB的含义是“兆字节”,一般用作文件大小; Mb的含义是“兆比特”,一般用作网络传输速度; MB(全称MByte):计算机中的一种储存单位,读作“兆”;B与b的区别: Byte的含义是“字节数” bit的含义是“位数” 在计算机中每8位为一字节,也就是1Byte=8bit,是1:8的对应...
2020-04-09 10:28:14
12274
原创 Java 的get请求和post请求实现方式
一、介绍 使用Java实现GET和POST请求的方法常用的有两种:HTTPClient和HttpURLConnection。前者是第三方开源框架实现,对HTTP请求的封装很好,使用HTTPClient基本可以满足工作需要,其中HTTPClient3.1是org.apache.commons.httpclient下操作远程url的工具包,HTTPClient4.5.5是org.apache.http...
2020-04-08 10:44:27
278
翻译 string,stringBuffer,stringBuilder的区别
1,String类的内容一旦声明后是不可改变的,改变的只是其内存的指向,而StringBuffer类的对象内容是可以改变的。2,对于StringBuffer,不能像String那样直接通过赋值的方式完成对象实例化,必须通过构造方法的方式完成。3,StringBuffer的在进行字符串处理时,不生成新的对象,在内存使用上要优于串类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入...
2020-04-01 14:33:00
77
原创 Java读取二进制或文本文件的方法
1.读取二进制文件读取二进制文件,并存入byte数组,如算法训练模型的二进制模型。public byte[] readFromByteFile(String pathname) throws IOException{ File filename = new File(pathname); BufferedInputStream in = new BufferedInputSt...
2020-03-27 15:54:36
302
原创 设计模式——单例模式(七种实现方法)
定义:单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。换而言之,保证一个类仅有一个实例,并提供一个访问它的全局访问点。注意:1、...
2019-08-19 16:11:47
126
原创 sonar代码扫描排除不必要文件
在pom.xml文件中加上<sonar.exclusions>XXX</sonar.exclusions>标签,如下排除类型:文件和文件夹文件:**/*Application.java,**/*HttpUtil.java文件夹:**/pojo/*,**/bo/*注意:多个文件或文件夹之间用逗号隔开可以使用一下通配符? :匹配单个字...
2019-07-05 16:08:39
10604
原创 JDK、JRE、JVM有什么区别?有什么关系?
JDK:Java开发工具包(Java Development Kit)JDK它是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。如图:JRE:J...
2019-07-04 10:56:35
101
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人