
java
java
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
LeBronGod
life is a fu ck ing movie
展开
-
Java笔记之序列化
序列化序列化是指把一个Java对象变成二进制内容,本质上就是一个byte[]数组。为什么要把Java对象序列化呢?因为序列化后可以把byte[]保存到文件中,或者把byte[]通过网络传输到远程,这样,就相当于把Java对象存储到文件或者通过网络传输出去了。有序列化,就有反序列化,即把一个二进制内容(也就是byte[]数组)变回Java对象。有了反序列化,保存到文件中的byte[]数组又可以...原创 2020-04-01 17:58:21 · 214 阅读 · 0 评论 -
Java笔记之操作Zip
操作ZipZipInputStream是一种FilterInputStream,它可以直接读取zip包的内容派生关系:JarInputStream->ZipInputStream->FilterInputStream->InputStream.JarInputStream增加的主要功能是直接读取jar文件里面的MANIFEST.MF文件。因为本质上jar包就是一个zip包,...原创 2020-03-30 21:40:39 · 199 阅读 · 0 评论 -
Java笔记之Filter模式
Filter模式Java的IO标准库提供的InputStream根据来源可以包括:FileInputStream:从文件读取数据,是最终数据源;ServletInputStream:从HTTP请求读取数据,是最终数据源;Socket.getInputStream():从TCP连接读取数据,是最终数据源;如果我们要给FileInputStream添加缓冲功能,则可以从FileInputSt...原创 2020-03-28 17:49:07 · 380 阅读 · 0 评论 -
Java笔记之OutputStream
OutputStreamOutputStream是Java标准库提供的最基本的输出流。和InputStream类似,OutputStream也是抽象类,它是所有输出流的父类。这个抽象类定义的一个最重要的方法就是void write(int b),签名如下:public abstract void write(int b) throws IOException;这个方法会写入一个字节到输出流。...原创 2020-03-26 18:40:45 · 334 阅读 · 0 评论 -
Java笔记之InputStream
InputStreamInputStream就是Java标准库提供的最基本的输入流。要注意的是,InputStream并不是一个接口,而是一个抽象类,它是所有输入流的超类。这个抽象类定义的一个最重要的方法就是int read(),签名如下:public abstract int read() throws IOException;这个方法会读取输入流的下一个字节,并返回字节表示的int值。...原创 2020-03-23 15:57:00 · 295 阅读 · 0 评论 -
Java笔记之File对象
File对象在计算机系统中,文件是非常重要的存储方式。Java的标准库java.io提供了File对象来操作文件和目录。当要构造一个File对象时,需传入其文件路径:import java.io.*;public class Main { public static void main(String[] args) { File f = new File("C:\\W...原创 2020-03-22 15:19:00 · 243 阅读 · 0 评论 -
Java笔记之IO
IOIO是指Input/Output,即输入和输出。以内存为中心:Input指从外部读入数据到内存例如,把文件从磁盘读取到内存,从网络读取数据到内存等等。Output指把数据从内存输出到外部例如,把数据从内存写入到文件,把数据从内存输出到网络等。之所以把数据读到内存才处理这些数据是因为代码是在内存中运行的,数据也必须读到内存,最终的表示方式无非是byte数组,字符串等,都必须存放在内存...原创 2020-03-21 18:25:34 · 248 阅读 · 1 评论 -
Java笔记之使用Collections
使用CollectionsCollections是JDK提供的工具类,同样位于java.util包中。它提供了一系列静态方法,能更方便地操作各种集合。注意Collections结尾多了一个s,不是Collection!创建空集合Collections提供了一系列方法来创建空集合:①创建空List:List<T> emptyList()②创建空Map:Map<K, V&...原创 2020-03-20 11:15:48 · 169 阅读 · 0 评论 -
Java笔记之使用Iterator
使用IteratorJava的集合类都可以使用for each循环,List、Set和Queue会迭代每个元素,Map会迭代每个key。以List为例:List<String> list = List.of("Apple", "Orange", "Pear");for (String s : list) { System.out.println(s);}实际上,Jav...原创 2020-03-18 18:59:58 · 153 阅读 · 0 评论 -
Java笔记之Deque与Stack
使用Deque允许两头都进,两头都出,这种队列叫双端队列(Double Ended Queue),简称Deque。Java集合提供了接口Deque来实现一个双端队列,它的功能:①既可以添加到队尾,也可以添加到队首;②既可以从队首获取,又可以从队尾获取。在原来的queue的方法名上加了表示在队首还是队尾操作的表示(Last或First)。Deque接口实际上扩展自Queue:publ...原创 2020-03-17 18:16:11 · 6162 阅读 · 0 评论 -
Java笔记之Queue
在Java的标准库中,队列接口Queue定义了以下几个方法:①int size():获取队列长度;②boolean add(E)/boolean offer(E):添加元素到队尾;③E remove()/E poll():获取队首元素并从队列中删除;④E element()/E peek():获取队首元素但并不从队列中删除。对于具体的实现类,有的Queue有最大队列长度限制,有的Queu...原创 2020-03-16 18:50:25 · 255 阅读 · 0 评论 -
Java笔记之使用set
使用set当使用Map用于存储key-value的映射,对于充当key的对象,是不能重复的,并且,不但需要正确覆写equals()方法,还要正确覆写hashCode()方法。如果我们只需要存储不重复的key,并不需要存储映射的value,那么就可以使用Set。Set用于存储不重复的元素集合,它主要提供以下几个方法①元素添加进Set<E>:boolean add(E e)②将元...原创 2020-03-15 11:56:08 · 136 阅读 · 0 评论 -
Java笔记之使用Properties
Properties在编写应用程序的时候,经常需要读写配置文件。例如,用户的设置:# 上次最后打开的文件://#号后面的代表注释last_open_file=/data/hello.txt# 自动保存文件的时间间隔:auto_save_interval=60配置文件的特点是,它的Key-Value一般都是String-String类型的,因此我们完全可以用Map<String, ...原创 2020-03-14 12:31:02 · 177 阅读 · 0 评论 -
Java笔记之使用EnumMap和TreeMap
使用Enum Map因为HashMap是一种通过对key计算hashCode(),通过空间换时间的方式,直接定位到value所在的内部数组的索引,因此,查找效率非常高。如果作为key的对象是枚举类型,那么,还可以使用Java集合库提供的一种EnumMap,它在内部以一个非常紧凑的数组存储value,并且根据枚举类型的key直接定位到内部数组的索引,并不需要计算hashCode(),不但效率最高...原创 2020-03-13 12:38:34 · 273 阅读 · 0 评论 -
Java笔记之编写hashCode
HashmapMap是一种键-值(key-value)映射表,Hashmap就是map的一种,HashMap之所以能根据key直接拿到value,原因是它内部通过空间换时间的方法,用一个大数组存储所有value,并根据key直接计算出value应该存储在哪个索引:如果key的值为"a",计算得到的索引总是1,因此返回value为Person("Xiao Ming"),如果key的值为"b",...原创 2020-03-12 16:58:43 · 305 阅读 · 0 评论 -
Java笔记之编写equals方法
关于equals方法我们知道List是一种有序链表:List内部按照放入元素的先后顺序存放,并且每个元素都可以通过索引确定自己的位置。List还提供了boolean contains(Object o)方法来判断List是否包含某个指定元素。此外,int indexOf(Object o)方法可以返回某个元素的索引,如果元素不存在,就返回-1。public class Main { ...原创 2020-03-11 17:43:37 · 299 阅读 · 0 评论 -
Java笔记之使用Map
使用Map我们知道,List是一种顺序列表,如果有一个存储学生Student实例的List,要在List中根据name查找某个指定的Student的分数,最简单的方法是遍历List并判断name是否相等,然后返回指定元素Student target = null;for (Student s : list) { if ("Xiao Ming".equals(s.name)) { ...原创 2020-03-10 18:50:09 · 234 阅读 · 0 评论 -
Java笔记之Java集合
CollectionJava标准库自带的java.util包提供了集合类:Collection,它是除Map外所有其他集合类的根接口。Java的java.util包主要提供了以下三种类型的集合:List:一种有序列表的集合,例如,按索引排列的Student的List;Set:一种没有重复元素的集合,例如,所有无重复名称的Student的Set;Map:一种通过键值查找的映射表集合,例如,根...原创 2020-03-09 16:00:25 · 161 阅读 · 0 评论 -
Java笔记之Java泛型(下)
擦拭法泛型是一种类似”模板代码“的技术,不同语言的泛型实现方式不一定相同。Java语言的泛型实现方式是擦拭法。所谓擦拭法是指,虚拟机对泛型其实一无所知,所有的工作都是编译器做的。比如下面这个泛型类,编译器里面是????这样的public class Pair<T>{ private T first; private T last; public Pair(T first,T l...原创 2020-03-08 12:56:40 · 209 阅读 · 0 评论 -
Java笔记之Java泛型(上)
泛型是一种“代码模板”,可以用一套代码套用各种类型。讲泛型之前,我们先来看看ArraryList,它可以看作“可变长度”的数组,因为用起来比数组更方便。实际上ArrayList内部就是一个Object[]数组,配合存储一个当前分配的长度,就可以充当“可变数组”:public class ArrayList { private Object[] array; private i...原创 2020-03-07 14:24:43 · 190 阅读 · 0 评论 -
Java笔记之Java注解使用
注解①注解是放在Java源码的类、方法、字段、参数前的一种特殊“注释”②注释会被编译器直接忽略,注解则可以被编译器打包进入class文件,因此,注解是一种用作标注的“元数据”(讲的通俗一点,就是为这个方法增加的说明或功能。) @Override//例如:@Overvide这个注解就用来说明这个方式重写父类的 public String toString() { ...原创 2020-03-06 19:12:04 · 183 阅读 · 0 评论 -
Java笔记之Java反射
Java反射其实是指在运行状态中,我们可以知道任何一个类的方法和属性。对于任何一个对象,我们都能对他的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。Class类①Java除去基本类型以外都是class(包括这个interface)②class/interface的数据类型是Class③每加载一个class,JVM就为其创建一个Class类型的实例pub...原创 2020-03-05 20:07:54 · 285 阅读 · 0 评论 -
Java笔记之Java异常处理
Java的异常①Java使用异常Exception来表示错误②Exception是Class,带有类型信息③异常可以在任何地方抛出④异常只需要在上层捕获,和方法调用分离必须捕获的异常①必须捕获的异常称为Checked Exception②不必须捕获的异常包括 RuntimeException 和 Error 及其子类③捕获异常使用 try … catch④不捕获的Checke...原创 2020-03-03 20:49:48 · 191 阅读 · 0 评论 -
读书笔记之《Head First Java》之Java核心类
String类①equals(object)比较两字符串是否相等②equalsIgnoreCase(object)忽略大小写比较两字符串是否相等③Boolean contains(string)判断是否包含改字串④int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。int indexOf(String s...原创 2020-03-02 20:30:27 · 265 阅读 · 0 评论 -
读书笔记之《Head First Java》之包和class path
静态字段和方法用static修饰的字段称为静态字段①普通字段在每个实例中都有自己的一个独立空间②静态字段只有一个共享空间,所有实例都共享该字段③推荐用类名访问静态字段,不推荐用实例变量访问(会报warning)④可以把静态字段理解为描述class本身的字段(非实例字段)public class Person{ public String name; public int age;...原创 2020-03-01 18:59:32 · 154 阅读 · 0 评论 -
读书笔记之《Head First Java》之接口与抽象类
抽象类①abstract可以把父类的方法声明为抽象方法,无内容也可以被子类覆写。②abstract要同时对类和方法进行声明③抽象方法没有任何执行语句④无法实例化一个抽象类,但可以实例化这个抽象类的子类⑤抽象类只用于被继承⑥抽象类可以强迫子类实现其定义的抽象方法⑦抽象方法实际上相当于定义了“规范”pubulic abstract class Shape{//定义一个抽象类shape...原创 2020-02-29 19:45:29 · 186 阅读 · 0 评论 -
读书笔记之《Head First Java》之继承与多态
继承与方法重写override,什么是方法重写?由子类重新定义从父类中继承来的方法,将其改变或延伸。成员变量不存在重写这个说法。public void roam() { // 继承父类方法的功能 super.roam(); // 扩展的功能}区分IS-A 与 HAS-A 关系IS-A,表示二者具有继承关系,这是一种单向的链式关系。HAS-A,表示二者是包含关系。四种访问...原创 2020-02-28 21:14:25 · 209 阅读 · 0 评论 -
读书笔记之《Head First Java》使用Java函数库
不用再自己写了有了Java内置的数百个类,有了他们不用自己动手就能丰衣足食了。核心Java函数库是由一堆等着被你当做组件使用的类集合而成的。ArrayList与数组传统数组是无法改变自身大小的,定义伊始就得确定数组大小。我们急需一种可以自动伸缩,类似数组的结构,Arraylist应运而生。他不是数组,它是Java函数库中的另一个类,是一个对象。他带有很多方法:add(Object ...原创 2020-02-26 19:19:30 · 210 阅读 · 0 评论 -
读书笔记之《Head First Java》对象的行为、超强力方法
对象的行为对象中,实例变量和方法之间有着怎样的关系?状态影响行为,行为影响状态。实例变量即状态,方法即行为。什么是形参和实参?这个和C倒没什么区别我们可以给方法传入参数。实参是传给方法的值。当实参传入方法后就成了形参。给方法传入实参时,实参的顺序、类型、数量必须与形参的顺序、类型、数量完全一致。你还可以把变量当作实参传入方法,只要其类型符合要求即可。方法的参数传递为什么是值传递?什...原创 2020-02-24 19:36:57 · 174 阅读 · 0 评论 -
读书笔记之《Head First Java》primitive主要数据类型和引用
认识变量变量有两种:primitive主要数据类型和引用。声明变量Java注重变量。它不会让你将浮点数类型变量放进整数类型的变量中,除非你先跟编译器确认过数字可以损失掉精确度。为了要让类型安全能过发挥作用,必须声明所有变量的类型。primitive主数据类型用来保存基本类型的值,包括整数、布尔和浮点数等,而对象引用保存的是对象的引用。声明变量的规则:变量必须拥有类型、变量必须要有名称。...原创 2020-02-21 20:39:11 · 216 阅读 · 0 评论