
javase
isjun26
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
序列化和反序列化
概念序列化:把对象转化为字节的过程,输出到硬盘上。反序列化:把字节转化为对象的过程,输入到内存中。序列化和反序列化时,会根据序列化版本号判断是否是同一个对象。private static final long serialVersionUID = -2507152961802120884L;或者private static final long serialVersionUID = -1L;...原创 2018-07-05 22:44:13 · 356 阅读 · 0 评论 -
控制跳转语句break和continue的区别?
区别:break是退出当前循环,continue是退出本次循环。 /* * break:中断的意思 * 使用场景: * A:switch语句中 * B:循环中 * 注意: * 离开使用场景是没有意义的。 * 作用: * 跳出循环,让循环提前结束 */ public class BreakDemo { public s...原创 2018-04-17 00:03:47 · 957 阅读 · 0 评论 -
数组静态初始化和动态初始化
/* * 数组:存储同一种数据类型的多个元素的容器。 * * 定义格式: * A:数据类型[] 数组名; * B:数据类型 数组名[]; * 举例: * A:int[] a; 定义一个int类型的数组,数组名是a * B:int a[]; 定义一个int类型的变量,变量名是a数组 * * * 动态初始化: ...原创 2018-04-17 00:04:16 · 2486 阅读 · 0 评论 -
jvm内存分配(栈和堆)
栈:存储局部变量堆:存储new出来的东西原创 2018-04-17 00:04:35 · 373 阅读 · 0 评论 -
方法重载
方法重载概述:在同一个类中,出现了方法名相同的方法,这就是方法重载。方法重载的特点:1、在同一个类中,方法名相同,参数列表不同,与返回值无关。参数列表相同1、参数的个数不同2、参数对应的类型不同...原创 2018-04-17 00:05:07 · 722 阅读 · 0 评论 -
成员变量和局部变量的区别
1、在类中的位置不同成员变量:类中,方法外。局部变量:方法中或者方法声明上(形式参数)。2、在内存的位置不同成员变量:堆内存局部变量:栈内存3、生命周期不一样成员变量:随着对象的创建而创建,随着对象的消失而消失。局部变量:随着方法的调用而存在,随着方法的调用完毕而消失。4、初始值的问题成员变量:有默认值局部变量:没有默认值,必须先定义,赋值,最后使用。...原创 2018-04-17 11:37:01 · 151 阅读 · 0 评论 -
面向对象三大特性封装、继承、多态
封装概述:是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。封装原则:将不需要对外提供的内容都隐藏起来,把属性隐藏起来,提供公共方法对其访问。成员方法private修饰,提供getXxx()/setXxx()方法 好处:通过方法来控制成员变量的操作,提高了代码的安全性,把代码用方法进行封装,提高了代码的复用性。继承的概述:继承是指在一个现有类的基础...原创 2018-04-17 11:37:35 · 237 阅读 · 0 评论 -
多态转型
引用数据类型的类型转换分为向上转型与向下转型两种向上转型:当子类对象赋值给一个父类对象引用时,便是向上转型,多态本是向上转型的过程。格式:父类类型 变量名 = new 子类类型();向下转型:一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用转为子类引用,这个过程是向下转型,如果是直接创建父类对象,是无法向上转型的。格式:父类类型 变量名 = new 子类类型(); ...原创 2018-04-17 11:37:59 · 386 阅读 · 0 评论 -
this和super关键字
this使用1、代表所在类的对象引用2、把局部变量的值赋值给成员变量的值3、调用本类的其他构造方法(只能出现构造方法的第一行)4、访问本类的成员变量和成员方法super使用1、访问父类的成员变量和成员方法2、调用父类的构造方法,当有继承关系时,子类默认会调用父类的无参构造方法。当调用父类构造方法时,写在第一行。...原创 2018-04-17 11:38:29 · 170 阅读 · 0 评论 -
子父类内存图
在每次创建子类对象时,子类空间包含父类成员变量和子类成员变量,先通过父类构造方法初始化父类相关成员,再初始化子类成员。原创 2018-04-17 11:40:38 · 458 阅读 · 0 评论 -
方法重写
概述:重新定义父类方法的过程叫做方法重写。需要注意的事项:1、方法名相同2、参数列表相同3、返回值类型相同原创 2018-04-17 11:41:36 · 154 阅读 · 0 评论 -
接口中成员的特点
1、成员变量public static final修饰,不写也会帮我们加上。2、成员方法public abstract修饰,不写也会帮我们加上。3、构造方法接口中不能有构造方法原创 2018-04-17 11:42:29 · 2808 阅读 · 0 评论 -
switch语句
/* * switch语句格式: * switch(表达式) { * case 值1: * 语句体1; * break; * case 值2: * 语句体2; * break; * ... * default: * 语句体n+1; * break; * } *...原创 2018-04-16 14:38:19 · 505 阅读 · 0 评论 -
三元运算符(三目运算符)
格式关系表达式?表达式一:表达式二如果关系表达式条件为true,运算的结果是表达式一。如果关系表达式条件为false,运算的结果是表达式二。例如:int a = 4; int b = 5;取a、b的最小值a < b ? a : b;...原创 2018-04-16 14:31:36 · 2779 阅读 · 0 评论 -
&、&&的区别和|、||的区别?
&、&&的区别1、最终结果一样。2、&无论左边是false还是true,右边都执行。3、&&具有短路效果,左边是false,右边不执行。4、&&效率更高,项目中推荐使用。|、||的区别1、最总的结果一样。2、|无论左边是false还是true,右边都会执行。3、||具有短路效果,左边是true,右边不执行。4、||效果效率更高,项目中...原创 2018-04-16 14:25:29 · 14308 阅读 · 2 评论 -
if中写大括号和没有写大括号的区别
如果没写大括号,if下面的第一行归if管,其他的行不归if管,如果写大括号,括号的所有内容都归if管。原创 2018-07-05 17:21:26 · 10442 阅读 · 6 评论 -
try...catch...finally语句
1、当try中或者catch中有return时,会先执行finally中的代码,再执行return语句。有一种情况比较特殊,就是代码中有System.exit(1)时,return才不会被执行。原创 2018-07-05 15:43:07 · 272 阅读 · 0 评论 -
常量、变量
常量概述:在程序执行过程中,其值不可以发生改变的量。常量分类:字符串常量:用双引号括起来的内容(“Hello World”)整数常量:所有整数小数常量:所有小数字符常量:用单引号括起来的内容(‘a’)布尔常量:true和false空常量:null变量概述:在程序执行过程中,在某个范围内其值是可以发生变化的量,从本质上讲:变量其实是内存中的一小块区域。定义变量注意事项:1、整数默认是int类型,定义...原创 2018-04-16 11:51:47 · 144 阅读 · 0 评论 -
创建新线程方式继承Thread、实现Runnable、实现Callable
方式一:继承Thread类1、定义一个类继承Thread类2、重写run方法3、创建Thread的子类对象4、调用start方法,开启线程并让线程执行 // 1 定义一个类继承Thread。 class MyThread extends Thread { // 2 重写run方法。 @Override public void run() { for (int i =...原创 2018-05-07 10:44:56 · 244 阅读 · 0 评论 -
instanceof作用
通过instanceof关键字判断某个对象是否属于某种数据类型。如程序员的对象属于员工类,学生的对象也属于爸爸类。格式:boolean b = 对象 instanceof 数据类型;...原创 2018-05-07 10:44:10 · 271 阅读 · 0 评论 -
字符编码表
编码表:其实就是生活中字符和计算机二进制的对应关系表。 1、ASCII:一个字节中的 7 位就可以表示。对应的字节都是正数。0-xxxxxxx 2、ISO-8859-1:拉丁码表 latin,用了一个字节 8 位。1-xxxxxxx 负数。 3、GB2312:简体中文码表。包含 6000-7000 中文和符号。用两个字节表示。两个字节第一个字 节是负数,第二个字节可能是正数 4、GBK...原创 2018-05-07 10:43:41 · 3836 阅读 · 0 评论 -
JVM、JRE、JDK有什么区别?
JVM:JVM是java虚拟机(JVM Java Virtual Machine),java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此java语言可以跨平台。JRE:包括java虚拟机和程序运行所需的核心类库,如果想运行一个开发好的java程序,只需要安装一个JRE即可。JDK:JDK是提供给开发人员使用,其中包括java开发工具包和JRE,开发工具包括编译工具(Javac.exe)、...原创 2018-04-16 11:33:24 · 270 阅读 · 0 评论 -
数据类型(基本数据类型(四类八种)、引用数据类型)
原创 2018-04-16 11:55:17 · 952 阅读 · 0 评论 -
数据类型转换
隐式数据类型转换:取值范围小的数据类型与取值大的数据类型进行运算,会将小的数据类型转换成大的数据类型,再运算。 public class TypeCastDemo { public static void main(String[] args) { //定义一个byte类型,定义一个int类型 byte a = 2; int b = 5; Syst...原创 2018-04-16 13:27:16 · 279 阅读 · 0 评论 -
字符、字符串参与运算
/* * 整数的加法。 * 字符参与加法操作。拿字符在计算机中底层存储对应的数据值来参与运算的。 * '0' 48 * 'a' 97 * 'A' 65 * 字符串参与加法操作。 * 这里的+其实不是加法,而是字符串连接符。 */ public class OperatorDemo3 { public static ...原创 2018-04-16 14:07:06 · 2860 阅读 · 0 评论 -
++和--的用法
单独使用时,++或者--无论是放在变量的前面还是后面,结果是一样的。参与操作时如果++或者--在变量的后面,先拿变量参与操作,后变量做++或者++例如 int a = a++;如果++或者--在变量的前面,先++或者--,后拿变量参与操作。例如 int a = ++a;...原创 2018-04-16 14:18:32 · 3539 阅读 · 0 评论 -
抽象类的特点
1、抽象类和抽象方法都需要用abstract修饰2、抽象方法必须在抽象类中,抽象类中可以没有抽象方法3、抽象类不能直接创造对象(实例化)4、抽象类的子类如果重写所有抽象方法,那么就是一个具体的类5、抽象类的子类不重写所有抽象方法,那么子类还是一个抽象类6、抽象类有构造方法,目的是让子类来调用构造方法初始化 abstract class Emoplyee { String name; ...原创 2018-04-17 11:58:03 · 9169 阅读 · 0 评论 -
抽象类和接口的区别
成员区别抽象类:1、可以定义成员变量,也可以定义常量2、有构造方法3、可以有抽象方法和非抽象方法4、类只能单继承接口:1、只能定义常量2、没有构造方法3、只能是抽象方法4、接口可以多继承...原创 2018-04-17 12:02:30 · 140 阅读 · 0 评论 -
瞬时态关键字transient
当一个类的对象需要被序列化时,某些属性不需要被序列化,这时不需要序列化的属性可以使 用关键字 transient 修饰。只要被 transient 修饰了,序列化时这个属性就不会琲序列化了。 同时静态修饰也不会被序列化,因为序列化是把对象数据进行持久化存储,而静态的属于类加 载时的数据,不会被序列化。...原创 2018-04-19 16:59:46 · 274 阅读 · 0 评论 -
序列化接口
当一个对象要被序列化,这个对象所属的类必须实现Serializable接口。当反序列化对象时,该接口给序列化的类,提供了一个序列版本号。 serialVersionUID. 该版本号的目的在于验证序列化的对象和对应类是否版本匹配。 import java.io.Serializable; // 序列化接口没有方法或字段,仅用于标识可序列化的语义 public class Per...原创 2018-04-19 17:00:13 · 677 阅读 · 0 评论 -
线程安全问题
其实,线程安全问题都是由全局变量及静态变量引起的,若每个线程中对全局变量、静态变量只有读操作,而无写的操作。一般来说,这个全局变量是线程安全的。...原创 2018-04-19 17:00:46 · 310 阅读 · 0 评论 -
ArrayList和LinkedList的区别
数组结构:连续的内存空间,根据数组的地址+索引很快算出元素的地址,查询快,数组添加或者删除元素都需要创建新的数组,还要复制里面的元素,添加和删除速度慢。链表结构:元素不是连续存放的上一个元素记录下一个元素的地址,增删快,查询慢。ArrayList:底层是使用数组来储存元素的。创建时会初始化一个长度为10的数组。LinkedList:底层是使用链表储存元素的,node表示一个节点,可以保存元素的值,...原创 2018-04-20 22:36:42 · 139 阅读 · 0 评论 -
HashMap和HashTable区别
HashMap:存储数据采用哈希表的结构,元素存取顺序不能保持一致。线程不安全,速度快。LinkedHash是HashMap的子类,存储数据是采用哈希表+链表的结构。通过链表结果可以保证元素的存取顺序一致。HahsTable:线程安全,速度慢。...原创 2018-04-20 22:37:47 · 198 阅读 · 0 评论 -
线程中Thread类和Object类的方法
Thread类:start、run、sleep、stopObject类:wait、notify、notifyAll,这三个方法都依赖锁对象,所对象可以是任意对象,所以定义在Object中start()和run()的区别start():启动线程并调用线程中的run()方法。run():执行该线程对象要执行的任务sleep()和wait()的区别sleep():不释放锁对象,释放CPU使用权在休眠的时...原创 2018-04-19 17:01:05 · 2029 阅读 · 0 评论 -
windows、linux、mac换行
windows:\r\nlinux:\nmac:\r原创 2018-04-19 17:01:48 · 231 阅读 · 0 评论 -
数组集合互相转换
数组转集合String[] arr = new String[5];List<String> list = Arrays.asList(arr);集合转数组List<String> list = new ArrayList<String>();Object[] arr = list.toArray();String[] arr = new String[list...原创 2018-04-20 21:46:19 · 206 阅读 · 0 评论 -
集合转数组
colllection接口中的方法1、Object[] toArray();返回包含此collection中所有元素的数组。2、<T>T toArray(T[] a);返回包含此collection中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。 import java.util.ArrayList; import java.util.Arrays; pub...原创 2018-04-20 22:38:37 · 202 阅读 · 0 评论 -
线程同步机制
同步代码块:同步代码块格式:synchronized (对象){ 操作共享数据的代码;}同步代码块的锁可以是任意对象,多个线程时,要使用同一个锁才能保证线程安全(锁必须是引用数据类型)。同步方法:同步方法格式:public synchronized void method(){ 操作共享数据的代码;}同步方法中的锁对象是this静态同步方法:在方法声明上加上static 静态方法解决同...原创 2018-04-20 22:39:12 · 156 阅读 · 0 评论 -
this放在第一行,super不能同时使用
不能同时出现,是因为this和super都要定义在第一行,所以只能有一个;那么为什么要定义在第一行呢?先说super,因为子类继承了父类的属性和方法,所以在先初始化父类的属性和方法,这样子类才可以初始化自己特有的,因为java中不允许调用没有初始化的成员。this就是调用本类的其他构造函数,在其他构造函数中也有默认的super(),或者自定义了带参的super,这样就初始化了父类的成员了,所...原创 2018-04-20 22:40:15 · 1971 阅读 · 0 评论 -
UDP和TCP协议的区别
UDP:1、连接:发送数据不需要创建连接,分为发送端和接收端2、大小:发送数据以包为单位进行发送,每个包的大小限制在64k3、传输速度块,可能会造成数据丢失4、相比TCP协议来说传输速度更快5、应用:直播,视频通话TCP:1、连接:数据传输可靠,传输之前需要连接2、大小:数据通过IO流的方式进行传输,可以传输无限大小的数据3、c/s:有服务端和客户端之分,也就是平时说的C/S(Client/Ser...原创 2018-04-19 16:59:14 · 2926 阅读 · 0 评论