![](https://img-blog.csdnimg.cn/20210527140418154.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
文章平均质量分 59
Java基础相关知识
老司机张师傅
平平淡淡才是真
展开
-
【微服务实战之Docker容器】第六章-复杂安装(Mysql主从Redis集群)
hash(key)%集群个数来决定存储在哪台服务器上,这种方式的有点是简单,通过这种简单的方式实现数据的读写负载均衡,每台服务器都处理它固定的请求,但这样的缺点也很明显,就是我们进行扩容时不方便,集群个数会动态变化,或者某个机器宕机了,都会导致所有的数据都重新洗牌(计算公式的分母改变了)。多试几个,发现有的能成功,有的不能成功,这是因为hash槽存在,我们使用redis-cli -p 6381的方式只连上了单节点的redis,不能分配到该机器上的存储是会存储失败。原创 2024-07-18 09:17:25 · 916 阅读 · 0 评论 -
Java使用命令查看内存占用情况
通过以上步骤,你可以在jhat提供的Web页面中查看占用内存最多的类及其详细信息。如果想要更深入地分析内存泄漏或者其他内存问题,可以使用更专业的Java堆分析工具,如Eclipse Memory Analyzer(MAT)或VisualVM。查找列表中占用内存最多的类,并点击该类名,你将会看到该类的详细信息,包括实例数量、占用内存大小,以及它所引用的其他对象等。在使用jhat分析Java堆转储文件后,可以在其提供的Web页面中查看占用最多内存的类。上面命令会启动一个Web服务器并加载堆转储文件。原创 2023-07-25 17:38:56 · 1213 阅读 · 0 评论 -
Java中的深克隆与浅克隆
1、 浅克隆性能相比较new会有一些提高(很小),但是编码省了很多。2、深克隆第一种实现方式同1。3、深克隆的第二种实现方式在数据量多的情况下性能较差,但是当类熟悉特别多、对象占用空间特别大时会有较好效果,另外通过序列化可以将对象当前的形态以文件、IO流的方式保存下来,在需要时再进行加载转换,原创 2023-03-11 11:02:02 · 1477 阅读 · 0 评论 -
Log4j2配置将指定类的日志写入到指定文件中
<RollingFile name="RollingFileKafka" fileName="${LOG_PATH}/kafka.log" filePattern="${LOG_PATH}/$${date:yyyy-MM}/abc-%d{yyyy-MM-dd}.log.gz"> <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/&...原创 2022-01-17 18:23:18 · 2166 阅读 · 0 评论 -
Java将毫秒时长转换为带单位的时间(天,小时,分钟,秒)
// 毫秒时间戳转换为日、时、分、秒 public static String timeStampToDhms(long milliseconds) { long day = TimeUnit.MILLISECONDS.toDays(milliseconds); long hours = TimeUnit.MILLISECONDS.toHours(milliseconds) - TimeUnit.DAYS.toHours(TimeUnit.MILLISECO...原创 2021-11-26 14:12:17 · 8917 阅读 · 0 评论 -
Java高效两次遍历加载出树状结构菜单(算法复杂度O(2n))
网上找了一堆,都是说递归,递归是可以,但是如果层数过多响应会很慢,我们可以利用Java的引用传递的特性来两次遍历就加载出树状结构,引用传递是指: A里面引B对象(B里面有个C属性,但是这时是空的),给B对象添加C属性,然后通过A调用B也能调用到添加的C属性,这种现象产生的原因是Java中对象引用引用的是地址值,地址指向的B存储的地方,所以B改变后A通过地址找到B也跟着改变,有兴趣的小伙伴可以下去自查。话不多说,直接上代码:package com.example.demo.test;import ja原创 2021-07-06 16:18:15 · 479 阅读 · 0 评论 -
干货-深入理解Java虚拟机-3-虚拟机类加载机制
前言基础不牢,地动山摇,菜如老哥还经常巩固自己的基本功,你就更要努力学习了。最近博主在复习Java虚拟机,对Java虚拟机的理解又有了一个更深层次的理解,记录下一些笔记及重点摘要,让我们一起学习一下吧!现在用不上,不代表以后就能用上,一句话,学,就行了。学习JVM有什么意义和作用?1、学习JVM能更深入的理解Java这门语言,能理解Java语言底层的执行过程。2、学习JVM,为了项目上线后去排查一些程序log日志中无法呈现的问题,可以通过GC日志来排查项目问题以及进行调优。3、能够利用一些工具原创 2021-06-30 17:49:19 · 173 阅读 · 2 评论 -
Java实现冒泡排序和选择排序
冒泡排序:依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。冒牌排序是稳定排序法。代码如下: /** * 冒泡排序 * 依次比较相邻的两个元素,如果前边的元素大于后边的元素则交换 * 这样每次先排好的是最后一位 ...原创 2019-01-15 17:28:07 · 7694 阅读 · 10 评论 -
Java虚拟机需知:JVM的运行机制
JVM的启动流程:通过java+XXX或(javaw)命令启动java虚拟机;装载配置,会在当前的路径中寻找 JVM 的 config 配置文件;根据配置查找 jvm.dll 文件,这个文件就是 Java 虚拟机的主要实现;使用dll,初始化jvm,获得相关的接口;找到 main 方法执行;JVM的基本结构:PC寄存器:1. pc寄存器是线程私有的,在线程创建时创建;2....原创 2019-03-18 21:31:52 · 204 阅读 · 0 评论 -
HTTP基础知识
http 常见的状态码:302 found 重定向400 Bad Request //客户端请求有语法错误, 不能被服务器所理解401 Unauthorized //请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用403 Forbidden //服务器收到请求,但是拒绝提供服务404 Not Found //请求资源不存在, eg:输入了错误的 URL...原创 2019-03-03 15:56:33 · 90 阅读 · 0 评论 -
nutz项目(未使用maven管理)打包部署遇到的一些问题记录
前言: 在公司学习使用nutz框架开发,接到的第一个小任务是给公司内部使用的一个小系统做需求完善,由于业务不是太熟练,在项目部署时我就遇到了一些小问题,这里记录一下,与大家共享,也方便以后自己查看。本篇主要有以下几个问题的解决方案:eclipse项目导入idea传统web项目打包部署(没有被maven或其他工具管理),打包后发现classes文件夹下内容为空,导致无法编译nutz打包部署...原创 2019-08-12 14:55:31 · 796 阅读 · 1 评论 -
Java对象之深克隆和浅克隆
浅克隆: 只copy对象引用,不copy对象本身。即对象地址不变,仍然只存在一个对象。例如: User user1 = new User; User user2 = user1;这里引用类型对象地址不变,只是将user2的引用指向user1的地址。浅克隆代码示例:Bean:public class User { private Integer id; ...原创 2019-06-03 10:57:13 · 1495 阅读 · 1 评论 -
SpringMVC实现本服务器文件上传和跨服务器文件上传
项目结构:1. 创建maven工程,导入依赖pom.xml在这里插入代码片原创 2019-01-17 23:36:30 · 6749 阅读 · 37 评论 -
Spring中的AOP相关说明及使用
相关术语:Joinpoint(连接点):原创 2019-01-15 21:15:26 · 267 阅读 · 0 评论 -
Spring中AOP注解的使用说明及通知的执行顺序问题
步骤:1.环境搭建:项目结构 com |_ xiaozhang |_ service ...原创 2019-01-16 11:21:28 · 7647 阅读 · 0 评论 -
Spring5中常用注解介绍
将实体类存入Spring的IOC容器:@Component:用于创建对象的,作用于类。value:指定 bean 的 id。如果不指定 value 属性,默认 bean 的 id 是当前类的类名。首字母小写。@Controller: 一般用于表现层的注解。@Service: 一般用于业务层的注解。@Repository: 一般用于持久层的注解。@Bean作用:用于把当前方法的返回值作...原创 2019-01-16 11:26:04 · 3888 阅读 · 2 评论 -
SpringMVC常用注解
RequestMapping:作用: 用于建立请求路径与请求方法之间的关系;使用:类上:作用于类上相当于请求的第一级访问目录,不写就相当于根目录,写的话需要以/开头;方法上:第二级访问目录;属性:value: 用于指定请求的 URL。 它和 path 属性的作用是一样的;method:用于指定请求的方式;params:用于指定限制请求参数的条件。 它支持简单的表达式。 要求请求参数的...原创 2019-01-16 22:32:12 · 170 阅读 · 0 评论 -
MyBatis框架中动态语句实现 if 标签与 forearch标签
引言在我们进行多条件查询时,往往需要进行sql语句的拼接,在mybatis框架中,提供了两个标签用以拼接动态sql语句,分别是 if 判断 和 forach 循环标签。我们都知道在java中数据库的连接代价是高昂的,如果打开了多个连接没有释放会严重影响服务器的效率,严重时会造成宕机,因此我们在查询数据库时最好减少连接次数,多条件查询时使用 if 和 forach 标签可以动态的拼接sql语...原创 2019-01-22 20:22:04 · 1527 阅读 · 2 评论 -
ClassLoader的双亲委派机制
java 是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是:类加载器;.class 文件检验器;内置于java虚拟机的安全特性;安全管理器及java API;类的加载体系:java 程序中的 .java 文件编译完会生成 .class 文件,而 .class 文件就是通过被称为类加载器的 ClassLoader 加载的,ClassLo...原创 2019-03-18 22:09:11 · 660 阅读 · 0 评论 -
电脑意外重启,导致idea中各种环境强势报红....
电脑硬件跟不上打代码手速的道友们,在下送给各位一道真言:他强由他强,清风拂山岗。他横由他横,明月照大江。他自狠来他自恶,我自一口真气足!...原创 2019-06-06 17:55:50 · 1272 阅读 · 0 评论 -
lucene索引库的维护
lucene索引库的维护维护的方式这里我们要先解释两个名词:分词与索引分词:分词指的是我们索引库中所存储的关键字,通过索引我们可以从关键字找的文档中对应的内容;索引:指的是分词(也就是关键字)与文档内容的关联,我们可以将分词和文档看成两个组,而索引就相当于是两个组之间的连线;注意:我们对索引库进行维护时,并不会真正的对分词或者文档进行操作,而是对索引(也就是两者之间的关联)进行操作。...原创 2019-01-05 21:24:31 · 338 阅读 · 0 评论