Java SE
文章平均质量分 56
java 基础
Tom098
工作20年的IT老鸟,做过开发,也做过技术支持,丰富操作系统、网络等IT infurstructure 方面实战经验。精通Java/J2EE技术体系以及Linux下用户空间c编程。下一步该如何走? AI、大数据?
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java如何往List<? extends number>中加入元素?体会范型集合父子关系以及范型通配符的使用
以下来自一个stackoverflow的一个问答,写的很清楚。基本上就是子类集合的引用付给父类引用,如果父类的引用变量声明的是<? extends Parent>, 则父类引用变量只能对集合进行读操作,读出来的变量是Parent类型,这是因为不确定该父类引用变量指向的是什么类型的集合,可以是Child1,也可以Child2,如果生命一个元素Parent p1,然后要加入集合,就会出错。而如果父类变量声明的形式是<? super Child>,则通过该引用变量只能近些写操作,不原创 2022-02-24 11:10:46 · 2524 阅读 · 0 评论 -
LinkedHashMap介绍
LinkedHashMap继承自HashMap。可以实现有序的map,而hashmap是无序的。所谓有序就是指迭代的时候按照某种顺序迭代。比如插入顺序,或者最近访问顺序。而不是按照key或者value的大小值排序。其中默认是按插入顺序排序,也可以按照最近访问排序来遍历LinkedHashMap。 * <p>A special {@link #LinkedHashMap(int,float,boolean) constructor} is * provided to create a原创 2022-01-11 11:32:10 · 1150 阅读 · 0 评论 -
java HashMap, LinkedHashMap, TreeMap
HashMap 遍历时是无序的LinkedHashMap, 继承自Map和HashMap, 内部有一个链表,默认按照元素插入顺序保存,也可以在创建时,指定链表的元素按照元素的访问顺序排序。TreeMap, 底层是红黑树,按照插入元素的key的值排序。...原创 2021-12-30 11:13:49 · 468 阅读 · 0 评论 -
从普通类的角度理解java的enum类型,用自定义类来模拟实现enum类的功能
下边的测试代码参考<effective Java>, 总结如下:用enum关键字定义一个枚举类型,实际上也是定义一个类。只是这个类比较特殊,他有以下特点:1. 他定义了一组常量,而每个常量都是用enum定义的类(或其子类)的对象。2. 类中定义的常量就类似于我们自己定义的类的静态成员变量,只是其类型是他自己。3. 这个用enum定义的类可以有多个成员变量,但都必须是immutable的,也就是用final修饰。4. enum类的构造方法私有5. enum定以的类默认拥有p原创 2021-05-18 14:50:02 · 289 阅读 · 1 评论 -
Java 中什么时候需要重写hashCode()和equals()方法
在自定义类对象做为HashMap的key和HashSet的元素的时候,需要重写该类的hashCode()和equals()方法。原因如下:1. 重写equals方法很容易理解。在HashMap中,如果两个对象相等,那他们做为key值,通过调用HashMap的put()方法时,是会更新对应的value值的,是不会再增加一个新的key-value 键值对的。如果不重写equals()方法,默认的equals方法如果是继承自Object类,那定义如下: public boolean equal原创 2021-05-12 16:20:12 · 3259 阅读 · 0 评论 -
你真的理解java BIO/NIO的accept()方法了么?
介绍JDK的ServerSocket类的accept()方法之前,先介绍Linux操作系统的两个概念:1. FD(File descriptor):文件描述符。在Linux操作系统,一切接文件,比如硬件,内存,socket,等等都是文件。每个文件在打开时,都对应一个FD,就是一个正整数。操作系统维护一个FD table,这个表有两个重要的列,一个是FD,另一个就是该文件对应的inode指针,而inode里边包含了大量的文件信息, 比如文件在磁盘的位置,当前文件读取/写入的指针,大小,最后修改时间等.原创 2021-04-24 21:53:37 · 1717 阅读 · 0 评论 -
java中的char类型在表示中文时占几个字节
看了一些文章包括官方文档说法,都是说java的char类型是双字节长的,可是下边的测试结果怎么解释?我的JVM编译环境是UTF-8.https://www.cnblogs.com/softidea/p/10271219.htmlpackage generic.primitivetype;import org.junit.Test;/** * @Author: Tom * @Date: 2021年1月7日 下午4:17:23 * @Version: 1.0 * @Descriptio原创 2021-01-07 16:54:16 · 302 阅读 · 0 评论 -
Java Integer, Long等原始类型包装类的比较
在开发中,不小心将一些Bean的时Integer,Long类型的字段用==号来比较,导致错误。正确的比较方法是用equals()和compareTo()方法,或获取原始类型值再比较。package primitivewrapper;import org.junit.Test;/** * @Author: Tom * @Date: 2021年1月2日 下午2:07:27 * @Version: 1.0 * @Description: */public class Integer原创 2021-01-02 14:25:36 · 379 阅读 · 1 评论 -
JAVA设计模式之动态代理(java asistant, asm, cglib, JDK动态代理)
转发自:https://www.cnblogs.com/lfdingye/p/7717063.html转载 2019-08-07 15:25:21 · 236 阅读 · 0 评论 -
java 序列化
具体看相关文档,这里列出其中一点,就是当类实现Externalizable时,通过ObjectInputStream.readObject()创建对象时,会调用被序列化对象的无参构造函数。而实现Serializable的类,在调用ObjectInputStream.readObject()方法时,不会调用无参或有参构造方法。package io;import java.io.*;/** * @Author Tom * @Date 2020/12/11 17:36 * @Version 1原创 2020-12-11 22:20:40 · 225 阅读 · 0 评论 -
Java中的浮点数比较
这两篇写的挺好。浮点数不能用==判断是否相等,但是>或者<可以。https://blog.youkuaiyun.com/dodott/article/details/53410756https://www.cnblogs.com/zhloong/p/java-float-number-compare.html比如JDK中Float的compareTo方法是这样写的。 public static int compare(float f1, float f2) { if原创 2020-12-07 12:02:01 · 334 阅读 · 0 评论 -
利用stream流对collection求总和,最大值,最小值平均值
从文件中中读取学生成绩表,然后求每个学生成绩的平均值和总分数。每个学生的考试科目不相同。采用的用来存储数据的数据结构是HashMap<String,HashMap<String,Integer>>。外层HashMap的key是学生姓名,value是另外一个HashMap,用来保存成绩。这个用来保存成绩的HashMap,key是考试科目名称,value是考试成绩。package collection;import java.io.*;import java.util原创 2020-12-06 16:36:02 · 1169 阅读 · 0 评论 -
Java 正则表达式的转义方式
正则表达式语法在其他语言中,\\表示:我想要在正则表达式中插入一个普通的(字面上的)反斜杠,请不要给它任何特殊的意义。在 Java 中,\\表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。所以,在其他的语言中(如Perl),一个反斜杠\就足以具有转义的作用,而在 Java 中正则表达式中则需要有两个反斜杠才能被解析为其他语言中的转义作用。也可以简单的理解在 Java 的正则表达式中,两个\\代表其他语言中的一个\,这也就是为什么表示一位数字的正则表达式是\\d...原创 2020-06-26 10:03:05 · 1666 阅读 · 0 评论 -
String.matches() 与 Matcher.matches() 的区别
两者都可以实现正则表达式匹配,比如: public static boolean isNumber(String s){ Pattern pattern = Pattern.compile("^[-\\+]?[.\\d]*$"); return pattern.matcher(s).matches(); }和 public static boolean isNumber(String s){ return s.matches("原创 2020-06-25 22:45:11 · 2140 阅读 · 0 评论 -
理解、学习与使用 JAVA 中的 OPTIONAL
https://www.cnblogs.com/zhangboyu/p/7580262.html转载 2020-06-03 22:06:42 · 172 阅读 · 0 评论 -
【Java小技巧】避免过多的构造器参数
https://www.iteye.com/blog/joshuasabrina-1825457转载 2020-05-31 11:17:49 · 232 阅读 · 0 评论 -
java label的使用
https://blog.youkuaiyun.com/sinat_33585352/article/details/102568549转载 2020-05-29 17:56:17 · 949 阅读 · 0 评论 -
为什么JDBC DriverManager.getConnection()源码中会使用线程上下文类加载器
以下是个人理解:Application Server比如Tomcat, Weblogic, Websphere等会为每个部署的应用指定一个类加载器,为的是在加载每个应用的类时都从自己的目录中加载,这样即使不同的应用包(.war, .ear)有同名类,也不会冲突。由于每个应用中的servlet都有可能会使用原生jdbc来连接数据库,如果DriverManager.getConnection()中不指定线程上下文类加载器,也就是应用服务器为每个应用指定的类加载器,而是jvm默认的app类加载器,那么就有原创 2020-05-27 22:04:29 · 406 阅读 · 0 评论 -
详解内部类
https://www.cnblogs.com/chenssy/p/3388487.html转载 2020-05-22 20:46:13 · 183 阅读 · 0 评论 -
Java中的BigDecimal类你了解多少?
https://www.jianshu.com/p/c81edc59546c转载 2020-05-20 16:43:49 · 238 阅读 · 0 评论 -
深入理解Java中的Checked和Unchecked异常
具体见下边的文档。https://www.javatpoint.com/exception-handling-in-java异常分为两大类,Exception和Error(这里将Error也说为异常,可以有些不准确哦)。而Exeption又分为IOException,SQLException, ClassNotFoundException, RuntimeException等。其中RuntimeException又可以包含很多种类异常。具体结构层次见下图。从程序员需不需要在代码中处理的角度,原创 2020-05-20 11:15:48 · 1085 阅读 · 0 评论 -
Java中double转BigDecimal的注意事项
https://blog.youkuaiyun.com/lkforce/article/details/81564927转载 2020-05-19 15:54:29 · 250 阅读 · 0 评论 -
mybatis中的resultType
resultType是sql映射文件中定义返回值类型,返回值有基本类型,自定义对象类型,Map类型等。现总结一下再解释总结:resultType:1. 基本类型 :resultType=基本类型,真正返回的可以是单个基本类型,也可以是基本类型的list2. 自定义对象类型:resultType=对象类型,真正返回的可以是单个对象,也可以是对象的list3. Map类型 ...原创 2019-11-25 10:34:53 · 6037 阅读 · 0 评论 -
HashMap和LinkedHashMap的区别
原文地址:https://www.cnblogs.com/yuexzh/p/7486264.htmlHashMap和LinkedHashMap的区别HashMap,LinkedHashMap,TreeMap都属于MapMap 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复。HashMap是一个最常用的Map,它根据键的HashCo...转载 2019-11-25 10:14:00 · 167 阅读 · 0 评论 -
java中的字符串
下边的文章写的很好https://www.cnblogs.com/Kidezyq/p/8040338.html原创 2019-11-10 13:31:15 · 149 阅读 · 0 评论 -
关于Java的引用变量
引用变量每天都在用,那你真的理解引用变量了么,那下边的程序是多少?如果答对了,就不用往下看了。package indi.tom.test.indi.tom;import java.util.Stack;/** * @Author Tom * @Date 2019/11/9 21:52 * @Version 1.0 * @Description */public class...原创 2019-11-11 11:24:32 · 823 阅读 · 0 评论 -
Java的子类、父类构造函数的调用关系
1. 子类构造函数可以显示调用父类构造函数,可以选择调用父类的缺省构造函数(无参构造函数),也可以调用父类的有参构造函数。2. 子类构造函数可以不显式调用父类构造函数,这时父类的缺省构造函数将会被调用,可以成为隐式调用。3. 总之,子类的构造函数必须得调用父类的构造函数。4. 类中可以不显示定义构造函数,默认有一个缺省的无参构造函数。5. 如果显示定义了有参构造函数,缺省的无参构造...原创 2019-11-08 22:49:28 · 933 阅读 · 0 评论 -
Java Colletction和Map有序无序的理解
之前对Java Colletction和Map有序无序的理解是,只要往 Colletction和Map对象中按照一定顺序添加数据,然后通过遍历,如果顺序根添加的顺序一致,那么就是有序的。后来在看treemap时,又说list是无序的,顿时有点懵。其实说有序无序, 有两种角度:1: 往集合中插入元素的顺序与遍历元素的顺序的关系;2: 往对象中插入元素否会根据元素的大小排序如果按照...原创 2019-11-01 22:42:11 · 694 阅读 · 0 评论 -
重新认识java 类的private 修饰符
一直以来,都以为自己理解了java class的public, private, protect,default关键字。直到看到String类源码的compareTo方法:public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /**...原创 2019-11-01 22:21:35 · 273 阅读 · 0 评论
分享