
java基础
z真真
我是咸鱼,我是咸鱼,我是咸鱼!
展开
-
Java内部类
成员内部类:内部类的默认持有外部类的引用(可以访问任何修饰符的成员变量、成员方法)创建内部类对象,需要先持有一个外部类的实例(依附于外部类)外部类访问内部类,需要先创建一个内部类的实例(也可创建多个内部类的实例)内部类可以拥有private访问权限、protected访问权限、public访问权限及包访问权限当内部类持有和外部类同名的变量/方法时,默认访问内部类的变量/方法(除非显示指...原创 2019-04-26 13:57:17 · 140 阅读 · 0 评论 -
Java抽象类和接口的区别
抽象方法:抽象方法不能定义方法体抽象方法必须为public(默认)或者protected(private类型,不能被子类继承,子类便无法实现该方法)。抽象方法不能声明为static类型抽象类: 对一种事物的抽象,是一种模板式设计抽象类不能直接实例化,必须实现所有抽象方法抽象类可以但不是必须要有抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类abstract具体派生类...原创 2019-04-26 15:57:14 · 230 阅读 · 0 评论 -
Android序列化、反序列化
继承不是在子类对象中保存了一个父类对象,而是在子类对象中持有一个指向父类对象的引用,super。也就是说,在Java内部,继承是通过隐式的组合实现的。在实际的方法调用中,java会优先在当前类对象中寻找名称相同的方法,如果没有,进根据super引用到父类对象中去寻找,所以,如果父类方法在子类中得到重写,java会调用子类的方法,而不会调用被重写的父类方法,这也是多态的实现机制。(如果基类和派生类有...原创 2019-04-27 15:35:17 · 377 阅读 · 0 评论 -
Integer和String转换
Integer和String相互转换// 1、String 转 IntegerInteger value = Integer.parseInt(s);// 2、int 转 StringString.valueOf(value); //Integer.toString(i)Integer.toString(value);// 3、Integer 转 StringString.val...原创 2019-04-28 14:39:48 · 5239 阅读 · 0 评论 -
int和Integer自动装箱和拆箱
1、int和Integer的区别:int是基本数据类型,直接存储的数值,默认是0Integer 是int的包装类,是个对象,存放的是对象的引用,必须实例化之后才能使用,默认是null2、int和Integer比较的特性== 地址比较数值类型int自动装箱成对象Integer,实际上是调用了Integer.valueOf(),如果数值范围在-128到127会默认从常量池获取对象,...原创 2019-04-28 16:02:45 · 991 阅读 · 0 评论 -
Java多态
面向对象编程的三个特性:封装:隐藏内部细节继承:实现复用多态:事物在运行过程中存在不同的状态(编译时多态、运行时多态是通过动态绑定实现)。实现多态有 3 个必要条件:继承、重写和向上转型。继承:在多态中必须存在有继承关系的子类和父类。重写:子类重写父类方法,在调用这些方法时就会调用子类的方法。向上转型:将子类的引用赋给父类对象(父类对象不能直接使用子类的成员变量/成员方法,需强...原创 2019-04-24 17:27:30 · 164 阅读 · 0 评论 -
Java异常体系
1、Java异常体系Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。 在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception。其中异常类Exception又分为运行时异常(RuntimeException)和编译异常,也称之为非受检查异常(Unchecked Exception)和受检查异常(C...原创 2019-04-29 14:26:41 · 211 阅读 · 0 评论 -
String不可变
java中String类设计成不可变的原因为什么String被设计为不可变?是否真的不可变?转载 2019-04-29 16:59:16 · 391 阅读 · 0 评论 -
字符集、字符编码、数据类型占字节数
一、基本类型占字节数C语言:与操作系统的位数和编译器(不同编译器支持的位数可能有所不同)都有关Java语言:跨平台特性,数据类型占字节数固定。二、字符集和编码集字符编码笔记:ASCII,Unicode 和 UTF-8图说我对Unicode的几点理解编码方式英文(字节数)中文(字节数)GB231212GBK12ISO-8859-111...原创 2019-04-25 16:58:29 · 1040 阅读 · 0 评论 -
java编译与反编译
1、场景:idea新建了一个项目test,在包名example.demo.reflect下有两个java文件,Parent和Son,Son继承自Parent。进入E:\ideaproject\test\src\example\demo\reflect目录下,javac Parent.java 是OK的。javac Son.java报错。E:\ideaproject\test\src\exam...原创 2019-05-09 15:39:36 · 867 阅读 · 0 评论 -
深拷贝和浅拷贝
Java中的对象拷贝主要分为:引用拷贝,浅拷贝(Shallow Copy)、深拷贝(Deep Copy)。1、引用拷贝并没有创建一个新的对象,两个对象都指向同一个引用地址。对于对象内的数据,不管是基本类型还是引用类型的修改,都会影响到另一个对象。2、浅拷贝创建一个新对象,并对对象内的每个数据进行拷贝。数据属性是基本类型或String,拷贝的就是基本类型或String的值;数据属性是...原创 2019-05-17 17:59:55 · 343 阅读 · 0 评论 -
关于静态域,静态方法,构造函数的执行顺序探讨
基类public class Animal { private String Tag = getClass().getSuperclass().getSimpleName(); public int a; private static String staticTag = "Animal_STATIC"; static { System.ou...原创 2019-06-10 15:57:51 · 470 阅读 · 0 评论 -
Java类装载机制
ClassLoader#loadClass()如果本地有缓存,则从缓存中取,否则从parent中取。如果ClassLoader/ExtClassLoader/BootStrap都没有找到,则findClass(),findClass子类会继承重写。protected Class<?> loadClass(String name, boolean resolve) ...原创 2018-11-14 18:49:48 · 561 阅读 · 0 评论 -
Java值传递和引用传递
值传递基本类型的传参,在方法内部是值拷贝,在方法内对这个局部变量的修改不影响原来的参数。Java的八种基本类型:byte、short、int、Long、float、double、boolean、charJava基本类型的包装类:Byte、Short、Integer、Long、Character、Float、Double、Boolean (值传递)String是特殊的值传递对象引用传递对...原创 2019-01-14 14:24:27 · 130 阅读 · 0 评论 -
Java反射机制
Java 反射可以让我们在运行时获取类的函数、属性、父类、接口等 Class 内部信息。通过反射,我们可以在运行期实例化对象,调用方法,获取/设置类属性。Java 文件经过 javac 编译成class 文件,这些 Class 对象承载了这个类型的父类、接口、构造函数、方法、属性等原始信息,这些 class 文件在程序运行时会被 ClassLoader 加载到虚拟机中。类加载后,Java 虚拟...原创 2019-01-10 16:48:36 · 216 阅读 · 0 评论 -
Java IO/NIO的区别
磁盘访问速度: CPU > 内存 > 硬盘I(input) - 就是从硬盘到内存O(output) - 就是从内存到硬盘Java IO 是阻塞式的操作,当一个inputstream或outputstream在进行read()或write()操作时,是一直处于等待状态的,直到有数据读/写入后才进行处理。Java NIO 是非阻塞式的,多个通道,当进行读写操作时,只会返回当前已经...原创 2019-01-10 18:46:56 · 510 阅读 · 0 评论 -
Java泛型、通配符、类型擦除、pecs
1、Java泛型Java的泛型是JDK1.5时引入的。Java的泛型是伪泛型。1.泛型类在创建实例时,需要为其类型变量赋值 class A<T>{ }2.泛型方法class A<T>{ public T fun1(){} public void fun2(T t){} //参数 /原创 2019-01-10 18:47:56 · 373 阅读 · 0 评论 -
垃圾回收机制
垃圾回收机制(gabage collection):针对垃圾对象的一个回收,主要发生在jvm的堆内存中,首先我们要判断这是不是个垃圾对象,然后根据不同的垃圾算法去进行回收。一 .判断一个对象是否存活在Java虚拟机中,判断对象是否存活有2种方法:引用计数法可达性分析法1.引用计数法在java中,是通过引用来操作对象的。假如说一个对象有引用指向它,则意味着它是存活的。给对象中添加一个...原创 2019-01-12 23:28:24 · 378 阅读 · 0 评论 -
Annotation注解
An annotation is a form of metadata, that can be added to Java source code. Classes, methods, variables, parameters and packages may be annotated. Annotations have no direct effect on the operation of...原创 2019-01-08 16:08:37 · 616 阅读 · 0 评论 -
Java对象的创建和访问
一、对象创建流程Java对象都是通过关键字new指令,来创建的。1、类加载检查检查能否能在常量池中定位到一个类的符号引用检查该类符号引用代表的类是否已被加载、解析和初始化过2、为对象分配内存并初始化对象所需内存的大小在类加载完成后便可完全确定内存分配 根据 Java堆内存是否绝对规整 分为两种方式:指针碰撞 & 空闲列表内存分配完成后,虚拟机对内存空间进行初始化(不包括对...原创 2019-01-14 13:57:25 · 315 阅读 · 0 评论