![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
黑小帅
这个作者很懒,什么都没留下…
展开
-
对象列表,JSON转成excel表工具类
最近做一个功能需要将数据库的数据转换成excel,突发奇想,做一个工具类,以后遇到对象列表转换成exce以及json转换成excel都可以直接使用。原创 2023-01-19 17:06:36 · 1786 阅读 · 0 评论 -
java二进制操作工具类
目前完成的功能有:支持整型,长整型的二进制输出显示支持两个整形;长整型拼接成一个长整型(可用于两个id生成另外一个唯一的id)原创 2022-08-17 15:20:24 · 825 阅读 · 0 评论 -
列表与树的处理
最近做一个功能需要将数据库的数据转换成树结构,可以转换成树的数据往往数据库里的表字段含有parent_id这种代表关系,突发奇想,做一个泛型的树工具类,以后遇到这种结构都可以直接转换成树使用。原创 2022-04-25 16:39:22 · 717 阅读 · 0 评论 -
安装jdk,配置环境变量
安装jdk,配置环境变量原创 2022-04-19 14:49:49 · 200 阅读 · 0 评论 -
Vector源码
Vector与ArrayList的底层都是由数组实现,必要时可扩容。都可以类比成一个大小可变的数组,因此可以根据下标查找值,非常高的效率。但是删除或者从中删除节点,需要对很多元素进行修改,效率不是很高。Vector与ArrayList不一样的地方就是Vector大多数的方法加有synchronized关键字,是线程安全的。原创 2021-12-27 19:11:14 · 658 阅读 · 0 评论 -
LinkedList源码阅读
LinkedList的底层是由链表实现,不需要扩容。根据下标查找值,要从头节点或尾节点迭代查找,效率较低。但是插入或者从中删除节点,不会像ArrayList有空间上的扩容和移动元素,效率较高。LinkedList线程不安全。原创 2021-12-21 19:20:03 · 244 阅读 · 0 评论 -
ArrayList源码解读
ArrayList的底层是由数组实现,必要时可通过扩容。可以类比ArrayList是一个大小可变的数组,因此可以根据下标查找值,非常高的效率。但是删除或者从中删除节点,需要对很多元素进行修改,效率不是很高。ArrayList线程不安全。原创 2021-12-17 18:27:49 · 110 阅读 · 0 评论 -
HashMap源码解读
HashMap源码解读HashMap属性://哈希表:可见HashMap底层是由链表数组实现的,实际上超过threshold,会转变成它的子类TreeNode(红黑树)transient Node<K,V>[] table;//<k,v>元素集合transient Set<Map.Entry<K,V>> entrySet;//hashMap元素个数transient int size;//修改数,遍历的时候作为判断是否在遍历时发生改变t原创 2021-12-14 19:10:42 · 175 阅读 · 0 评论 -
相同或相似类的对象之间的深拷贝和浅拷贝
相同或相似类的对象之间的深拷贝和浅拷贝重写clone()Person person = new Person("jack", new Address("chengdu"));Person clone = person.clone();@Data@AllArgsConstructor@NoArgsConstructorpublic class Person implements Cloneable { private String name; private Address a原创 2021-04-14 11:12:13 · 281 阅读 · 3 评论 -
Java如何对一个对象进行深拷贝?
Java如何对一个对象进行深拷贝?https://www.cnblogs.com/xinruyi/p/11537963.html出处 https://www.cnblogs.com/xinruyi转载 2021-04-08 17:05:51 · 66 阅读 · 0 评论 -
java数组三种初始化方式和list的六种赋值方式
java数组三种初始化方式 public static void main(String[] args) { //第一种数组初始化 Integer[] ints1 = {1,2,3}; //第二种数组初始化 Integer[] ints2 = new Integer[]{4,5,6}; //第三种数组初始化 Integer[] ints3 = new Integer[3]; for (int i原创 2021-01-24 22:08:18 · 3294 阅读 · 0 评论 -
java种switch语句使用枚举变量
java种switch语句使用枚举变量枚举类:public enum TestEnum { MAP_ONE("one","第一个map"), MAP_TWO("two","第一个map"), MAP_THREE("three","第一个map"), DEFAULT_MAP("","默认map"); public String key; public String value; TestEnum(String key, String value原创 2021-01-09 22:26:57 · 262 阅读 · 0 评论 -
Java操作符易错和易忽视的知识点
Java操作符易忽视的知识点1.赋值操作符“=”赋值时,其实对其赋值的时对象的引用,而不是对象本身。在修改对象后,所有引用该对象的值都将改变。方法的传参理同于赋值,下面用一个方法调用来展示: public static void main(String[] args) { test1(); } private static void test1() { Person zhangsan = new Person(); zhangs原创 2021-01-07 23:13:16 · 76 阅读 · 0 评论 -
对象的使用易忽略的知识点
对象的使用基本成员默认值若某类的某个成员时基本数据类型,即使没有初始化,也会给其默认值,上一篇以写出:https://editor.csdn.net/md/?articleId=111939116默认导包默认导入java.lang到所有的文件中,所以他的所有类都可以直接使用,文档链接:jdk官方文档、中文文档注释文档//todo P32文档注解标签//todo P34...原创 2021-01-02 23:09:36 · 68 阅读 · 0 评论 -
命令行和idea构建javadoc文档
javadoc构建文档源文件/** * 一切都是对象程序入口 * @author heixs * @version jdk1.8 * <h1>嵌入式标签测试</h1> */public class MainTest { /** * 程序入口 * @param args 命令行参数 */ public static void main(String[] args) { test1(args); }原创 2021-01-02 22:19:15 · 147 阅读 · 0 评论 -
对象的储存位置
对象的储存位置对象的储存到什么地方1)寄存器。 最快的储存区,不能直接控制,也不能在程序中感觉到寄存器存在的迹象2)堆栈。 位于通用RAM(随机访问存储器中),速度次之。创建程序时,Java系统必须知道对象的生命周期,以便移动指针,一般储存对象的引用,不储存对象。3)堆。 一种通用的内存池(也位于RAM区中),用于存放所有的Java对象。用堆进行储存分配和清理比在堆栈上储存更费时间(c++可以在堆栈直接创建对象)4)常量储存。 常量值通常直接存放在程序内部。5)非RAM储存。 储存持久化对象。诸原创 2020-12-29 23:17:49 · 1258 阅读 · 0 评论