![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
为月提笔_
这个作者很懒,什么都没留下…
展开
-
Java8新特性——Stream
什么是Stream?Stream(流)是一个来自数据源的元素队列并支持聚合操作元素是特定类型的对象,形成一个队列。 Java中的Stream并不会存储元素,而是按需计算。数据源 流的来源。 可以是集合,数组,I/O channel, 产生器generator 等。 聚合操作 类似SQL语句一样的操作, 比如filter, map, reduce, find, match, sorted等。和以前的Collection操作不同, Stream操作还有两个基础的特征:Pipelin转载 2021-02-24 14:30:16 · 193 阅读 · 0 评论 -
并发——ConcurrentHashMap
前言为什么会有ConcurrentHashMap?我们知道HashMap在单线程情况下么有问题,但是在多线程情况下,在put的时候,如果插入的元素超过了容量(由负载因子决定)的允许范围就会触发扩容操作,就是rehash。将旧数组的内容重新hash到的新的数组中,因为是多线程的环境中,存在着其他的线程也在进行put操作,如果哈希值相同,就出现了两个线程在同一个数组下用链表表示,造成闭环,从而导致get时出现死循环,所以HashMap线程不安全。HashMap死锁原因分析那再来说说HashTable,它是原创 2020-11-17 11:09:27 · 420 阅读 · 0 评论 -
Final修饰的String真的不能修改吗
通过反射可以修改public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException { final String rs = "aaaaaa"; Field value = rs.getClass().getDeclaredField("value"); value.setAccessible(true); char[] item原创 2021-01-24 10:48:52 · 635 阅读 · 1 评论 -
Java创建线程的几种方式
第一种:继承Thread首先继承Thread方法,重写Thread的run()方法在main()方法里创建一个MyThread对象,调用该对象的start()方法,start()方法会通过对系统底层的一系列操作,创建出一个相应的线程,与当前线程并发执行。如果直接调用run()方法,程序将执行完run()方法后才会执行main()方法中后面的代码,这样就是单线程执行而不是多线程并发执行了。public class MyThread extends Thread { @Override p原创 2021-01-23 09:15:53 · 180 阅读 · 0 评论 -
Java中各种数据结构的常用方法和遍历方式,用处
List????:ArrayList ArrayList<Integer> list = new ArrayList<>(); System.out.println("常用方法============"); list.clear();//清空ArrayList list.add(1);//添加元素 list.add(2); list.add(3); System.out.原创 2021-01-20 20:12:24 · 267 阅读 · 2 评论 -
Java基础--泛型(最全泛型总结)(泛型面试)
1,泛型是什么“泛型”意味着编写的代码可以被不同类型的对象所重用。泛型的提出是为了编写出重用性更好的代码。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。2,为什么引入泛型,为什么用泛型在没有引入泛型之间,如何想要实现一个通用的,可以处理不同类型的方法,我们需要使用Object类作为属相和方法参数,例如:class Generic{ private Object[] GData; public Generic(int capacity){ GData原创 2020-11-11 21:31:52 · 255 阅读 · 0 评论 -
Map的遍历方法
Entry: 键值对 对象。 在Map类设计是,提供了一个嵌套接口(static修饰的接口):Entry。Entry将键值对的对应关系封装成了对象,即键值对对象,这样我们在遍历Map集合时,就可以从每一个键值对(Entry)对象中获取对应的键与对应的值。Entry为什么是静态的? Entry是Map接口中提供的一个静态内部嵌套接口,修饰为静态可以通过类名调用。Map集合遍历键值对的方式: Set<Map.Entry<K,V>> entrySet();原创 2020-11-08 19:02:38 · 101 阅读 · 0 评论 -
枚举类型理解
1、为什么使用枚举?使用枚举的地方会有更强的类型约束,编译器帮我们检查入参类型,规避潜在风险!2、枚举的常用方法ordinal序数name名称valueof 根据字符串取枚举对象3、枚举的扩展在枚举类里面可以声明属性、构造函数、方法等!4、专用于枚举的集合类EnumSetEnumSet enumSet = EnumSet.of(UserState.DISABLE,UserState.NORMAL);System.out.println(enumSet.contains(UserState原创 2020-11-03 22:40:19 · 108 阅读 · 0 评论 -
Java--反射机制
一,什么是反射机制????:Java反射机制是在运行状态中,对任意一个类,都能够知道这个类的所有属性的方法;对任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。????:Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁。二,常用的反射类原创 2020-10-31 11:16:00 · 506 阅读 · 0 评论