Java基础知识
HumphreyHao
985+美硕,国外实习半载,深感好山好水好寂寞,遂放弃flag回国发展。
座右铭:
’傲视群雄,才是真正的美貌‘
展开
-
Java基础系列19: Java序列化和反序列化
Java基础系列19: Java序列化和反序列化 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 什么是序列化 对象序列化在java中代表把一个对象转换成一个字节数组存储起来. 如何实现序列化 类通过实现 java.io.Serializable 接口以启用其序列化功能。 注意内部类是不能序列化的,因为依赖于外部类. 以及静态变量也不属于对象的状态,属于类的状态,所以也不保存. 总结部分: 1、如果一个类想被序列化,需要实现Serializable接口。否则将抛出NotSeria原创 2020-06-27 11:44:28 · 182 阅读 · 0 评论 -
Java基础系列18: Java8新特性
Java基础系列18: Java8新特性 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 Lambad表达式 在最简单的形式中,一个lambda可以由用逗号分隔的参数列表、–>符号与函数体三部分表示 eg: Arrays.asList( "a", "b", "d" ).forEach( e -> System.out.println( e ) ); 注意e的类型可以不写,编译器会自动推测是什么类型 当然也可以把单句指令写成大括号包含的函数体 Arrays.asLis原创 2020-06-24 14:44:48 · 254 阅读 · 0 评论 -
Java基础系列17: 集合类
Java基础系列17: 集合类 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 Collection接口 最基本的集合接口,并不提供类的实现,有List和Set两个子接口 在Java中所有实现了Collection接口的类都必须提供两套标准的构造函数,一个是无参,用于创建一个空的Collection,一个是带有Collection参数的有参构造函数,用于创建一个新的Collection,这个新的Collection与传入进来的Collection具备相同的元素。 List接口 L原创 2020-06-22 12:18:35 · 140 阅读 · 0 评论 -
Java基础系列16: 内部类
Java基础系列16: 内部类 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 什么是内部类 在一个外部类的内部再定义一个类; 注意内部类有一些限制,比如不能被外界访问,如果定义为静态的就不能再访问外部类的变量. 但是内部类是可以访问外部类的所有成员变量的,包括private 使用内部类的好处 内部类可以继承自某个类,相当于提供了某种进入外围类的接口; 而且内部类能够独立的继承或者实现一个接口,而不用管外部类如何,也就是多重继承. 静态内部类 主要的特点是不依赖于外部类,以及不能原创 2020-06-22 12:17:59 · 108 阅读 · 0 评论 -
Java基础系列15: 多线程
Java基础系列15: 多线程 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 什么是线程 线程是一个独立执行的调用序列,同一个进程的线程在同一时刻共享一些系统资源(比如文件句柄等)也能访问同一个进程所创建的对象资源(内存资源)。java.lang.Thread对象负责统计和控制这种行为。 实现多线程主要是继承Thread类和实现Runable接口 线程的生命周期 如下图,引用自:https://www.runoob.com/wp-content/uploads/2014/01/原创 2020-06-22 12:17:25 · 112 阅读 · 0 评论 -
Java基础系列14: 注解
Java基础系列14: 注解 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 什么是注解 引用自https://how2playlife.com/2019/09/15/15%E3%80%81Java%E6%B3%A8%E8%A7%A3%E5%92%8C%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/, 的定义,注解可以用标签来进行解释. 相当于是提供一些元数据,起到说明和配置的功能,位于java.lang.annotation中 注解的用途 1、生成文档原创 2020-06-22 12:16:42 · 120 阅读 · 0 评论 -
Java基础系列13: 枚举
Java基础系列13: 枚举 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 什么是枚举类 用枚举类型定义的枚举变量只能取集合中的某一元素值,且是固定的. enum weekdays { Sun,Mon,Tue,Wed,Thu,Fri,Sat }; 可以给上述的这些字符都进行赋值. 枚举类的定义 1,不能继承其他父类,默认继承java.lang.Enum类 2,默认使用final修饰 3,所有实例必须在第一行给出 可以拥有实例,比如上面的sun,mon都是实例,有且仅有这原创 2020-06-22 12:16:17 · 98 阅读 · 0 评论 -
Java基础系列12: 泛型
Java基础系列12: 泛型 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 什么是泛型 直接看例子 List arrayList = new ArrayList(); arrayList.add("aaaa"); arrayList.add(100); for(int i = 0; i< arrayList.size();i++){ String item = (String)arrayList.get(i); Log.d("泛型测试","item =原创 2020-06-21 05:39:42 · 119 阅读 · 0 评论 -
Java基础系列11: 反射机制
Java基础系列11: 反射机制 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 什么是反射 通过反射,我们可以在运行时获得程序或程序集中每一个类型的成员和成员的信息. 反射的核心是JVM在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的时候或编译期)知道运行对象是谁。 也就是说有些时候我们需要在程序运行到某一步时才去创建一个类的对象,或者根据这个对象的类型去调用某个函数,而这些在编译器是未知的. 也就是动态的创建对象 什么时候运用反射 在运行时判断任意一个对象所原创 2020-06-21 05:39:03 · 147 阅读 · 0 评论 -
Java基础系列10: 回调机制
Java基础系列10: 回调机制 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 几种调用机制 同步调用 同步调用是最基本并且最简单的一种调用方式,类A的方法a()调用类B的方法b(),一直等待b()方法执行完毕,a()方法继续往下走。这种调用方式适用于方法b()执行时间不长的情况,因为b()方法执行时间一长或者直接阻塞的话,a()方法的余下代码是无法执行下去的,这样会造成整个流程的阻塞 异步调用 类A的方法a()通过新建立一个线程的方式调用类B的方法b(),代码继续往后执行.原创 2020-06-21 05:38:26 · 111 阅读 · 0 评论 -
Java基础系列5: 文件结构
Java基础系列5: 文件结构 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 包 包的作用: 1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。 2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。 3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类 包声明应该在源文件的第一行,每个源文件只能有一个包声明原创 2020-06-20 08:56:51 · 202 阅读 · 0 评论 -
Java基础系列9: 异常体系
Java基础系列9: 异常体系 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 为什么要使用异常 核心用法是精准定位出现错误的地方,以及把处理错误的代码和正常逻辑代码进行分割. 异常出现于程序在正常情况下无法再继续运行了,此时程序就会从所给环境中跳出,抛出异常,new一个异常对象,跳转到异常处理程序 异常的体系结构 Throwable这个类是所有异常的父类,有error和exception两个子类. error是不能被程序员处理的,很少出现.如果出现了我们应该修正代码,而不是去捕原创 2020-06-20 15:39:57 · 111 阅读 · 0 评论 -
Java基础系列8: Object类
Java基础系列8: Object类 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 Object类 Object是所有类的共有祖先,属于java.lang包里,没有属性但是有13个方法,有9个是所有类都继承了; 1.clone方法 保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。 2.getClass方法 final方法,获得运行时类型。 3.toString方法 该方法用得比较多,原创 2020-06-20 15:35:14 · 170 阅读 · 0 评论 -
Java基础系列7: 代码块和执行顺序
Java基础系列7: 代码块和执行顺序 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 构造方法 构造方法不能被static、final、synchronized、abstract 和 native 修饰,原因是构造方法用于初始化一个新对象,所以用 static 修饰没有意义;构造方法不能被子类继承,所以用 final 和 abstract 修饰没有意义;多个线程不会同时创建内存地址相同的同一个对象,所以用 synchronized 修饰没有必要。 一个类可以有多个构造方法,维持原创 2020-06-20 15:34:30 · 89 阅读 · 0 评论 -
Java基础系列6: 抽象类和接口
Java基础系列6: 抽象类和接口 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 抽象类 只给出方法的定义而不给出方法体,也就是没有’{}’ 包含一个或多个抽象方法的类必须被声明为抽象类 使用abstract修饰符来表示抽象 抽象类不能被实例化,也就是不能new.必须由子类继承实现之后才能实例化子类. 这里还有一个多态的典型例子: People people=new Teacher("教师"); people.work(); 一个核心的判断方法: 抽象类可以不包含抽象方法,包原创 2020-06-20 08:57:38 · 153 阅读 · 0 评论 -
Java基础系列4: final的使用
Java基础系列4: final的使用 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 final的常规使用 final关键字经常和static一同使用,代表类常量; 可以选择在声明的时候初始化,或者在构造函数中初始化,无默认值 常量的读取和加载类是分开的,只读取变量而不会调用构造函数,缓存在常量池中 public class Main { public static final int i = 2; Main() { System.out.pri原创 2020-06-20 08:56:26 · 73 阅读 · 0 评论 -
Java基础系列3: String类型的分析
Java基础系列3: String类型的分析 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 初始化 String类有11种构造方法,提供不同的参数来初始化. String类的对象是不可变的,一旦创建就不可改变 这里要理解以下,比如: str1='a' str1='b' 这是允许的,但是字符串’a’并没有被改变,只不过是str1这个指针现在指向了’b’这个对象. 如果需要修改可以使用StringBuffer或者StringBuilder类 5大常用方法:length(),sub原创 2020-06-18 16:27:32 · 113 阅读 · 0 评论 -
Java基础系列2: 自动装箱与拆箱
Java基础系列2: 自动装箱与拆箱 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 内置数据类型 byte:8位的,-128到127,默认值为0 short:16位,(-32768,32767),默认值为0 int:32位 long:64位,默认值0L float:32位,默认值0.0f double:64位,默认值0.0d boolean:1位,默认值false char:16位 引用数据类型 对象,数组都是引用数据类型,所有的引用数据类型默认值都是null 常量 fin原创 2020-06-17 15:18:47 · 113 阅读 · 0 评论 -
Java基础系列1:三大特性
Java基础系列1:三大特性 本文是作者的读书笔记和心得整理,部分内容来源于网络,如有侵权,请联系作者。 何为对象 对象就是instance,也可以说是实例,指的是现实世界中的实体,比如一个人,一个小狗,一粒沙子,都是一个对象。 对象有以下的特征: 对象具有属性和行为 对象具有唯一性 对象都是某个类别的实例 一切皆为对象,真实世界中的所有事物都可以视为对象 面向对象和面向过程的区别 面向过程的本质是先后顺序,也就是先有一个流程,然后对每个流程都使用函数一步一步实现,从而最后实现整个过程。 典型语言是C语原创 2020-06-17 13:42:41 · 112 阅读 · 0 评论