集合相关 List.Set.Map的区别 类型 描述 List 允许重复对象,可插入多个null元素,有序 Set 不允许重复对象,只允许一个null元素,无序 Map 不是collection的子接口或实现类,是一个接口,每个元素都是entry,一个键一个值 Vector.ArrayList.LinkedList的区别 类型 描述 Vector 动态数组,安全,扩容提高1倍 ArrayList 动态数组,不安全,扩容增加50%,初始容量10 LinkedList 双向链表,不安全,不需要调整容…
Java高级 类加载过程 加载(创建class对象) -> 连接(验证-准备-解析) -> 类初始化 类加载器类别 根类加载器:加载java核心类 扩展类加载器:加载JRE目录中的jar包 系统类加载器:加载用户自定义类和classpath下的jar包 Java反射机制基于什么原理 通过反射我们可以直接操作类或者对象,比如获取某个对象的类定义,获取类声明的属性和方法,调用方法或者构造对象,甚至可以运行时修改类定义 动态代理基于什么原理 方便运行时动态构建代理.动态处理代理方法调用的机制 动态代…
线程相关 Java多线程实现方式 继承Thread,实现Runnable接口,实现Callable接口(能抛异常且有返回值,不常用) 为什么有了继承Thread方式还要有Runnable接口方式 实现接口的方式适合多个相同程序代码的线程去处理同一个资源,可以避免Java中单继承的限制 为什么JVM启动是多线程的? 因为至少启动了两个线程:主线程.垃圾回收线程 线程和进程的含义 进程:是操作系统资源分配的基本单位,正在运行的程序 线程:是任务调度和执行的基本单位,程序使用CPU的最基本单位 多线程…
Java基础 Java如何运行的? 开发的java源代码,通过javac编译成为平台无关的字节码文件(class),然后通过JVM的解释器将字节码解释成对应的机器码 “一次编译,到处运行”的理解 说的是java的跨平台特性,与JVM密不可分,不同环境和平台安装好JDK就有java运行环境,并不是说java是跨平台语言:到处运行的关键和前提是JVM,在可以运行JVM的地方都内含着一个JVM操作系统,从而使Java提供了各种不同平台上的虚拟机制,因此实现了到处运行的效果 JDK.JRE.JVM的区别…
Android开发学习必备的java知识本讲内容:对象.标识符.关键字.变量.常量.字面值.基本数据类型.整数.浮点数.布尔型.字符型.赋值.注释 Java作为一门语言,必然有他的语法规则.学习编程语言的关键之一就是学好语法规则,写作合乎语法规则的语句,控制计算机完成各种任务.而按编程语言的语法规则写成的,完成某项功能的代码集合就可以叫做程序.    一.初识对象(Object) “初识对象的时候我们还不知道什么是对象.” Java的一个重要特点就是面向对象(Object Oriented), …
集合(或者叫容器)是Java的核心知识点,它有着很深的深度.我们这里不会设计多深,仅仅作为了解入门,深入了解请移步各种集合源码文章.好的,下面正是开始介绍... Java集合为何而生 我们知道,Java是一门面向对象编程语言,这也就意味着程序中存在着大量的对象.这个时候问题就来了,我们如何很好的存放和操作对象呢?如果你能明白这个问题,那么你就知道了"集合为何而生"这个问题的答案. 总结一句: Java给我们提供了工具(集合)方便我们去存放和操作多个Java对象 Java集合入门学习 J…
Map Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另一组值用于保存Map里的value,key和value都可以是任何引用类型的数据.Map的key不容许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false. key和value之间存在单向一对一关系,即通过指定的key,总能找到唯一的.确定的value.从Map中取出数据时,只要给出指定的key,就可以取出对应的value. 如果把Map里的所有key放在一起看…
一.了解Map集合吗?Map集合都有哪些实现 HashMap HashTable LinkedHashMap TreeMap ConcurrentHashMap 二.HashMap和HashTable之间的区别 1.定义 HashMap底层基于数组+单向链表(红黑树),非线程安全,允许有空的键和值 数组:Node<K,V> [] table ,每一个元素都是一个Node 单向链表:Node<K,V> next,当发生Hash碰撞,会追加链表,当链表长度大于8,那就转换为红黑树 Ha…
声明一个Set集合,只能保存Double类型的数据, 保存10个随机100以内的数, 找出最大值和最小值,打印输出. public static void main(String[] args) { Set<Double> set =new HashSet<Double>(); System.out.println("10个100以内的随机数"); for(int i=0;i<10;i++){ set.add(Math.random()*100); } d…
参考资料 runoob Java知识回顾序列的相关资料,主要来自 runoob,并对其中的知识进行概况或总结,去除对一个之前了解过Java的人员无关的知识点.以便能够使得一个新手,或之前有Java经验的开发人员,快速上手Java算法或系统开发.在此对runoob网站表示感谢. 一.Java 源程序与编译型运行区别 如下图所示: 二.基本数据类型 内置数据类型 Java语言提供了八种基本类型.六种数字类型(四个整数型,byte, short, int, long:两个浮点型, float, dou…