随笔分类 - Java基础
集合、线程、jvm、异常
摘要:定义:声明中具有一个或者多个类型参数(type parameter)的类或者接口,就是泛型类或者接口。泛型类和接口统称为泛型(generic type)。 每种泛型定义一组类型形参(formal type parameters),这些类型形参有时也被简称为类型参数(type parameter),例
阅读全文
摘要:HashMap有几种遍历方法 HashMap 的遍历方法有很多种,不同的 JDK 版本有不同的写法,其中 JDK 8 就提供了 3 种 HashMap 的遍历方法,并且一举打破了之前遍历方法“很臃肿”的尴尬。 7 种 HashMap 的遍历方式,其中 JDK 8 之前主要使用 EntrySet 和
阅读全文
摘要:Map转换成JSON的方法 1 alibaba fastjson 1.Map转JSON Map<String, Object> map = new HashMap<String, Object>(); map.put("a", "a"); map.put("b", "123"); JSONObjec
阅读全文
摘要:Java中IO 什么是IO 这里这个I指的是input,而这个O指的则是output,对于IO的认识就是输入输出。在讨论IO的时候,流则是关键中的关键 按数据流向分类 输入流和输出流 按处理的数据类型分类 字节流和字符流 字节流 对于字节流,它是用来操作我们的二进制文件的,因为字节流可以操作的数据是
阅读全文
摘要:JMM实现原理 线程之间的通信 线程之间的通信机制有两种,共享内存和消息传递。 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信,典型的共享内存通信方式就是通过共享对象进行通信。 在消息传递的并发模型里,线程之间没有公共状态,线程之间必须通过明确的
阅读全文
摘要:JVM线上排查问题过程 记录如何排查CPU100%问题。 当我们把服务发布到服务器上,可能会因为一些问题造成我们的服务器CPU被打满甚至超过100%,那如果我们想知道到底上在做什么操作导致CPU持续过高呢?因为在线上,我们只能通过日志看问题,或者排查到哪个进程或者哪个线程持续占用CPU。然后才能找到
阅读全文
摘要:JVM垃圾回收机制 JVM的组成 程序计数器 执行class文件到达哪一行了,线程私有的,不会发生内存泄漏。 堆 内存管理最大的一部分,当程序里new出一个对象,或者声明一个数组时,都会在堆内存中申请出一块空间。 分为新生代、年老代、永久代。 发生异常时是因为往里面添加的对象太多。 虚拟机栈 每个方
阅读全文
摘要:Java中的集合 集合分为:List,Set,Map三种,其中List与Set是继承自Collection,而Map不是。 一、List与Set的区别: List中的元素有存放顺序,并且可以存放重复元素,检索效率高,插入删除效率低; Set没有存放顺序,而且不可以存放重复元素,后来的元素会把前面重复
阅读全文
摘要:Java中的异常(Error与Exception) 程序错误分为三种:1.编译错误;2.运行时错误;3.逻辑错误。 (1)编译错误是因为程序没有遵循语法规则,编译程序能够自己发现并且提示我们错误的原因和位置,这个也是大家在刚接触编程语言最常遇到的问题。 (2)运行时错误是因为程序在执行时,运行环境发
阅读全文
摘要:Java中的多线程 1. 进程与线程的区别 进程是所有线程的集合,每一个线程是进程中的一条执行路径,线程只是一条执行路径。 2. 创建线程的三种方式 2.1. 继承Thread类创建线程类 优点:编写简单,如果需要访问当前线程,无需使用Thread.currentThread()方法,直接使用thi
阅读全文

浙公网安备 33010602011771号