自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(128)
  • 收藏
  • 关注

原创 Java IO_文件分割_面向过程核心版 尚学堂187

https://www.bilibili.com/video/BV1ct411n7oG?p=188RandomAccessFile类的实例支持读取和写入随机访问文件。其构造器可以指定读写模式:它的第一个参数是文件的路径或文件的对象,不是放其它的流了,第二个参数mode:可以有读取和读写,"rws"和"rwd"不常用。他的操作方式和字节流是一样的。其seek(搜寻)方法:测试RandomAccessFile 的 seek方法:指定起始位置,读取剩...

2020-07-30 11:44:24 64

原创 Java IO_打印流 尚学堂186

https://www.bilibili.com/video/BV1ct411n7oG?p=187打印流也是处理流:System.out就是这个流。这个流方便我们打印各种数据。只见字节流。PrintStream的构造器:他的构造器可以直接指定文件,可以指定文件的编码,以及文件的对象,还可以指定字节流。他的字节流可以自动刷新,不用手动的flush了。以及可以指定字节流处理文本时候的编码的字符集。PrintStream的append方法的内部返回的是this对象。..

2020-07-29 21:08:54 81

原创 Java IO_对象流 尚学堂185

对象流操作的除了基本数据类型、字符串,还包括其他的各种对象,包括自定义的对象。ObjectInputStream和ObjectOutputStream有特殊的叫法。序列化:ObjectOutputStream,对象输出流。反序列化:ObjectInputStream,对象输入流。必须先写出后读取,写出的顺序与输出的顺序保持一致。不是所有的对象都可以序列化,必须有一个标识,告诉虚拟机这个对象可以序列化。ObjectOutputStream将原始的数据类型和对象写入字节流OutputS..

2020-07-29 19:54:29 51

原创 Java IO_数据流 尚学堂184

数据流是一种装饰流:DataInputStream 和 DataOutputStrean 的作用是方便我们处理8大基本数据类型和字符串,它不止保留了数据,还保留了数据类型,方便我们后期获取这个数据类型,而不用我们去强转了。处理的时候要保证顺序一致(数据类型的排序),读取的顺序和写出的顺序保持一致。一般来说,是先写出再读取。DataOutputStream以便携式方式将原始Java数据类型写入输出流(即保留了数据类型)。DataOutputStream的构造器:需要一个..

2020-07-29 16:04:37 51

原创 Java IO_转换流_字符集 尚学堂183

https://www.bilibili.com/video/BV1ct411n7oG?p=184转换流也是一种装饰流:转换流的作用是将字节流转换成字符流。字节流可以处理一切东西,包括图片、视频、音频、纯文本等,所以很多系统或则框架的底层返回给你的都是字节流。System.in 和 System.out 都是字节流。使用的前提是给的字节流全是纯文本的内容,非纯文本的内容使用字符流是处理不了的。在处理的过程中可以指定字符集。InputStreamReaderAn...

2020-07-29 14:28:46 66

原创 Java IO_字符缓冲流 尚学堂182

BufferedReader和BufferedWriter提供了很多新增的方法,所以不要发生多态。要用子类新的方法就不要发生多态的举例:https://blog.csdn.net/BOKEhhh/article/details/107654439用多态也可以,但BufferedReader和BufferedWriter很多新增的便利的方法就不能用了。BufferedReader从字将输入流读取文本(注意,是纯文本),缓冲字符,以提供字符,数组和行的高效读取。BufferedReader...

2020-07-29 10:26:30 60

原创 Java 要用子类的新方法就不要发生多态

举例:public class TestDuoTai { public static void main(String[] args) { People people = new Student(); people.say(); //people.say2();//会报错:The method say2() is undefined for the type People System.out.println("-----"); Student s = new Studen.

2020-07-29 09:27:05 64

原创 Java IO_字节缓冲流 尚学堂181

https://www.bilibili.com/video/BV1ct411n7oG?p=182装饰流也称为处理流。字节缓冲流是对字节流的缓冲。不管怎么套,最底层的一定是节点流。节点流始终处于第一线。每个流都释放也没有问题,释放的规则是从里到外释放。释放BufferedInputStream的时候,它内部会自己找要释放的节点流。1、缓冲流提高了性能。2、最底层的一定是节点流。节点流始终处于第一线。3、释放的时候只需要释放最外层的处理流,它的内部会自动释放节点流。如果想手

2020-07-28 21:33:45 56

原创 Java IO_原理剖析_装饰器设计模式 尚学堂180

https://www.bilibili.com/video/BV1ct411n7oG?p=181GOF设计模式装饰器设计模式模拟一个声音放大器:/** * 实现放大器对声音的放大功能 */public class Test { public static void main(String[] args) { Person p = new Person(); p.say(); //装饰 Amplifier am = new Amplifier(p);

2020-07-28 20:08:08 31

原创 Java IO_工具类 尚学堂179

FileInputStream的构造器可以直接传一个String类型的参数,它的内部会自己new File,我们就可以把创建源头这部给省略了:public FileInputStream(String name) throws FileNotFoundException { this(name != null ? new File(name) : null);}FileInputStream的构造器抛出异常FileNotFoundException,而FileNotFoundExcept

2020-07-28 19:00:52 40

原创 Eclipse提示JRE Oracle Corporation/14.0.2 is not supported, advanced source lookup disabled.

原来的JDK是1.8的,然后装了新的JDK14,执行代码时eclipse在控制台输出如下红句:JRE Oracle Corporation/14.0.2 is not supported, advanced source lookup disabled.发现这个eclipse支持的最好版本JDK是11:应该是eclipse版本太低的原因吧,所以去eclipse官网下最新的版本:eclipse官网下载:https://www.eclipse.org/downloads...

2020-07-28 17:02:13 487

原创 下载的JDK没有JRE

想要用try...with...resource,但是eclipse报错,提示不支持JDK9以下的版本:我原来装的JDK版本是1.8.0_201于是,去oracle官网下载了JDK14:jdk-14.0.2_windows-x64_bin.exeoracle官网JDK下载地址:https://www.oracle.com/technetwork/java/javase/overview/index.html但是,下载的JDK并没有装JRE:以管理员身份运行cmd,cd到新的.

2020-07-28 11:16:57 202

原创 Java IO_综合_对接流 尚学堂178

https://www.bilibili.com/video/BV1ct411n7oG?p=1791、图片读取到字节数组2、字节数组写出到文件import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.

2020-07-27 17:38:43 38

原创 Java IO_字节数组流 尚学堂177

ByteArrayInputStream类往构造方法里传的参数是字节数组,不是文件:getBytes方法能得到字节数组。FileInputStream和FileOutputStream的源是文件,存在硬盘中,Java虚拟机不能直接去操作,要通过操作系统(OS),所以用完后要通知操作系统去释放资源(close方法)ByteArrayInputStream的是字节数组,在内存中,不用close,是靠GC回收的。所以,ByteArrayInputStream类的close方法是个空方法,.

2020-07-27 16:22:37 37

原创 Java IO_文件流 尚学堂176

用InputStream处理的时候://3、操作(读取)int temp;while((temp = is.read()) != -1) { System.out.println((char)temp);}(char)temp遇到中文字符可能转不出来,因为字节数可能不够。英文字符没有任何问题。FileReader就可以很方便地处理,内部不用管它。直接用,很少会出现乱码的问题,它的内部已经处理完了。FileInputStream处理的是字节数组,FileReader处理的就可以

2020-07-27 11:58:21 46

原创 Java IO_文件拷贝 尚学堂175

https://www.bilibili.com/video/BV1ct411n7oG?p=176拷贝图片文件的例子:import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import .

2020-07-27 10:57:15 44

原创 请忽略_网站测试20200727_引用图片url用

【注】本文章设置为可公开访问,但请忽略本文章。【这是什么】本地网页测试,需要放置图片,其URL地址指向本页面。原始图片:

2020-07-27 09:55:27 37

原创 Java IO_文件字节流 尚学堂174

读到缓冲(缓存)里面,中间容器叫做缓冲。import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;public class Test { public static void main(String[] args) { //1、创建源 File src...

2020-07-25 16:10:04 46

原创 Java IO_标准步骤 尚学堂173

第一个程序:理解操作步骤1、创建源2、选择流3、操作4、释放资源在相对路径下创建一个文件abc.txt:FileInputStream类是InputStream抽象类的一个实现类:publicclass FileInputStream extends InputStream{......}第一个程序:理解操作步骤:import java.io.File;import java.io.FileInputStream;import java.io.FileNotF.

2020-07-25 15:29:19 46

原创 Java IO_四大抽象类 尚学堂172

https://www.bilibili.com/video/BV1ct411n7oG?p=173https://www.sxt.cn/Java_jQuery_in_action/ten-javaio-streamclass.html流的分类字节流和字符流(从处理数据的角度分)按照处理数据的角度分类,可以分为字节流和字符流。能使用字符流的地方,全部都可以使用字节流;但能使用字节流,不一定能使用字符流(比如音频文件)。输入流和输出流(从流向的角度分)从流向的角度..

2020-07-25 13:39:20 67

原创 Java IO_File_字符集_乱码 尚学堂171

https://www.bilibili.com/video/BV1ct411n7oG?p=172目录编码:字符串-->字节解码:字节-->字符串乱码问题:1、字节数不够:2、字符集不统一:编码:字符串-->字节查看当前工程使用的编码:UTF-8:一个中文字符占3个字节getBytes方法默认使用工程的字符集:public class Test { public static void main(String[] arg..

2020-07-25 11:29:31 52

原创 Java IO_File_文件夹统计 尚学堂170

递归打印所有子孙级目录和文件:import java.io.File;public class Test { public static void main(String[] args){ File src = new File("F:/workspace/Eclipse_Java_workspace"); printName(src); } /** * 打印子孙级目录和文件的名称 */ public static void printName(File src) {

2020-07-25 10:32:43 31

原创 Java IO_File_文件夹创建 尚学堂169

mkdir方法确保上级目录存在,不存则在创建失败。mkdirs方法:上级目录可以不存在,不存在则一同来创建。import java.io.File;import java.io.IOException;public class Test { public static void main(String[] args) throws IOException{ File src = new File("F:/dir/test"); boolean flag = src.mkdir();

2020-07-24 21:24:40 36

原创 Java IO_File_API学习 尚学堂168

基本信息:import java.io.File;public class Test { public static void main(String[] args) { File src = new File("F:\\workspace\\Eclipse_Java_workspace\\TableTennis\\src\\a.png"); System.out.println("名称:" + src.getName()); /** * getPath方法: * 如果给

2020-07-24 20:50:25 29

原创 Java IO_File_API使用规则 尚学堂167

文件时存在硬盘上的,是由操作系统对接的。File类是文件和目录路径名的抽象表示。File类的常量:pathSeparator:路径分割符separator:名称分隔符在Windows中配置环境变量的时候,如果多个路径,我们要加封号;在Linux中用的是冒号:路径分割符pathSeparator进行了跨平台的常量的表示。名称分隔符separator就是路径中的“\”(Windows中),比如“D:\a\b.txt”中的\pathSeparator和separator都是Fi

2020-07-24 18:19:39 34

原创 Java 表格数据存储_javabean和list结合存储整张表 尚学堂165

https://www.bilibili.com/video/BV1ct411n7oG?p=166每一行数据使用一个javabean对象。整个表格使用一个Map/List。一般情况,作为一个完整的javabean,有相关的set和get方法和无参构造器。import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;

2020-07-24 16:25:14 25

原创 Java 164. 表格数据存储_map和list结合存储整张表 尚学堂164

https://www.bilibili.com/video/BV1ct411n7oG?p=165每一行数据使用一个Map。整个表格使用一个List。ORM思想:对象关系映射这样一个表格形式的关系,如何映射成对象?import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;public class T.

2020-07-24 16:04:52 27

原创 Java Collections工具类 尚学堂163

https://www.sxt.cn/Java_jQuery_in_action/nine-collections.htmlhttps://www.bilibili.com/video/BV1ct411n7oG?p=164Collections工具类和Collection接口是两码事,注意Collections后面有个simport java.util.ArrayList;import java.util.Collections;import java.util.List;public

2020-07-24 15:41:54 14

原创 Java迭代器Iterator JDK源码分析

要分析的Java程序先上代码:import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Set; public class Test { public static void main(String[] args) { Map<Integer, String> map = new HashMap.

2020-07-24 11:42:03 28

原创 Java 迭代器的使用_遍历List和Set和Map 尚学堂161

https://www.sxt.cn/Java_jQuery_in_action/nine-iterator.htmlhttps://www.bilibili.com/video/BV1ct411n7oG?p=162迭代器为我们提供了统一的遍历容器的方式。迭代器是在java.util包里面的,使用迭代器要导入:import java.util.Iterator;迭代器是一个接口,这个接口也提供了泛型:public interface Iterator<E> {....

2020-07-23 23:12:21 55

原创 Java TreeSet使用和底层原理_Comparable接口 尚学堂160

https://www.sxt.cn/Java_jQuery_in_action/nine-treeset-underlyingimplementation.htmlhttps://www.bilibili.com/video/BV1ct411n7oG?p=161TreeSet底层实际是用TreeMap实现的,内部维持了一个简化版的TreeMap,通过key来存储Set的元素。TreeSet类源码:public class TreeSet<E> extends Abstract

2020-07-23 20:21:35 60

原创 Java Set接口_HashSet常用方法_JDK源码解读 尚学堂158

https://www.sxt.cn/Java_jQuery_in_action/nine-setinterface.htmlhttps://www.sxt.cn/Java_jQuery_in_action/nine-hashset-bottomimplementation.htmlhttps://www.bilibili.com/video/BV1ct411n7oG?p=159Set容器特点:无序、不可重复。无序指Set中的元素没有索引,我们只能遍历查找;不可重复指不允许加入重复的元素。更确切

2020-07-23 16:42:38 19

原创 Java TreeMap使用和底层原理_Comparable接口_HashTable特点 尚学堂157

https://www.sxt.cn/Java_jQuery_in_action/nine-treemap.htmlhttps://www.bilibili.com/video/BV1ct411n7oG?p=158接口Map的实现类有:HashMap类、Hashtable类、TreeMap类:import java.util.HashMap;import java.util.Hashtable;import java.util.Map;import java.util.TreeMap;

2020-07-23 15:50:35 41

原创 Java HashMap底层原理_查找键值对过程_equals和hashcode方法 尚学堂151

https://www.sxt.cn/Java_jQuery_in_action/nine-hashmap-bottom.htmlhttps://www.bilibili.com/video/BV1ct411n7oG?p=152取数据过程get(key) 我们需要通过key对象获得“键值对”对象,进而返回value对象。明白了存储数据过程,取数据就比较简单了,参见以下步骤: (1) 获得key的hashcode,通过hash()散列算法得到hash值,进而定位到数组...

2020-07-23 09:17:44 53

原创 Java HashMap底层原理_存储键值对底层过程 尚学堂150

https://www.sxt.cn/Java_jQuery_in_action/nine-hashmap-bottom.htmlhttps://www.bilibili.com/video/BV1ct411n7oG?p=151目录HashMap类的源码:hashCode方法Integer类重写了hashCode方法HashMap类的源码:public class HashMap<K,V> extends AbstractMap<K,V> i..

2020-07-22 21:23:50 69

原创 Java Map接口_HashMap常用方法 尚学堂148

Map中键不能重复。如果重复的话,则新的覆盖旧的。是否重复是根据equals方法来判断的。import java.util.HashMap;import java.util.Map;public class Test { public static void main(String[] args) { Map<Integer, String> m1 = new HashMap<>(); m1.put(1, "one");//1和"one"都是对象,存储的时候

2020-07-22 20:12:26 24

原创 Java ArrayList_底层JDK源码解读 尚学堂137

https://www.sxt.cn/Java_jQuery_in_action/nine-arraylist.htmlhttps://www.bilibili.com/video/BV1ct411n7oG?p=138ArrayList底层是用数组实现的存储。 特点:查询效率高,增删效率低,线程不安全。我们一般使用它。如果涉及到要频繁地增、删元素,可以用LinkedList如果需要线程安全,可以使用Vector打开ArrayList的无参构造器源码: /** * C

2020-07-22 16:46:37 47

原创 Java ArrayList_索引和顺序相关方法 尚学堂136

List接口常用的实现类有3个:ArrayList、LinkedList和Vector。ArrayList底层实现是用数组。LinkedList底层实现是用链表。Vector底层实现也是用数组,线程安全。import java.util.ArrayList;import java.util.List;public class Test { public static void main(String[] args) { List<String> list = new

2020-07-22 15:56:16 38

原创 Java Collection接口对2个容器对象的操作的方法 尚学堂135

addAll方法:import java.util.ArrayList;import java.util.List;public class Test { public static void main(String[] args) { List<String> list01 = new ArrayList<>(); list01.add("aa"); list01.add("bb"); list01.add("cc"); List<St

2020-07-22 15:25:18 22

原创 Java Collection接口_List接口_ArrayList常用方法 尚学堂134

查看ArrayList的继承树(eclipse中选中ArrayList按Ctrl+t):ArrayList实现了List接口:public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{......}List接口继承了Collection接口:public in

2020-07-22 13:48:11 54

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除