
java学习笔记
四维空间1992
前进
展开
-
字符串String的长度限制
1. java的字符串String,底层是char[],其长度限制是int类型,2^32-1, 即2147483647, 所以字符串的最大内存应该是4GB;2. 字符串如果直接放入常量池中,会有限制: 2^16-1-1 = 65534转载String常量池放入的定义方法:https://blog.youkuaiyun.com/chen1280436393/article/details/51768609String放入常量池中,长度有限制,String类型的常量池项是CONSTANT_String,其中..原创 2021-07-06 01:02:46 · 2499 阅读 · 1 评论 -
关于String的split方法和contains方法的使用:竖划线 |
java的String类有split方法和contains方法: public String[] split(String regex) { return split(regex, 0); } public boolean contains(CharSequence s) { return indexOf(s.toString()) > -1; }有些代码需要对于特殊的字符串进行处理,比如包含竖线的字符串: "上海|hsangh原创 2021-07-06 00:20:26 · 1434 阅读 · 0 评论 -
集合的简单分析浅见
集合collection,分为list与set,其中,,list有三个子类:ArrayList,LinkedList,Vector;(一)List是存取有序的集合,不是大小有序,想要排序可以使用Coolections.sort(list),list中可以存入null值可以存入重复值; 1.Vector是基于数组的list,是线程同步的,其中的方法使用了Synchronized; 2原创 2018-03-10 14:31:44 · 211 阅读 · 0 评论 -
Map merge方法
使用map结构时,针对已存在的元素增加,不存在则新增1. 冗余写法 Map<String, Integer> countMap3 = new HashMap<>(); if (countMap3.containsKey("张飞")) { countMap3.put("张飞", countMap3.get("张飞") + 1); }else{ countMap3.put("张飞",原创 2021-02-18 16:28:27 · 856 阅读 · 0 评论 -
java代码实现LRU淘汰策略
LRU: Least Recently Used,最近最少使用的淘汰策略;在redis中最常使用作为数据淘汰策略;1. 代码实现package com.test.wei.biz.lru;import java.util.ArrayList;import java.util.HashMap;import java.util.List;/** * 使用双向链表实现LRU过期数据淘汰策略 * * @author zhangshiwei * @since 2020年11月27日 下原创 2020-11-27 19:15:16 · 415 阅读 · 0 评论 -
Spring SPI机制实现自动装配 实现自定义Starter组件
一. springboot的自动装配1. @SpringBootApplication ---> @EnableAutoConfinguration ---> @Import(AutoConfigurationImportSelector.class)2.AutoConfigurationImportSelector类实现了DeferredImportSelector接口public class AutoConfigurationImportSelector impleme..原创 2020-09-21 11:48:11 · 1058 阅读 · 4 评论 -
Spring注解的发展和使用
一. spring注解1.X: 在xml文件配置<bean>1. 测试对象Demo1public class Demo1 {}2. xml文件配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan..原创 2020-09-17 14:16:07 · 166 阅读 · 0 评论 -
RPC远程过程调用(二) 自定义注解实现改造一的简洁开发
RPC远程过程调用(一)中实现的RPC调用orderService的接口方法还是很复杂,需要手动新建rpc代理服务端,然后才能获取到orderService; 现在通过自定义注解,实现注解简洁开发;原创 2020-09-16 17:33:16 · 1364 阅读 · 0 评论 -
关于枚举类Enum的使用
check-handler-deal-return,程序的处理;使用枚举类Enum可以更加便捷的完成检验和处理;没有使用枚举类之前,使用的是常量定义,在commonConstants中定义了很多想要使用的常量,然后在代码处理过程中,就是用了多个if-else if-else if-else ,代码繁琐,但是,使用了枚举类后,根据一个属性,直接获取其他相应的属性值,省略了所有的if else判断,并...原创 2018-06-26 10:57:19 · 1220 阅读 · 0 评论 -
break与continue在循环中的作用
循环中,break的作用,直接结束当前循环,调到外部代码;@Test public void breakAndContinueTest() { for (int i = 0; i < 6; i++) { if (i == 3) { break; } Sys...原创 2018-09-11 15:20:46 · 1988 阅读 · 0 评论 -
算法: java十种排序
冒泡排序,选择排序,插入排序,归并排序,快速排序,桶排序,计数排序,基数排序,希尔排序,堆排序,时间复杂度空间复杂度分析对比原创 2019-07-20 11:53:28 · 394 阅读 · 0 评论 -
截取字符串中特定前后缀中的字符集合
package com.yifenqi.common;import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * 字符串处理公用方法 * * @author xujiali */public class...原创 2018-08-27 18:46:41 · 1293 阅读 · 0 评论 -
字符串的处理:判断字符是否全为中文,判断是否含有中文字符,判断是否全为英文字符,判断是否含有英文字符,取出其中的中文字符,取出其中的英文字符
public class QimoSendMessageTest { @Test public void sendMessageTest22() { String[] strArray = { "阿瑟东", "werasdf", "微软add市大", "asd阿瑟东asder" }; for (String string : strArray) {...原创 2018-08-27 18:33:51 · 341 阅读 · 0 评论 -
java设计模式学习笔记5-单例模式
单例模式作为对象的创建模式,可以确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类;实现单例模式的三点要求:a.构造方法私有化;b.在类的内部创建静态对象并保存;c.提供一个获取单例对象的方法;1.饿汉式单例模式-空间换时间,对象在类加载时就已创建/** * 单例模式-饿汉式 */public class HungerSing...原创 2019-05-01 18:17:35 · 152 阅读 · 0 评论 -
springboot实现自定义注解
1.自定义注解:import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotat...原创 2019-10-08 21:52:01 · 362 阅读 · 0 评论 -
JSON与实体类的转换
引用jar包: com.alibaba.fastjson.JSONObject;json字符串转为实体类:Deptdept= JSONObject.parseObject(response, Dept.class);引用jar包: com.alibaba.fastjson.JSONArrayjson对象中的list集合取出转为实体类集合:List<Use...原创 2018-12-17 18:06:28 · 18232 阅读 · 2 评论 -
RPC 远程过程调用(一)
目的: 多个项目部署在不同服务器上,一个项目通过rpc调用另一个项目的接口服务一. order-api项目对外暴露接口,放在仓库中,给服务实现方和服务调用方依赖,最终服务调用方只能看见接口而看不见具体的实现1. 服务接口OrderServicepublic interface OrderService { String findOrderList(); String findOrderById();}2. 远程连接传递参数RpcRequestDto@Da...原创 2020-09-15 14:47:52 · 683 阅读 · 0 评论 -
Condition, BlockingQueue, CountDownLatch, Semaphore, CyclicBarrier
1.Condition接口具体的方法实现在AbstractQueuedSychronizer内部类ConditionObject中,condition等待队列: 单向链表,先进先出(FIFO),至少有一个节点,首节点不含元素,ConditionObject内部有firstWaiter与lastWaiter,单个元素就是AbstractQueuedSychronizer内部类Node,condition等待队列主要是使用nextWaiter属性;await()方法: (1)....原创 2020-09-02 17:32:51 · 239 阅读 · 0 评论 -
java求斐波那契数列的第n个值: 1、1、2、3、5、8、13、21、34
斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1,F(n)=F(n - 1)+F(n - 2)(n≥ 3,n∈ N*)1.1 使用递归方法/** * 使用递归方法求第n个斐波那契数列的值 *...原创 2020-07-31 18:04:31 · 7034 阅读 · 0 评论 -
java导出excel文件2
0. 使用的jar包: <dependency> <groupId>com.github.andyczy</groupId> <artifactId>java-excel-utils</artifactId> <version>4.0</version> </dependency>最终结果: 根据res原创 2020-05-09 10:17:15 · 208 阅读 · 0 评论 -
java导出excel文件1
1.controller/** * 条件下载账单信息excel * * @param orderCode 检索条件 * @param billDtStart 检索条件 * @param billDtEnd 检索条件 * @param state 检索条件 * @param corganCodes 检索条件 * @...原创 2020-04-22 09:42:38 · 187 阅读 · 0 评论 -
java学习笔记1:类的加载与卸载
1. java类加载使用卸载的生命阶段:加载-验证-准备-解析-初始化-使用-卸载2. 类加载的时机:(1).创建实例时;(2).调用类的静态方法;(3).访问类或接口的静态变量或为静态变量赋值;(4).初始化类的子类;(5).直接用java.exe命令运行某个类;3. 由jvm自带的类加载器所加载的类,在jvm的生命周期内,不会被卸载; hotspot ...原创 2019-10-08 22:12:56 · 258 阅读 · 0 评论