![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java基础
Java基础
编程周记
这个作者很懒,什么都没留下…
展开
-
String长度和mysql、oracle 的varchar长度对比
Oracle中的varchar2,指的是字节长度,一个中文字符,utf-8下占3个字节,gbk下占2个字节。Java String length() 表示字符数,即char的数量,可以是世界上任何文字。postgresql varchar(6) 可以存6个汉字。String length() == 6 可以存6个汉字。mysql varchar(6) 可以存6个汉字。oracle varchar2(6) 可以存3个汉字。原创 2022-11-16 09:32:40 · 2437 阅读 · 0 评论 -
反射常见实例改进Class.forName耗时问题
结论: Class.forName耗时远大于 newInstance。间隔:235毫秒 --- Class.forName。间隔:26毫秒 --newInstance。改进: class放入缓存。测试反射创建实例耗时。原创 2022-08-23 15:29:11 · 565 阅读 · 0 评论 -
Java开发多年写过的BUG都在这了!!!(2022.8更新)
10. Arrays.asList()转化的list,不能增删,java.lang.UnsupportedOperationException。由于add 和addAll方法添加的是对象的引用,因此,如果对象发生改变,那么list也会改变。9. 重复迭代器移除元素报错,大坑,推荐 list.stream().filter。11. List,对象属性值改变,list中的对象也改变。3. String 与Long 用equals判断相等。4.Integer 用==判断相等。7. list空指针。原创 2022-08-20 23:15:34 · 796 阅读 · 0 评论 -
图书馆管理系统(springboot+thymeleaf+jquery+ajax+bootstrap)
图书馆管理系统(springboot+thymeleaf+jquery+ajax+bootstrap)不同用户角色,登录后有不同的菜单权限普通学生:可以借书、还书管理员:新增图书、修改图书、新增用户、角色等。原创 2022-08-07 22:36:18 · 622 阅读 · 2 评论 -
列表页面实现是几种方式(前后端)
这种方式呢就是前后台不分离,table数据是通过theymeleaf来显示,后台model赋值。更新和保存通过ajax请求后台,form方式提交。原创 2022-08-07 22:26:50 · 683 阅读 · 0 评论 -
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance o
213123原创 2022-06-28 16:44:19 · 4098 阅读 · 0 评论 -
Java月份间隔
推荐:取出天数间隔,直接判断 >=30天就是间隔1个月原创 2022-06-22 15:07:24 · 962 阅读 · 0 评论 -
log4j:WARN No such property [zipPermission] in org.apache.log4j.RollingFileAppender.
log4j:WARN No such property [zipPermission] in org.apache.log4j.RollingFileAppender.log4j:WARN No such property [logPermission] in org.apache.log4j.RollingFileAppender.pom.xml使用打印:resource目录下加个log4j.properties原创 2022-06-20 16:07:37 · 1456 阅读 · 0 评论 -
SPI ServiceLoader.load()不生效
1.首先检查路径resources路径下的META-INF/services2.检查services下文件名是不是接口全称com.view.IBuilder3.接口文件里配置了实现类路径了吗?com.view.menu.EditMenucom.view.menu.AboutMenu4.工程名字问题如果工程的名字跟maven 的pom文件里的groupId不一致,也是不行的我就是工程的名字目录,是my-proj,但是pom.xml里面的groupId没改成my-proj原创 2022-04-20 16:48:48 · 1766 阅读 · 0 评论 -
关于substring的截取位置的讲解
不多说 System.out.println("abcd".substring(0, 2));// ab System.out.println("abcd".substring(1, 2));// b看源码,第一个参数是起始位置a---》0b--》1以此类推第二个参数和第一个参数共同决定长度"abcd".substring(0, 2) ----》长度是 2-0=2,从0的位置也就是a,长度是2位----》最后输出ab"abcd".substring(1,原创 2022-04-01 14:46:23 · 7407 阅读 · 0 评论 -
切割的神,list分割成若干份
有这样一个list,需要切割成5份 List<Integer> list = new ArrayList<>(); for (int i=0;i<21;i++) { list.add(i+1); }首先看看数字怎么切分 int size = 21; int stepCout = 5;//份数 int stepSize = size/stepCout;//每份分多原创 2022-01-14 14:57:18 · 661 阅读 · 0 评论 -
java模拟http接口,postman/浏览器访问
浏览器访问: http://127.0.0.1:8080package com;import java.io.*;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.TimeUnit;/*TCP/IP:传输层协议,无法识别HTTP:应用层协议,可识别。应用层协议还有 FTP、TELNETWEB:以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上soc..原创 2022-01-05 22:47:09 · 3144 阅读 · 0 评论 -
从Java编译到类执行的过程分析(字节码、JVM、类加载、类执行顺序、构造块有必要存在吗?)
一、java文件是不能执行的,计算机只识别机器语言(二进制)所以必须把他转换成机器可以识别的机器语言。1.首先编译器将java文件编译成字节码文件,也就是.class文件,但这个class文件也不能直接被机器识别。2.这就就是java虚拟机(JVM )的作用,jvm通过解释字节码,将class文件逐条翻译成机器指令。3.逐条解释效率不高,因此,引入了JIT即时编译技术,JVM发现热点代码(执行频繁的代码块),把热点代码翻译成机器码并缓存起来,以便使用。二、java编译成cla...原创 2021-12-13 21:48:05 · 435 阅读 · 0 评论 -
测试找到正则匹配内容的Java方法
测试找到正则匹配内容的Java方法:public void testZZ(String regex,String targetStr){ Pattern pattern = Pattern.compile(regex); Matcher m = pattern.matcher(targetStr); while (m.find()) { for (int i=0;i< m.groupCount();i++) { System.out原创 2021-11-30 12:00:00 · 106 阅读 · 0 评论 -
替换“字符串中尖括号内容”的3种方法
目标字符串:发布(<span class="aaa">企业</span>类)-关于 <span class="bbb">某某某</span>的通知方式一:用substring傻瓜式替换 String str1 = "<span class=\"aaa\">"; String str2 = "</span>"; String str3 = "<span class=\"bbb\">"; Strin原创 2021-11-27 08:30:00 · 1241 阅读 · 0 评论 -
Variable ‘err‘ is accessed from within inner class, needs to be final or effectively final
内部类调用外部变量,需要是final类型 String err=""; final String[] errorMsg = new String[50]; invoker.setOutputHandler(new InvocationOutputHandler() { @Override public void consumeLine(String s) throws IOException {原创 2021-11-23 16:33:22 · 1777 阅读 · 0 评论 -
怎么获取map值才不那么low,获取map参数的三种方式
获取map参数的三种方式1.第三方工具common-collections-3.2.2String name = MapUtils.getString(params, "name");public static String getString(final Map map, final Object key) { if (map != null) { Object answer = map.get(key); if (answer != nul原创 2021-11-19 15:31:50 · 745 阅读 · 0 评论 -
引用与回收
List<Bean> list = new ArrayList<>();list.add(bean);bean = null;System.gc();请问list中的bean打印出来是什么? 答:是一个bean对象正常不会这样写,一直有疑问,为什么 list里面的东西还在,bean不是设置为null了吗,并且GC了解释:bean只是一个栈中的变量,记录的是一个堆中的对象地址,bean=null; 只是把 栈中的变量地址置为null,堆中的对象仍然存在。...原创 2021-04-20 16:25:02 · 126 阅读 · 0 评论 -
(Java基础、Java集合、JVM、多线程、微服务、分布式、Spring、SQL、linux、Redis、各种解决方案)思维导图/学习路线
本人工作多年,准备面试的时候,总结关键知识点,学习路线,有需要可以关注公众号,回复“导图”获取,共同学习进步!原创 2021-04-03 14:05:19 · 88 阅读 · 0 评论 -
xml按照节点排序
xml按照节点排序package swing;import java.io.IOException;import java.util.ArrayList;import java.util.Comparator;import java.util.Iterator;import java.util.List;import java.util.Map;import java.uti...原创 2019-04-25 20:08:35 · 1385 阅读 · 0 评论 -
xml格式化
import java.io.IOException;import java.io.StringReader;import java.io.StringWriter;import java.io.Writer;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory...原创 2019-04-25 19:57:50 · 1003 阅读 · 0 评论 -
java比较两个乱序xml
比较两个xml,如果顺序是一样的很好比对,用比对工具Beyond Compare 就可以,结果一目了然。但是如果是乱序的呢,那整个文档都是红色的。我知道有人用Python可以轻松写出这样的比对代码。但是Java就鲜有这样的资料,我是没找到。关于这个比对,我思考了很久,也挣扎了很久,今天终于是完成它的雏形。关键是思路,我一直没有想出好的办法去实现他,我也一直没动手,我知道不动手是写不出程序的,...原创 2019-04-04 15:34:49 · 1535 阅读 · 1 评论 -
设计模式(一)单例模式
饿汉:类加载时就初始化 private static DruidConnection instance = new DruidConnection(); public static DruidConnection getInstace2() { return instance; }懒汉:使用时才加载private static DruidConnection instance = null;public static DruidConnection .原创 2021-03-07 21:56:14 · 94 阅读 · 0 评论 -
Java获取时间间隔的两种方法
方法一:java.util.Date long s = new Date().getTime(); long e = new Date().getTime(); System.out.println((e-s)/1000);//单位秒方法二:System.currentTimeMillis()long s = System.currentTimeMillis();long e = System.currentTimeMillis();System.out.println((e-s.原创 2021-03-09 12:20:24 · 2759 阅读 · 0 评论 -
javac编译问题
编译条件待编译的类目录:C:\work\workspace\my\my-utils\src\main\java\com\my\jvm\processorcd C:\work\workspace\my\my-utils\src\main\java\com\my\jvm\processor1.中文乱码javacNameChecker.java改成:javac -encoding utf-8 NameChecker.java2.引用其他类的时候,报找不到符号(1)javac ...原创 2021-02-04 19:27:02 · 1149 阅读 · 0 评论 -
Inconvertible types; cannot cast ‘int‘ to ‘K‘
Inconvertible types; cannot cast 'int' to 'public static <K,V> Map<K, V> newMapT(V... objects) { Map<K, V> map = new HashMap<>(); for (V object : objects) { map.put((K)1, object); } return map;}解决方法:原创 2021-01-22 10:28:06 · 1960 阅读 · 0 评论 -
Java知识点大纲(持续更新2021.2.2)
#Java学习知识点大纲# #Java开发学习路线#涉及模块:基础部分、spring、并发编程、redis个人工作中整理的大纲,为了看起来不乱,答案大家可以自行百度。(--------------------------------------以下是基础部分)==和equal的区别? &&和||的优先级 &和|的巧妙使用 Integer-127~128内外判断相等 Integer最大值+1会发生什么 两个float相减会丢失精度 new ...原创 2021-01-21 22:30:49 · 143 阅读 · 2 评论 -
static和volatile的原理及区别,看这篇就够了
static表示变量在方法区中,所有线程共享。JVM内存结构,把内存分为 堆、栈、方法区、本地方法栈和程序计数器。其中堆和栈被所有线程共享,在内存模型中被成为主内存,而栈、程序计数器属于线程私有,在内存模型中被成为工作内存。总结JVM内存= 堆+栈+方法区+本地方法栈+程序计数器 主内存 = 堆+方法区 (所有线程共享)工作内存 = 栈+程序计数器 (线程私有)前面说到static在方法区中,那有两个线程,一个去写,一个去读,是不是就能马上读到最新的值呢...原创 2020-09-06 12:00:16 · 4792 阅读 · 5 评论 -
linux下执行启动jar
#JVM启动参数JAVA_OPTS=" -Xms${MIN_MEMORY_SIZE} -Xmx${MAX_MEMORY_SIZE} -XX:PermSize=${MIN_PERM_SIZE} -XX:MaxPermSize=${MAX_PERM_SIZE} "#用户自定义启动参数JAVA_PARAM="-Dmyparam=1"#引用的jar包LIB="/home/a/lib/*:/home/a/lib2/*"#指定main对应的类CLASS_MAIN="com.a.MyMain"#引用其他.原创 2020-06-02 14:42:57 · 303 阅读 · 0 评论 -
java写文件里的换行符 在windows和linux下通用的
java文件中换行符 在windows和linux下通用的sb.append("\r\n");不是"\n\r"也不是String str = System.getProperty("line.separator");//linux下无效也不是\n原创 2020-05-11 14:49:56 · 2319 阅读 · 0 评论 -
程序员,你的知识技能保值吗?
作为一名程序员,不可能永远保持技术巅峰,你会发现很多架构师到后期基本不会写代码了。当然,让他们再熟悉一个星期,还是会写,但是跟组内巅峰期的程序员还是有差距。其实不仅是架构师,就是一直在编程的程序员也有需要翻“字典”的时候,因此,有没有什么办法可以让技术能够更好的沉淀,不至于今天学明天忘呢。你会发现几个月前,你刚复习了一下SpringIOC的概念,现在又忘了,又要重新去看文章看博客。...原创 2020-04-20 19:56:58 · 207 阅读 · 0 评论 -
两个List赋值的4种方法
两个List赋值的4种方法list赋值的4种方法,你知道几种呢?直接赋值,会改变原List的内容。List<Integer> list = new ArrayList<>();list.add(1);List<Integer>list2=list;list2.add(2);//list =[1,2]--list被改变了。方法一...原创 2020-04-20 19:25:26 · 9151 阅读 · 0 评论 -
说说计算机是怎么认识汉字的
现在人电脑用多了,就知道输入法一输,汉字就打在电脑屏幕上了,至于为什么电脑能识别就不懂了。第一阶段:通俗来讲,计算机是机器,不懂我们说的汉字是什么,机器只认识0和1,也就是说机器语言是由0和1组成的二进制数据。那现在好了,总不能输入一个汉字,要输入一大串010100101来表示吧?不得累死。第二阶段:后来,规定了比特单位,1个0或者1表示1个比特。那要写多少个0和1表示...原创 2020-04-19 14:48:35 · 2329 阅读 · 0 评论 -
IO关系学习路线全在这了(持续更新20200516)
InputStream、OutStream、FilterInputStream、FilterOutputStream、FileReader、BufferedReader、InputStreamReader首先,字节输入输出流InputStream OutStream,我觉得还是不够!!比特、字节、字符、编码的概念位/比特(bit)。是计算机数据存储的最小单位。每个二进制数字0...原创 2020-04-19 14:47:10 · 232 阅读 · 0 评论 -
Map接口实现类总结
一、场景选择TreeMap和HashMap选择排序:排序的时候用TreeMap,其他用HashMap。为什么后者性能更好?个人理解,排序需要牺牲性能,所以一般不排序都用后者。LinkedHashMap和HashMap选择FIFO:插入迭代顺序一致用LinkedHashMap,其他用HashMapLinkedHashMap 继承HashMap底层链表结构,插入顺序与迭代顺序一...原创 2020-04-05 14:18:42 · 262 阅读 · 0 评论 -
Java和Oracle的差异点
oracle java 保留两位小数 select trunc(1.23856789,2) from dual round(m,n) 可以四舍五入 trunc(m,n) 直接丢弃,不四舍五入 String.format("%.2f",41.6667) 可以四舍五入 日期格式 不区分大小写 12小时yyyymmddhhmi...原创 2020-03-21 11:01:31 · 192 阅读 · 0 评论 -
代码开发手册
代码格式Tab用4个空格代替,Idea可以设置常量定义public static final String YES="yes";1.long 或者Long 初始赋值使用大写的L ,Long a = 2L;2.不用把所有常量放在一个类里,不便于理解和维护public static final String YES="yes";OOP规约1.避免通过一个类的对象引用...原创 2020-03-04 23:42:32 · 195 阅读 · 0 评论 -
正则表达式笔记
主要规则:. 匹配任何字符。^ 定义了以什么开头。\d+ 匹配一个或多个数字。由于\是特殊字符,因此写成"\\d+"。? 匹配括号内的内容0次或多次。 "do(es)?" 匹配 do 或does\. 匹配.* 匹配0次或n次。+ 匹配1次或n次。{n} 正好匹配n次。{n,} 至少匹配n次。{n,m} 至少n次...原创 2019-03-26 21:45:20 · 127 阅读 · 0 评论 -
关于Integer、int、String的一些方法
关于Integer、int、String的一些方法1.Integer的parseInt 和 valueOf。Integer静态内存存储-128~127(1)返回类型parseInt 返回的是int。valueOf 返回的是Integer(2)判断相等int 用 ==Integer 用 equals//trueSystem.out.println(Integer.v...原创 2019-04-06 16:31:04 · 143 阅读 · 0 评论 -
关于list的那些坑,你踩过吗?
易错点:list遍历删除、Arrays.asList()的坑、list对象内容改变、ListMap。一、遍历1.foreach 循环for(String s : list){ //foreach}本质是迭代器:for(Iterator<String> it=list.iterator();it.hasNext();){ String s = it....原创 2019-04-07 11:31:58 · 178 阅读 · 0 评论