![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 86
秋千水竹马道
秋千水 竹马道 一眼见你 万物不及
展开
-
java多线程
线程:程序内部的一条执行路径(比如说我们之前学的main方法就是一条单独的执行路线)单线程:程序中如果只有一条执行路径,那么这个程序就是单线程的程序。多线程:多线程是指从软硬件上实现多条执行流程的技术。原创 2023-03-15 14:18:14 · 366 阅读 · 0 评论 -
JVM篇之内存及GC
HotSpot VM把GC分代收集扩展至方法区, 即使用Java堆的永久代来实现方法区, 这样 HotSpot 的垃圾收集器就可以像管理 Java 堆一样管理这部分内存, 而不必为方法区开发专门的内存管理器(永久代的内存回收的主要目标是针对常量池的回收和类型的卸载, 因此收益一般很小)一块较小的内存空间, 是当前线程所执行的字节码的行号指示器,每条线程都要有一个独立的程序计数器,这类内存也称为“线程私有”的内存。正在执行 java 方法的话,计数器记录的是虚拟机字节码指令的地址(当前指令的地址)。原创 2023-03-10 15:39:49 · 1234 阅读 · 0 评论 -
JVM篇之类加载机制
双亲委派模型的工作流程是:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把请求委托给父加载器去完成,依次向上,因此,所有的类加载请求最终都应该被传递到顶层的启动类加载器中,只有当父加载器在它的搜索范围中没有找到所需的类时,即无法完成该加载,子加载器才会尝试自己去加载该类。验证阶段是非常重要的,但不是必须的,它对程序运行期没有影响,如果所引用的类经过反复验证,那么可以考虑采用 -Xverifynone参数来关闭大部分的类验证措施,以缩短虚拟机类加载的时间。原创 2023-03-10 11:43:44 · 397 阅读 · 0 评论 -
Stream流和不可变集合
什么是Stream流?在Java 8中,得益于Lambda所带来的函数式编程, 引入了一个全新的Stream流概念。目的:用于简化集合和数组操作的API。先得到集合或者数组的Stream流(就是一根传送带)把元素放上去然后就用这个Stream流简化的API来方便的操作元素。/**目标:初步体验Stream流的方便与快捷Collections . addAll(names , "张三丰" , "张无忌" , "周芷若" , "赵敏" , "张强");原创 2023-03-01 11:24:30 · 320 阅读 · 0 评论 -
Java Map集合体系(HashMap、LinkedHashMap、TreeMap、集合嵌套)
Map集合是一种双列集合,每个元素包含两个数据。Map集合的每个元素的格式:key=value(键值对元素),一一对应。Map集合也被称为“键值对集合”。Collection集合的格式: [元素1,元素2,元素3…]Map集合的完整格式:{key1=value1 , key2=value2 , key3=value3 , …}原创 2023-02-28 23:01:04 · 932 阅读 · 0 评论 -
Java Set系列集合(Collections集合工具类、可变参数)
Set系列集合特点无序:存取顺序不一致不重复:可以去除重复无索引:没有带索引的方法,所以不能使用普通for循环遍历,也不能通过索引来获取元素。Set集合实现类特点HashSet : 无序、不重复、无索引。LinkedHashSet:有序、不重复、无索引。TreeSet:排序、不重复、无索引。Set集合的功能上基本上与Collection的API一致。//一行经典代码︰无序 不重复 无索引 // set sets = new LinkedHashSet();原创 2023-02-28 19:09:03 · 944 阅读 · 0 评论 -
Java List系列(ArrayList、LinekdList 以及遍历中删除重复元素时发生的异常和解决办法)
List集合系列List系列集合特点List集合特有方法List集合的遍历方式ArrayList集合的底层原理分析源码LinkedList集合的底层原理集合的并发修改异常问题(删除重复元素时)原创 2023-02-28 15:15:34 · 619 阅读 · 0 评论 -
Java集合概述(Collection集合)
集合一、集合与数组二、集合类体系结构三、泛型(约定集合存储数据类型)四、Collection集合常用API五、Collection集合的遍历方式5.1 迭代器遍历5.2 增强for循环(for each):5.3 lambda表达式六、Collection集合存储自定义类型的对象七、常见数据结构原创 2023-02-28 12:23:53 · 527 阅读 · 0 评论 -
面向对象和面向过程,面向对象三大特性
假设一个类有多个直接父类,这些父类包含相同的方法时,子类在调用该方法或者重写时,就会产生疑惑。由于面向对象由封装,继承,多态性的特性,可以设计出耦合度低的系统,使系统更加灵活,更加易于维护。把构成问题的事物分解成一个个对象,描述这个对象在解决整个问题中的属性和行为,最后让每个对象去执行自己的行为。分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,最后在使用的时候一一调用即可。抽取多个类的一些共同属性及方法形成一个父类,让其余类继承这个父类,以实现代码的复用。缺点是没有面向对象易维护,易复用,易扩展。原创 2023-02-27 15:03:20 · 677 阅读 · 0 评论 -
Java static关键字(重新认识main方法)
因为static修饰的成员随着类的加载而加载, 优先于对象存在,所以在对象还没创建之前便可以直接访问,但是非静态成员则不行。test1()和test2()中,两个学生对象共享同一份school值。static 是静态的意思,可以修饰成员变量,也可以修饰成员方法。----私有该类的构造方法,目的:不让其他类再创建对象。工具类:不是描述事物的,而是帮我们完成一些事情。如果发现一个类所有方法,全是用static修饰。static修饰的成员变量,在内存中只有一份。例如:我们之前学的System类。原创 2023-02-26 15:15:27 · 398 阅读 · 0 评论 -
Java StringBuilder类(为什么更高效、常用方法、构造器)
public String toString():通过toString()就可以实现把StringBuilder转换为String。StringBuffer类使用方法与StringBuilder一样,但是对多线程更为安全,留一个小问题在这里,为什么更为安全。public StringBuilder(String str):创建一个字符串缓冲区, 并初始化好指定的参数内容。public StringBuilder():创建一个空的字符串缓冲区(容器),初始容量是16个字符,会自动扩容。原创 2023-02-25 23:40:21 · 613 阅读 · 0 评论 -
java String类(超详细,含常用方法、面试题,内存图,案例)
一、String类的特点二、String 类的常见构造方法三、String常见的面试题1.字符常量池2.String s = "abc"与String s = new String("abc")区别3.字符拼接+4.常量优化机制四、String常用方法比较字符串内容遍历字符串截取字符串替换字符串切割字符串原创 2023-02-25 14:54:27 · 607 阅读 · 0 评论 -
类与对象(this 关键字、构造器)
当解决一个问题的时候,面向对象会把事物抽象成对象的概念,就是说这个问题里面有哪些对象,然后给对象赋一些属性和方法,然后让每个对象去执行自己的方法,问题得到解决。可以看到打印test1对象和test1对象所调用对象中打印this的值一样,test2对象同理,但tes1对象和test2对象不一样。可见:this代表当前类对象的引用地址,也就是说通过this可以定位到当前对象。代表当前类对象的引用地址,也就是说通过this可以定位到当前对象。这是一个类,里面只有一个方法,用来打印this的值。原创 2023-02-23 21:52:15 · 457 阅读 · 0 评论 -
java数组基础详解
java数组基础详解一、引言二、声明数组三、初始化数组3.1静态初始化3.2动态初始化四、访问数组元素五、遍历数组六.分析数组内存七、数组常见异常7.1索引越界异常ArrayindexOutOfBoundsException7.2空指针异常NullPointerException原创 2023-02-22 23:55:45 · 677 阅读 · 0 评论