JAVA基础
文章平均质量分 85
HLA_胡
2016.06-2019.08 猫眼电影
2019.08-至今 头条西瓜视频
展开
-
java 内存分配
来源:Java 内存分配全面浅析 深入Java核心 Java内存分配原理精讲(1) java内存分配研究简单通俗的讲,一个完整的Java程序运行过程会涉及以下内存区域:l寄存器:JVM内部虚拟寄存器,存取速度非常快,程序不可控制。l栈:保存局部变量的值,包括:1.用来保存基本数据类型的值;2.保存类的实例,即堆区对象的引用(指针)。也可以用来保存转载 2015-03-26 16:50:10 · 418 阅读 · 0 评论 -
java泛型
1、为什么要使用泛型?使用泛型的典型例子,是在集合中的泛型使用。在使用泛型前,存入集合中的元素可以是任何类型的,当从集合中取出时,所有的元素都是Object类型,需要进行向下的强制类型转换,转换到特定的类型。我们看下下面这段简短的代码:public class GenericTest { public static void main(String[] args) {原创 2015-07-15 16:14:58 · 486 阅读 · 0 评论 -
java容器类---概述
1、容器类关系图虚线框表示接口。实线框表示实体类。粗线框表示最常用的实体类。点线的箭头表示实现了这个接口。实线箭头表示类可以制造箭头所指的那个类的对象。2、容器类持有对象方式1 Collection:只允许每个位置上放一个对象。它包括“以一定顺序持有一组对象”的List,以及“只能允许添加不重复对象”的Set。你可以用add()方法向Collec原创 2015-07-15 20:12:59 · 887 阅读 · 3 评论 -
java容器类---LinkedList
1、LinkedList简介(1)LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。(2)LinkedList同样是非线程安全的,只在单线程下适合使用。(3)LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。原创 2015-08-07 21:51:11 · 205 阅读 · 0 评论 -
java基础---枚举(enum)
1、关于java enumenum 一般用来表示一组相同类型的常量。如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且比较时候可以用 ”==” 来替换 equals 。是一种好的习惯。 JDK1.5 之前没有 Enum 这个类型,那时候一般用接口常量来替代。有了 JavaEnum 之后,可以更贴近的表示这种常量。注:enum--关键字,用来定义枚举,类似c原创 2015-08-07 15:44:50 · 149 阅读 · 0 评论 -
java容器类---Vector
1、Vector简介(1)Vector也是基于数组实现的,是一个动态数组,其容量能自动增长。(2)Vector是JDK1.0引入了,它的很多实现方法都加入了同步语句,因此是线程安全的(其实也只是相对安全,有些时候还是要加入同步语句来保证线程的安全),可以用于多线程环境。(3)Vector实现了Serializable接口,因此它支持序列化,实现了Cloneable接口,能被克隆,实现了原创 2015-08-08 11:34:45 · 3698 阅读 · 0 评论 -
java中equals,hashcode和==的区别
1、==java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。 2.引用类型(类、接口、数组) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结原创 2015-07-16 10:26:14 · 21813 阅读 · 3 评论 -
java容器类---HashMap、HashSet
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。数组:数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表:链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。哈希表:原创 2015-07-16 15:30:43 · 921 阅读 · 0 评论 -
java容器类---LinkedHashMap、LinkedHashSet
1、LinkedHashMap简介1.1 LinkedHashMap数据结构 LinkedHashMap是HashMap的子类,与HashMap有着同样的存储结构,但它加入了一个双向链表的头结点,将所有put到LinkedHashmap的节点一一串成了一个双向循环链表,因此它保留了节点插入的顺序,可以使节点的输出顺序与输入顺序相同。LinkedHashMap是Map原创 2015-08-10 13:18:17 · 630 阅读 · 0 评论 -
java容器类---TreeMap、TreeSet
1、TreeMap 简介TreeMap是基于红黑树实现的,这里只对红黑树做个简单的介绍,红黑树是一种特殊的二叉排序树,关于二叉排序树,红黑树通过一些限制,使其不会出现二叉树排序树中极端的一边倒的情况,相对二叉排序树而言,这自然提高了查询的效率。红黑树的基本性质如下:1、每个节点都只能是红色或者黑色2、根节点是黑色3、每个叶节点(NULL节点,空节点)是黑色的。4、如果一原创 2015-08-10 16:08:59 · 939 阅读 · 0 评论 -
java基础--JavaBean、POJO、DAO、EJB
1、POJO POJO(Plain Old Java Object)这种叫法是Martin Fowler、Rebecca Parsons和Josh MacKenzie在2000年的一次演讲的时候提出来的。按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译为“纯洁老式的java对象”,但大家都使用“简单java对象”来称呼它。PO原创 2015-08-12 17:46:02 · 1090 阅读 · 0 评论 -
java基础---java类与类之间的关系详解
文章来源:java类与类之间的关系继承(inheritance)继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。继承是is-a的关系,是一种用于表示特殊与一般的关系。如果说XXX是XXX,没人鄙视你的话,继承关系就成立了,如:男人是人,说得通。要是反过来,人是男人,这世界就乱了。转载 2015-05-15 20:20:17 · 1619 阅读 · 1 评论 -
java基础---注解(Annotation)
1、什么是注解(Annotation)?(1)用一个词就可以描述注解,那就是元数据,即一种描述数据的数据。所以,可以说注解就是源代码的元数据。(2)注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,原创 2015-08-06 20:38:22 · 684 阅读 · 0 评论 -
java容器类---ArrayList
1、ArrayList 简介(1)ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。(2) ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的C原创 2015-08-07 19:20:27 · 1070 阅读 · 0 评论 -
java基础---静态变量,成员变量,局部变量及类的初始化顺序
类变量(也叫静态变量):是类中独立于方法之外的变量,用static 修饰。(static表示“全局的”、“静态的”,用来修饰成员变量和成员方法,或静态代码块(静态代码块独立于类成员,jvm加载类时会执行静态代码块,每个代码块只执行一次,按顺序执行))。成员变量(也叫“实例变量”、“域”):也是类中独立于方法之外的变量,不过没有static修饰。局部变量是类的方法中的变量。原创 2015-04-09 20:52:06 · 3334 阅读 · 3 评论 -
java容器类---Hashtable
1、Hashtable简介(1)Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。(2)Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。(3)Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克原创 2015-08-08 21:35:47 · 1330 阅读 · 0 评论 -
java基础---封装、继承、多态
面向对象的三个基本特征是:封装、继承、多态。封装:概念理解: 封装是指将对象的状态信息隐藏在对象内部,不允许外部的程序直接访问对象内部的信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。 封装是面向对象编程语言对客观世界的模拟,客观世界里的属性都是被隐藏在对象内部,外界无法直接操作和修改。封装的好处很多:1、 隐藏类的实现细节2、 让使转载 2015-05-17 20:17:26 · 540 阅读 · 0 评论 -
String、StringBuilder、StringBuffer
来源:String in Java1、StringString 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度转载 2015-07-13 16:13:36 · 632 阅读 · 1 评论 -
JAVA 数据类型
来源:java 数据类型一、数据类型Java中主要有8中基本数据类型,分别是byte,short,int,long,char,boolean,float,double,具体如下:1、boolean:数据值只有true或false,适用于逻辑计算。2、char:char型(字符型)数据在内存中占用2个字节。char型数据用来表示通常意义上的字符转载 2015-03-26 15:46:14 · 499 阅读 · 0 评论 -
java基础---面向对象程序设计
java 面向对象程序设计5个基本特征:(1) 所有东西都是对象。可将对象想象成一种新型变量;它保存着数据,但可要求它对自身进行操作。理论上讲,可从要解决的问题身上提出所有概念性的组件,然后在程序中将其表达为一个对象。(2) 程序是一大堆对象的组合;通过消息传递,各对象知道自己该做些什么。为了向对象发出请求,需向那个对象“发送一条消息”。更具体地讲,可将消息想象为一个调用请求,它调用的是从原创 2015-04-22 20:05:07 · 423 阅读 · 0 评论 -
java基础---JAVA中Random类
来源:JAVA的Random类 Java中的Random()函数 Random类 (java.util) Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,转载 2015-04-13 18:20:25 · 2131 阅读 · 0 评论 -
java基础---JAVA命名规范
JAVA命名规范:一、Java程序,包名:Package的名字应该都是由小写单词组成,如:text.demo.example具体的示例如下:com.icss下面为平台包。stmacmbas为本项目的根程序包。stmacmbas.base为本项目的开发基础包。stmacmbas.commerce为商业企业程序包。stmacmbas.example为示例程序包。stmacm原创 2015-04-09 15:44:52 · 752 阅读 · 0 评论 -
java基础---方法的重载(overload)和覆盖(重写)(override)
重载(overload):对于类的方法(包括从父类中继承的方法),方法名相同,参数列表不同,就称之为函数的重载。重载是一个类中多态性的一种表现。Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。(1) 参数列表:参数列表又叫参数签名,指三样原创 2015-04-09 16:14:16 · 1315 阅读 · 0 评论 -
java基础---Java关键字this与super
来源:Java关键字this、super使用总结 Java关键字介绍之this与super一、this Java关键字this只能用于方法体内,表示对“调用方法的那个对象”的引用。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现转载 2015-04-09 19:36:54 · 538 阅读 · 0 评论 -
JAVA字节码
java是一种跨平台的语言,它为何跨平台?java源程序(.java文件)通过编译器编译成为Class文件(字节码文件),而它的class文件是基于字节码(以byte为单位存储的文件)的,而字节码文件是描述程序要运行的的虚指令的集合,这些虚指令的集合与任何的平台无关,Java虚拟机认识它,Java虚拟机将它翻译为对应的OS指令就好了!(java虚拟机会为每个OS平台编写对应的JRE运行环境,与原创 2015-04-07 16:20:54 · 471 阅读 · 0 评论 -
java基础---访问权限控制
1.进行访问权限控制的原因:(1)是防止用户接触那些他们不应碰的工具。对于数据类型的内部机制,那些工具是必需的。但它们并不属于用户接口的一部分,用户不必用它来解决自己的特定问题。所以将方法和字段变成“私有”(private)后,可极大方便用户。因为他们能轻易看出哪些对于自己来说是最重要的,以及哪些是自己需要忽略的。这样便简化了用户对一个类的理解。(2)允许库设计者改变类的内部工作机制,同时原创 2015-04-27 20:56:25 · 616 阅读 · 0 评论 -
java基础---static关键字
一、static介绍static:表示“全局”或者“静态”的意思,但是Java语言中没有全局变量的概念。修饰:成员变量和成员方法,也可以形成静态static代码块。作用:方便在没有创建对象的情况下来进行调用(方法/变量)。只要类被加载了,也就是在它的任何对象创建之前,就可以通过类名去进行访问。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,原创 2015-04-22 20:31:03 · 564 阅读 · 0 评论 -
java基础---HashMap与HashTable
HashMap:1) hashmap的数据结构 Hashmap是一个数组和链表的结合体(在数据结构称“链表散列“),如下图示:当我们往hashmap中put元素的时候,先根据key的hash值得到这个元素在数组中的位置(即下标),然后就可以把这个元素放到对应的位置中了。如果这个元素所在的位子上已经存放有其他元素了,那么在同一个位子上的元素将以链表的形式存放,新加转载 2015-05-04 18:56:19 · 890 阅读 · 3 评论 -
java基础---接口、抽象类、内部类
接口(interface)从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。格式:interface 接口名{}1.多个无关的类可以实现同一个接口2. 一个类可以实现多个无关的接口(接口变相地实现了多继承)3.与继承关系类似,接口与实现类之间存在多态性4.接口可以继承其它的接口,并添加新的属性和抽象方法。接口中的成员原创 2015-05-04 10:53:25 · 665 阅读 · 0 评论 -
java基础---final、finally、finalize
final: java中的关键字,修饰符。用于声明属性,方法和类,分别表示属性不可改变,方法不可覆盖,类不可继承。1. 定义变量,包括静态的和非静态的。 2. 定义方法的参数。 3. 定义方法。 4. 定义类。(1)定义变量,包括静态的和非静态的1.1 如果final修饰的是一个基本类型,要求变量初始化必须在声明时或者构原创 2015-05-17 15:47:18 · 541 阅读 · 0 评论 -
java反射机制
1、什么是反射机制 简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。原创 2015-07-09 09:52:40 · 858 阅读 · 0 评论 -
Servlet
Servlet:servlet是运行在Web服务器或应用服务器上的程序;它担当Web浏览器或其他HTTP客户发出的请求,与HTTP服务器上的数据库或应用程序之间的中间层。原创 2015-07-03 12:30:49 · 762 阅读 · 0 评论 -
Java 基础知识面试题
问题 答案 java 1.7 1.8 1.9 新特性 参考: https://www.cnblogs.com/aspirant/p/8617201.html 抽象方法不能有具体实现 1.7 在Switch中可以用String字符串 ;二进制变量的表示,支持将整数类型用二进制来表示,用0b开头;Catch多个异常;泛型实例的创建可以通...原创 2019-08-15 17:13:56 · 251 阅读 · 0 评论