![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 79
Crazy_咸鱼
不忘初心
展开
-
Scanner问题
Java中Scanner扫描器问题问题: Scanner中的方法有时候会出BUG,怎么说方法 nextInt(),是从控制台接收一个 int 值方法 next(),是从控制台接收一个字符串 大家都知道,当你不给 nextInt() 输入int值时它会出现异常,而next()方法就没有这么多事; 用try catch 给它围起来,看起来这样就捕获了异常,可实则并没有解决...原创 2019-04-29 23:21:48 · 406 阅读 · 0 评论 -
JDK监控和故障处理工具总结
JDK 监控和故障处理工具总结JDK 命令行工具jps:查看所有 Java 进程jstat: 监视虚拟机各种运行状态信息jinfo: 实时地查看和调整虚拟机各项参数jmap:生成堆转储快照jhat: 分析 heapdump 文件jstack :生成虚拟机当前时刻的线程快照JDK 可视化分析工具JConsole:Java 监视与管理控制台连接 Jconsole查...转载 2019-06-08 21:18:23 · 168 阅读 · 0 评论 -
synchronized
synchronized关键字最主要的三种使用方式的总结修饰实例方法,作用于当前对象实例加锁,进入同步代码前要获得当前对象实例的锁修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 。也就是给当前类加锁,会作用于类的所有对象实例,因为静态成员不属于任何一个实例对象,是类成员( static 表明这是该类的一个静态资源,不管new了多少个对象,只有一份,所以对该类的所有对...转载 2019-06-22 14:46:19 · 120 阅读 · 0 评论 -
Java8新特性
随着 Java 8 的普及度越来越高,很多人都提到面试中关于Java 8 也是非常常问的知识点。应各位要求和需要,我打算对这部分知识做一个总结。本来准备自己总结的,后面看到Github 上有一个相关的仓库,地址:https://github.com/winterbe/java8-tutorial。这个仓库是英文的,我对其进行了翻译并添加和修改了部分内容,下面是正文了。Java 8 Tuto...转载 2019-06-22 14:51:32 · 657 阅读 · 0 评论 -
JDK8接口规范-静态、默认方法
JDK8接口规范在JDK8中引入了lambda表达式,出现了函数式接口的概念,为了在扩展接口时保持向前兼容性(比如泛型也是为了保持兼容性而失去了在一些别的语言泛型拥有的功能),Java接口规范发生了一些改变。。1.JDK8以前的接口规范JDK8以前接口可以定义的变量和方法所有变量(Field)不论是否显式 的声明为public static final,它实际上都是public sta...转载 2019-06-22 14:52:00 · 268 阅读 · 0 评论 -
Lambda表达式
JDK8–Lambda表达式1.什么是Lambda表达式Lambda表达式实质上是一个可传递的代码块,Lambda又称为闭包或者匿名函数,是函数式编程语法,让方法可以像普通参数一样传递2.Lambda表达式语法(参数列表) -> {执行代码块}参数列表可以为空()->{}可以加类型声明比如(String para1, int para2) -> {return par...转载 2019-06-22 14:52:38 · 81 阅读 · 0 评论 -
Stream
Stream API 旨在让编码更高效率、干净、简洁。从迭代器到Stream操作当使用 Stream 时,我们一般会通过三个阶段建立一个流水线:创建一个 Stream;进行一个或多个中间操作;使用终止操作产生一个结果,Stream 就不会再被使用了。案例1:统计 List 中的单词长度大于6的个数/*** 案例1:统计 List 中的单词长度大于6的个数*/ArrayLis...转载 2019-06-22 14:56:23 · 89 阅读 · 0 评论 -
改进的类型推断
改进的类型推断1.什么是类型推断类型推断就像它的字面意思一样,编译器根据你显示声明的已知的信息 推断出你没有显示声明的类型,这就是类型推断。看过《Java编程思想 第四版》的朋友可能还记得里面讲解泛型一章的时候,里面很多例子是下面这样的: Map<String, Object> map = new Map<String, Object>();而我们平常写的都是这...转载 2019-06-22 14:57:01 · 92 阅读 · 0 评论 -
通过反射获得方法的参数信息
通过反射获得方法的参数信息JDK8之前 .class文件是不会存储方法参数信息的,因此也就无法通过反射获取该信息(想想反射获取类信息的入口是什么?当然就是Class类了)。即是是在JDK11里也不会默认生成这些信息,可以通过在javac加上-parameters参数来让javac生成这些信息(javac就是java编译器,可以把java文件编译成.class文件)。生成额外的信息(运行时非必...转载 2019-06-22 14:57:24 · 3153 阅读 · 0 评论 -
Java基础知识
1. 面向对象和面向过程的区别面向过程面向对象2. Java 语言有哪些特点?3. 关于 JVM JDK 和 JRE 最详细通俗的解答JVMJDK 和 JRE4. Oracle JDK 和 OpenJDK 的对比5. Java和C++的区别?6. 什么是 Java 程序的主类 应用程序和小程序的主类有何不同?7. Java 应用程序与小程序之间有那些差别?8....转载 2019-06-22 14:59:12 · 295 阅读 · 0 评论 -
类文件结构
类文件结构一 概述二 Class 文件结构总结2.1 魔数2.2 Class 文件版本2.3 常量池2.4 访问标志2.5 当前类索引,父类索引与接口索引集合2.6 字段表集合2.7 方法表集合2.8 属性表集合参考类文件结构一 概述在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面...转载 2019-06-08 21:17:11 · 98 阅读 · 0 评论 -
类加载器
回顾一下类加载过程类加载器总结双亲委派模型双亲委派模型介绍双亲委派模型实现源码分析双亲委派模型的好处如果我们不想要双亲委派模型怎么办?自定义类加载器推荐回顾一下类加载过程类加载过程:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析。一个非数组类的加载阶段(加载阶段获取类的二进制字节流的动作)是可控性最强的阶段,这一步我们...转载 2019-06-08 21:14:50 · 147 阅读 · 0 评论 -
类加载过程
类加载过程加载验证准备解析初始化公众号JavaGuide 后台回复关键字“1”,免费获取JavaGuide配套的Java工程师必备学习资源(文末有公众号二维码)。类加载过程Class 文件需要加载到虚拟机中之后才能运行和使用,那么虚拟机是如何加载这些 Class 文件呢?系统加载 Class 类型的文件主要三步:加载->连接->初始化。连接过程又可分...转载 2019-06-08 21:13:11 · 159 阅读 · 0 评论 -
Arrays,Collections常见方法
Collections 工具类和 Arrays 工具类常见方法Collections排序操作查找,替换操作同步控制Arrays类的常见操作排序 : sort()查找 : binarySearch()比较: equals()填充 : fill()转列表 asList()转字符串 toString()复制 copyOf()Collections 工具...转载 2019-06-07 17:51:02 · 111 阅读 · 0 评论 -
final、static、this、super
final,static,this,super 关键字总结final 关键字static 关键字this 关键字super 关键字参考static 关键字详解static 关键字主要有以下四种使用场景修饰成员变量和成员方法(常用)静态代码块静态内部类静态导包补充内容静态方法与非静态方法static{}静态代码块与{}非静态代码块(构造代码块)参考...转载 2019-06-07 17:52:40 · 101 阅读 · 0 评论 -
ArrayList
ArrayList简介ArrayList核心源码ArrayList源码分析System.arraycopy()和Arrays.copyOf()方法两者联系与区别ArrayList核心扩容技术内部类ArrayList经典DemoArrayList简介ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元...转载 2019-06-07 17:54:06 · 81 阅读 · 0 评论 -
ArrayList的自动增长
一 先从 ArrayList 的构造函数说起ArrayList有三种方式来初始化,构造方法源码如下: /** * 默认初始容量大小 */ private static final int DEFAULT_CAPACITY = 10; private static final Object[] DEFAULTCAPACITY_EMPTY_ELE...转载 2019-06-07 17:55:15 · 1015 阅读 · 1 评论 -
HashMap
HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)时,将链表转化为红黑树,以减少搜索时间。底层数据结构分析JDK1.8...转载 2019-06-07 17:56:11 · 84 阅读 · 0 评论 -
LinkedList
简介内部结构分析LinkedList源码分析构造方法添加(add)方法根据位置取数据的方法根据对象得到索引的方法检查链表是否包含某对象的方法:删除(remove/pop)方法LinkedList类常用方法测试:简介LinkedList是一个实现了List接口和Deque接口的双端链表。LinkedList底层的链表结构使它支持高效的插入和删除操作,另外它实现了...转载 2019-06-07 17:57:02 · 86 阅读 · 0 评论 -
Java集合框架常见面试题
剖析面试最常见问题之Java基础知识说说List,Set,Map三者的区别?Arraylist 与 LinkedList 区别?补充内容:RandomAccess接口补充内容:双向链表和双向循环链表ArrayList 与 Vector 区别呢?为什么要用Arraylist取代Vector呢?说一说 ArrayList 的扩容机制吧HashMap 和 Hashtable 的...转载 2019-06-07 17:58:28 · 121 阅读 · 0 评论 -
Java内存区域
Java 内存区域详解写在前面 (常见面试题)基本问题拓展问题一 概述二 运行时数据区域2.1 程序计数器2.2 Java 虚拟机栈2.3 本地方法栈2.4 堆2.5 方法区2.5.1 方法区和永久代的关系2.5.2 常用参数2.5.3 为什么要将永久代 (PermGen) 替换为元空间 (MetaSpace) 呢?2.6 运行时常量池2.7 直接...转载 2019-06-08 21:04:07 · 87 阅读 · 0 评论 -
JVM垃圾回收
JVM 垃圾回收写在前面本节常见面试题本文导火索1 揭开 JVM 内存分配与回收的神秘面纱1.1 对象优先在 eden 区分配1.2 大对象直接进入老年代1.3 长期存活的对象将进入老年代1.4 动态对象年龄判定2 对象已经死亡?2.1 引用计数法2.2 可达性分析算法2.3 再谈引用2.4 不可达的对象并非“非死不可”2.5 如何判断一个常量是废...转载 2019-06-08 21:08:01 · 76 阅读 · 0 评论 -
J2EE基础知识
Servlet总结阐述Servlet和CGI的区别?CGI的不足之处:Servlet的优点:Servlet接口中有哪些方法及Servlet生命周期探秘get和post请求的区别什么情况下调用doGet()和doPost()转发(Forward)和重定向(Redirect)的区别自动刷新(Refresh)Servlet与线程安全JSP和Servlet是什么关系JSP工...转载 2019-06-22 15:01:10 · 976 阅读 · 0 评论