![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 64
吴二喵
拒绝拖延,拒绝熬夜,提高效率!
展开
-
Java技术体系
Java技术体系从传统意义上来看,Sun官方所定义的Java技术体系包括以下几个组成部分:Java程序设计语言各种硬件平台上的Java虚拟机Class文件格式Java API类库来自商业机构和开源社区的第三方Java类库JDK(Java Development Kit):Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK。JDK是用于支持Java程序开发的最小原创 2016-05-18 22:07:47 · 429 阅读 · 0 评论 -
面向对象和面向过程的区别
面向过程:procedure oriented programming POP 面向对象:object oriented programming OOP原创 2016-09-14 01:29:11 · 202 阅读 · 0 评论 -
override和overload的区别
一、override(重写,覆盖)1、方法名、参数、返回值相同。 2、子类方法不能缩小父类方法的访问权限。 3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。 4、存在于父类和子类之间。 5、方法被定义为final不能被重写。 二、overload(重载,过载)1、参数类型、个数、顺序至少有一个不相同。 2、不能重载只有返回值不同的方法名。 3、存在于父类和转载 2016-09-14 01:20:40 · 186 阅读 · 0 评论 -
public, private, protected访问修饰符
public在任何地方都能访问; private只有在本类中才能访问; protected在同包内的类及包外的子类能访问; 默认不写在同包内能访问,不同包的类不能访问。原创 2016-09-14 01:50:32 · 229 阅读 · 0 评论 -
Java中的异常
异常一、Error和ExceptionThrowable是Java语言中所有错误和异常的超类。它有两个子类:Error和Exception。Error:是程序无法处理的错误,表示运行应用程序中较严重的问题。例如Java运行时系统的内部错误和资源耗尽错误,应用程序不应该抛出这种类型的对象。如果出现了这种错误,除了通告给用户,并尽力使程序安全终止外,没有其他办法。这种情况很少出现。Exception原创 2016-05-20 14:19:13 · 268 阅读 · 0 评论 -
内部类
在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。一、成员内部类成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括private成员和静态成员)。当成员内部类拥有和外部类同名的成员变量或者方法时,会发生隐藏现象,即默认情况下访问的是成员转载 2016-09-11 17:19:54 · 158 阅读 · 0 评论 -
Java面向对象的三大特性
1. 封装:封装隐藏了类的内部实现机制,从而可以在不影响使用者的前提下改变类的内部结构,同时保护了数据。 2. 继承:为了重用父类代码,同时为实现多态性作准备。 3. 多态:一、使用父类类型的引用指向子类的对象;二、该引用只能调用父类中定义的方法和变量;三、如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法;(动态连接、动态调用)四、变量不能被重写(覆盖),”重原创 2016-08-24 23:03:59 · 306 阅读 · 0 评论 -
final关键字
参考自:http://www.cnblogs.com/dolphin0520/p/3736238.html一、final的基本用法1、修饰类当用final修饰一个类时,表明这个类不能被继承。也就是说,如果一个类你永远不会让他被继承,就可以用final进行修饰。final类中的成员变量可以根据需要设为final,但是要注意final类中的所有成员方法都会被隐式地指定为final方法。在使用final修转载 2016-09-29 18:32:14 · 166 阅读 · 0 评论 -
String的常用操作
1、String可以和char数组、byte数组互换//字符串转换为字符数组或者字节数组String s = "abc";char[] charArr = s.toCharArray();byte[] byteArr = s.getBytes();//字符数组或者字节数组转换成字符串String s1 = new String(charArr);String s3 = String.val原创 2016-10-17 15:40:14 · 285 阅读 · 0 评论 -
堆和栈的区别
1、数据结构上区别 栈是线性结构,满足先进后出的顺序,插入和删除操作都只在表的一端执行。 堆是非线性结构,是一个完全的二叉树。2、Java内存中的区别 栈用来存储基本类型的变量和引用变量,它们的大小需要在编译期就是确定的。当变量超过执行范围相应的内存就会被回收。堆用来存储new创建的数组和对象,由垃圾回收机制进行回收。原创 2016-10-20 00:56:01 · 254 阅读 · 0 评论 -
序列化和反序列化
转载自:http://www.cnblogs.com/xdp-gacl/p/3777987.html序列化一、序列化和反序列化的概念把对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为对象的过程称为对象的反序列化。对象的序列化主要有两种用途:把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;在网络上传送对象的字节序列。在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,转载 2016-05-19 13:46:38 · 286 阅读 · 0 评论 -
泛型和泛型擦除
一、泛型泛型是JDK1.5中一个最重要的特征。通过引入泛型,我们将获得编译时类型的安全和运行时更小的抛出ClassCastException的可能。泛型,即“参数化类型”。 创建集合时就指定集合元素的类型,该集合只能保存其指定类型的元素,避免使用强制类型转换。二、泛型擦除Java编译器生成的字节码是不包涵泛型信息的,泛型类型信息将在编译处理是被擦除,这个过程即类型擦除。 泛型擦除可以简单的理解为将转载 2016-09-14 16:14:55 · 714 阅读 · 0 评论 -
String、StringBuffer与StringBuilder的区别
1)String对象是不可变的。字符串是常量,它们的值在创建之后不能更改。String对象是不可变的,所以可以共享。每当把String对象作为方法的参数时,都会复制一份引用,而该引用所指的对象其实一直待在单一的物理位置上,从未动过。你可以给一个String对象加任意多的别名。因为String对象具有只读特性,指向它的任何引用都不可能改变它的值。不可变性会带来一定的效率问题。在+的过程会产生需要垃圾回原创 2016-09-09 14:51:05 · 279 阅读 · 0 评论 -
java出现死锁的一个例子
public class TestDeadLock{ public static void main(String[] args){ Thread t1 = new Thread(new Test(true)); Thread t2 = new Thread(new Test(false)); t1.start(); t2.s原创 2016-09-13 22:59:50 · 239 阅读 · 0 评论 -
实现多线程的两种方式
继承java.lang.Thread,并重写它的run()方法,将线程的执行主体放入其中。实现java.lang.Runnable接口,实现它的run()方法,并将线程的执行主体放入其中。这两种实现方式的区别并不大。继承Thread类的方式实现起来较为简单,但是继承它的类就不能再继承别的类了,因此也就不能继承别的类的有用的方法了。而使用是想Runnable接口的方式就不存在这个问题了, 而且这原创 2016-09-11 21:36:16 · 228 阅读 · 0 评论 -
内部类
转载自:http://www.cnblogs.com/dolphin0520/p/3811445.html内部类在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。广泛意义上的内部类一般来说包括这四种:成员内部类、局部内部类、匿名内部类和静态内部类。下面就先来了解一下这四种内部类的用法。一、成员内部类成员内部类可以无条件访问外部类的所有成员属性和成员方法(包括priva转载 2016-05-18 22:35:16 · 213 阅读 · 0 评论 -
Java接口和抽象类
转载自:http://www.cnblogs.com/dolphin0520/p/3811437.htmlJava接口和抽象类一、抽象类抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:abstract void fun();抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类转载 2016-05-18 22:20:15 · 215 阅读 · 0 评论 -
区分深拷贝和浅拷贝
一、本文的主要内容深拷贝和浅拷贝的定义和区别利用Cloneable接口实现浅拷贝利用Serializable接口实现深拷贝二、深拷贝和浅拷贝的区别和定义首先给出二者的定义: 1. 浅拷贝:使用一个已知实例对新创建实例的成员变量逐个赋值,这个方式被称为浅拷贝。 2. 深拷贝:当一个类的拷贝构造方法,不仅要复制对象的所有非引用成员变量值,还要为引用类型的成员变量创建新的实例,并且初始化为形式原创 2016-05-19 22:28:58 · 247 阅读 · 0 评论 -
大端序和小端序
大端序和小端序一、什么是大端和小端大端(Big-Endian):低地址(索引)存放高位字节小端(Little-Endian):低地址(索引)存放低位字节例如:数字0x12345678在内存中的表示形式为: 1. 大端序 0x12|0x34|0x56|0x78 低地址——>高地址 2. 小端序 0x78|0x56|0x34|0x12内存地址 小端 大端 0x0001原创 2016-05-20 20:38:23 · 1399 阅读 · 0 评论 -
Java基本数据类型
基本数据类型和封装类的区别: 1、基本数据存储在栈中,直接存储值;封装类的引用存储在栈中,对象在堆中创建。基本数据类型由于在栈中,效率会比较高,但是可能会存储在内存泄漏问题。 2、某些情况下,数据必须作为对象出现,这时候必须用封装类将简单类型封装成对象。比如使用List来保存数据值,由于List只能添加对象,所以要将数据封装到封装类中再加入到List中。或者某些参数是Object类型变量的函数,原创 2016-09-08 22:47:25 · 227 阅读 · 0 评论 -
Switch语句的参数是什么类型的?
在Java5以前,switch(expr)中,exper只能是byte,short,char,int类型。从Java5开始,java中引入了枚举类型,即enum类型。从Java7开始,exper还可以是String类型。原创 2016-09-08 23:04:36 · 1460 阅读 · 0 评论 -
equals和==的区别
对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址。对于equals方法,注意:equals方法不能作用于基本数据类型的变量。如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。原创 2016-09-08 23:22:28 · 827 阅读 · 0 评论 -
深入了解Object类
深入了解Object类类Object是类层次结构的根类,它是所有类的超类。所以,所有的对象都可以实现Object类的方法,下面我们一一了解Object类的方法:1)protected Object clone() throws CloneNotSupportedException 保护方法,实现对象的浅拷贝,只有实现了cloneable接口才可以调用该方法,否则抛出clonenotsupporte原创 2016-05-20 10:27:16 · 292 阅读 · 0 评论 -
Java常见的四种引用
一、为什么要有这么多种类型的引用JDK1.2之前引用的定义:如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表一个引用。这个定义很纯粹,也比较狭隘,一个对象在这种定义下只有被引用和没有被引用两种状态。对于如何描述一些“食之无味,弃之可惜”的对象就显得无力。我们希望能够描述一类对象:当内存空间还足够的时候,能保留在内存中,如果内存空间在垃圾收集后还很紧张,就可原创 2016-09-09 10:42:40 · 386 阅读 · 0 评论 -
Hashcode的作用
在Java的Object类中有一个方法:public native int hashCode();根据这个方法的声明可知,该方法返回一个int类型的数值,并且是本地方法,因此在Object类中并没有给出具体的实现。一、hashcode方法的作用hashCode方法的主要作用是为了配合基于散列的集合一起正常运行,这样的散列集合包括HashSet、HashMap以及HashTable。为什么这么说呢?转载 2016-09-09 11:26:58 · 808 阅读 · 0 评论 -
try catch finally,try里有return,finally还执行么
首先看个例子:public class TestReturn { public int test(){ int x = 1; try{ return ++x; } catch(Exception e){ }finally{ ++x; }原创 2016-09-10 15:29:43 · 2628 阅读 · 1 评论 -
Java反射机制
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。一、关于Class1、Class是一个类,一个描述类的类(也就是描述类本身),封装了描述方法的Method,描述字段的Filed,描述构造器的Constructor等属性2、对象照镜子后(反射转载 2017-12-03 16:40:53 · 241 阅读 · 0 评论