![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
文章平均质量分 59
Array_new
这个作者很懒,什么都没留下…
展开
-
synchronized理解
(1)FixedThreadPool和SingleThreadPool 这两个工厂方法所创建的线程池,工作队列(任务排队的队列) 的长度都为Integer.MAX_VALUE,可能会堆积大量的任务,从而导致 OOM(即耗尽内存资源)。固定数量的线程池的线程数量能比较稳定的保证一个数,避免频繁的回收线程和创建线程,固适用于处理CPU密集型任务,在CPU被工作线程长时间占用时,能确保尽可能少的分配线程。抛弃最老任务策略,也就是说如果队列满了,就会将最早进入队 列的任务抛弃,从队列中腾出空间,再尝试加入队列。原创 2023-03-12 16:10:33 · 57 阅读 · 0 评论 -
初尝并行编程
(1)FixedThreadPool和SingleThreadPool 这两个工厂方法所创建的线程池,工作队列(任务排队的队列) 的长度都为Integer.MAX_VALUE,可能会堆积大量的任务,从而导致 OOM(即耗尽内存资源)。固定数量的线程池的线程数量能比较稳定的保证一个数,避免频繁的回收线程和创建线程,固适用于处理CPU密集型任务,在CPU被工作线程长时间占用时,能确保尽可能少的分配线程。抛弃最老任务策略,也就是说如果队列满了,就会将最早进入队 列的任务抛弃,从队列中腾出空间,再尝试加入队列。原创 2023-03-03 20:38:27 · 649 阅读 · 0 评论 -
JVM面试总结
双亲委派模型的工作过程是:如果一个类加载器收到了类加载的请求,它首先不会 自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加 载器都是如此,因此所有的加载请求最终都应该传送到最顶层的启动类加载器中,只有 当父加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到所需的类)时, 子加载器才会尝试自己去完成加载。标记出所有需要回收的对象,在标记完成后,统一回收掉所有被标记的对 象,也可以反过来,标记存活的对象,统一回收所有未被标记的对象。原创 2023-02-23 09:07:58 · 190 阅读 · 0 评论 -
JVM内存布局
heap(堆)通过new关键字创建的对象都会使用堆内存特点:他是线程共享的,堆中的对象都需要考虑线程安全的问题由垃圾回收机制。原创 2023-02-19 16:37:22 · 358 阅读 · 0 评论 -
浅谈JVM
heap堆通过new关键字创建的对象都会使用堆内存他是线程共享的,堆中的对象都需要考虑线程安全的问题由垃圾回收机制。原创 2022-11-12 19:31:30 · 699 阅读 · 1 评论 -
LinkedHashMap和Hashmap
一般情况下,我们用的最多的是HashMap,在Map 中插入、删除和定位元素,HashMap 是最好的选择。LinkedHashMap的containsValue方法:首先处理value为null的情况, 其次它不像HashMap一样遍历整个数组, 而是通过遍历双线链表header来查找value;默认以插入顺序排序,性能比HashMap略低,线程也是不安全的。1.linkedHashMap虽然继承HashMap, 但实现了双线链表 ,有固定的顺序,与插入entry的顺序一样;原创 2022-10-22 21:33:49 · 1057 阅读 · 0 评论 -
浅谈1.8的hashMap
的基础加入了红黑树,使得hashMap的查询性能大幅增长,而且相比与之前的头插法来说使用了尾插法,避免了可能会出现的死循环问题。在hashmap中最重要的就是增加和删除,在1.8的hashMap中引入了TreeNode在1.7的hashMap原来的。原创 2022-10-15 19:53:44 · 155 阅读 · 0 评论 -
浅谈Synchronized和Vector
3.有序性:有序性值程序的执行顺序按照代码先后执行, synchronized和volatile都具有有序性,Java允许编译器和处理器对指令进行重排,但是指令重排并不会影响单线程的顺序,它影响的是多线程并发执行的顺序性。2.可见性:可见性是指多个线程访问一个资源时,该资源的状态、值等信息对于其他的线程都是可见的。修饰的类或对象都是原子的,因为操作之前都要先获取类或对象的锁,直到执行完毕才能被释放。1.原子性:那么所谓的原子性是指一个或多个操作要么全部执行,要么全部不被执行。原创 2022-10-08 19:57:45 · 304 阅读 · 0 评论 -
关于序列化
对象序列化,将对象中的数据编码为字节序列的过程。反序列化;将对象的编码字节重新反向解码为对象的过程。JAVA提供了API实现了对象的序列化和反序列化的功能,使用这些API时需要遵守如下约定:被序列化的对象类型需要实现序列化接口,此接口是标志接口,没有声明任何的抽象方法,JAVA编译器识别这个接口,自动的为这个类添加序列化和反序列化方法。为了保持序列化过程的稳定,建议在类中添加序列化版本号。原创 2022-09-25 08:07:44 · 108 阅读 · 0 评论 -
Java基础—反射
反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。原创 2022-09-17 16:36:04 · 106 阅读 · 0 评论 -
TCP网络通信
TCP与UDP都属于TCP/IP协议TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂, 只简单的描述下这三次对话的简单过程:1)主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;2)主机B向主机A发送同意连接和要求同步 (同步就是两台主机一个在发送,一个在接收,协调工作)的数据包 :“可以,你什么时候发。原创 2022-09-10 16:33:07 · 1057 阅读 · 0 评论 -
矩阵中的路径
输入:board = [[“A”,“B”,“C”,“E”],[“S”,“F”,“C”,“S”],[“A”,“D”,“E”,“E”]], word = “ABCCED”如果 word 存在于网格中,返回 true;单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。输入:board = [[“a”,“b”],[“c”,“d”]], word = “abcd”例如,在下面的 3×4 的矩阵中包含单词 “ABCCED”(单词中的字母已标出)。原创 2022-09-04 09:21:13 · 85 阅读 · 0 评论 -
排序算法-堆排序
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。原创 2022-08-13 23:13:10 · 76 阅读 · 0 评论 -
数据结构学习(Java)
一种特殊的树结构堆,是一棵完全二叉树,也就是一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同。:树是一种典型的非线性结构,它是由 n(n>0)个有限节点组成的一个具有层次关系的集合。相对于此类更多的运用的是双端队列(Deque),具有更强的灵活性,扩展了Queue类,同样可以使用于栈结构的使用,不同于单调的队列,栈(Stack)是先进后出。4.除了根节点外,每个子节点可以分为多个不相交的子树。..原创 2022-08-06 22:27:40 · 215 阅读 · 0 评论 -
02.13
前言: 学习Java Web也有好几天了,从数据库的学习到服务端的学习,与之前的基础相比,这次的复杂度提升了,难度也提高了很多。学习的过程中始终不得要领,只能跟着视频里边内容去学习,同时也借鉴菜鸟教程里更详细的内容,尤其是对方法的理解就得选要去找百度。下面是我在学习过程中的一些笔记。 关于Servlet: Servlet post中文请求会发生乱码 请求转发只是一次请求 Request可以共享 重定向是服务端指导,客户端行为 两次请求 request不共享 Se...原创 2022-02-13 16:34:51 · 222 阅读 · 0 评论 -
Java总结
成员变量与局部变量 位置不同 成员在堆内存中 局部在栈内存 成员的在类中方法外 局部在类中方法声明上或方法定义中 生命周期不同 初始化值不同 注:成员变量与局部变量相同,采用就近原则。 构造方法 构造方法不需要显示调用,在对象创建时直接调用(用new来调用) 构造方法无返回值,不能写void; 默认构造方法(default constructor) this能调用另一个构造方法【this(参1 无,参2 ,参……);】 静态 static Static是被所有对...原创 2021-11-27 17:22:57 · 159 阅读 · 0 评论