Java SE
文章平均质量分 66
SCENARIO24
这个作者很懒,什么都没留下…
展开
-
37、IO流——随机访问流、合并流
随机访问流RandomAccessFile直接继承自Object类该类不属于流,此类的实例支持对随机访问文件的读取和写入构造方法public RandomAccessFile(String name,String mode)throws FileNotFoundException创建从中读取和向其中写入(可选)的随机访问文件流,该文件具有指定名称将创建一个新的 FileDescriptor 对象来表示到文件的连接参数:mode 参数指定用以打开文件的访问模式值含意“r”原创 2021-08-10 13:57:35 · 74 阅读 · 0 评论 -
36、IO流——LineNumberReader、内存操作流、读写本数据类型流、打印流
LineNumberReader跟踪行号的缓冲字符输入流此类定义了方法 setLineNumber(int) 和 getLineNumber(),它们可分别用于设置和获取当前行号构造方法public LineNumberReader(Reader in)使用默认输入缓冲区的大小创建新的行编号 reader成员方法public int getLineNumber()获得当前行号public void setLineNumber(int lineNumber)设置当前行号使用LineNumbe原创 2021-07-29 11:53:43 · 248 阅读 · 0 评论 -
35、IO流——拷贝
二进制文件的拷贝图片、音频、视频等,只能用字节流拷贝二进制文件有4种方式:1、字节缓冲流一次读写一个字节数组(效果最佳)public static void main(String[] args) throws IOException {String srcString = "D:\\QiuBo\\Class\\LessonPlan\\IOStudy\\a.txt";String destString = "D:\\QiuBo\\Class\\LessonPlan\\IOStudy22222\\原创 2021-07-29 11:45:34 · 40 阅读 · 0 评论 -
34、IO流——字符流InputStreamReader、OutputStreamWriter类
InputStreamReader构造方法InputStreamReader(InputStream in)创建一个使用默认字符集的 InputStreamReaderInputStreamReader(InputStream in, Charset cs)创建使用给定字符集的 InputStreamReader成员方法略使用//创建InputStreamReader对象InputStreamReader inputStreamReader= new InputStreamReader(原创 2021-07-27 09:44:38 · 172 阅读 · 1 评论 -
Java权限修饰符
Java权限修饰符本类同一包下(子类和无关类)不同包下(子类)不同包下(无关类)private√默认√√protected√√√(在子类中创建父类对象不可访问)private√√√√protected用途在于保护子类可以访问父类修饰符权限修饰符(只能选其一):private、默认、protected、public状态修饰符:static、final抽象修饰符:abstract类(外部类)权限修饰符(任选其一):默原创 2021-07-26 10:23:26 · 76 阅读 · 0 评论 -
33、IO流——编码格式
编码编码表由世界的字符和对应的数值组成的一张表ASCII码:最早出来的编码表,由一个字节,最高位是字符位,其他七位是代表数值位‘a’:97‘A’:65‘0’:48中文编码表:GB2312、GBK、GB18030(取代GBK)、BIG-5(繁体)Unicode:国际标准码,融合所有文字互相转换会乱码英文:一个字符一字节中文:UTF-8:一个汉字3字节GBK:一个汉字2字节String类成员方法byte[] getBytes()使用平台的默认字符集将此 String 编码为 byt原创 2021-07-23 15:54:35 · 353 阅读 · 0 评论 -
32、IO流——字节流FileInputStream、FileOutputStream类
定义实现了设备之间的数据信息传输分类流向:输入流:读取数据到代码里输出流:写入数据到文件里数据类型:字节流:字节输入流:类:InputStream字节输出流:类:OutputStream字符流:字符输入流:类:Reader字符输出流:类:WriterI/O流,没有明确说明按哪种分类的话,默认按照数据类型来分不知道使用什么流的时候使用字节流,字节流早出所以功能多注意:每种基类的子类都是一父类名作为后缀XXXXOutputStreamXXXXInputStreamXXXXR原创 2021-07-23 15:28:31 · 185 阅读 · 0 评论 -
31、递归
定义在 Java 中,就是在方法定义中调用本方法自身的现象但是 Math.max(Math.max(a,c),b); 这不叫递归,则叫方法嵌套注意点(实现递归的三个必须条件)1、递归一定要有出口(举例中的 n),否则死循环:重点中的重点2、递归次数不要太多,否则容易内存溢出3、方法定义中调方法本身举例1、递归public static void main(String[] args) { System.out.println(recursion(12));} public stat原创 2021-07-23 15:14:02 · 48 阅读 · 0 评论 -
30、IO流——File类
定义文件和目录路径名(文件夹)的抽象表示形式构造方法File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例pathname:File对象的全路径(包含文件全称)File(String parent, String child)根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例parent:File对象的全路径(不包含文件全称):String对象child:文件全称File(File parent,原创 2021-07-23 15:11:34 · 47 阅读 · 0 评论 -
29、异常
定义程序出现了不正常,不该有的错误的状况分类抛出(问题)类:Throwable严重性的问题Error:程序员解决不了(内存溢出,硬盘坏道)一般性的问题Exception:编译器问题:非RuntimeException:不修改,不能运行运行时问题:RuntimeException:程序员代码不够安全,不够严谨导致最终需要修改处理程序出现问题,程序员未作处理没有,JVM给出提示Exception in thread “main” java.lang.ArithmeticExcept原创 2021-07-23 15:09:06 · 154 阅读 · 1 评论 -
28、集合——Map、HashMap、TreeMap、LinkedHashMap、Hashtable
定义Map<K,V>K:key(键) V:value(值)将键映射到值的对象,键值对特点一个映射不能包含重复的键,每个键最多只能映射到一个值Map和Collection的区别Map:存储元素成对出现,一个映射不能包含重复的键,值可以重复Collection:存储元素单例的,其中 Set 是唯一,List 是可重复注意点Map 的数据结构只针对键有效,根值无关Collection 的数据结构针对元素有效成员方法添加元素V put(K key, V value)键是第原创 2021-07-23 14:54:10 · 63 阅读 · 0 评论 -
27、集合——Set、HashSet、LinkedHashSet、TreeSet
Set一个不包含重复元素的 collection特点唯一,无序,有可能输出的正好是添加的顺序HashSet哈希表(实际上是一个 HashMap 实例)支持,不是同步的,效率高hashCode():返回该对象的哈希码值HashSet 为何元素唯一:需要看add()方法,中的两个方法:hashCode 和 equals 方法是否重写过步骤:比较哈希值相同:比较地址值(==)或者 equals 方法返回 true:说明元素重复,不添加返回 false:说明元素不重复,添加不同:直接添加原创 2021-07-23 14:37:55 · 67 阅读 · 0 评论 -
26、集合——泛型
定义宽泛的类型,参数化类型是把类型的明确推迟到创建对象或者调用方法时才去明确格式<数据类型>注意点:只能是引用数据类型,重新赋值还是原来的数据类型优点错误提前化:编译期间避免强制类型转化优化设计,把控可控性,提高安全(架构师必备最基础条件)由来Object 类型作为参数,被取出时需要向下转型,存在极大的安全隐患定位位置泛型类:类名<数据类型,数据类型,数据类型>数据类型定义要求:仅仅一个字母,且大写类名<T,K,V>例如:public原创 2021-07-23 14:33:29 · 50 阅读 · 0 评论 -
25、集合——LinkedList
定义List 接口的链接列表实现构造方法public LinkedList(Collection c)构造一个包含指定 collection 中的元素的列表,这些元素按其 collection 的迭代器返回的顺序排列成员方法public void addFirst(E e)将指定元素插入此列表的开头public void addLast(E e)将指定元素添加到此列表的结尾public E removeFirst()移除并返回此列表的第一个元素public E removeLast()移除原创 2021-07-23 13:52:29 · 354 阅读 · 0 评论 -
24、集合——Vector
定义Vector 类可以实现可增长的对象数组构造方法public Vector()构造一个空向量,使其内部数据数组的大小为 10,其标准容量增量为零成员方法public void addElement(E obj)将指定的组件添加到此向量的末尾public E elementAt(int index)返回指定索引处的组件例如:Vector v=new Vector();v.addElement("a");v.addElement("b");v.addElement("c");v.ad原创 2021-07-23 13:51:51 · 52 阅读 · 0 评论 -
23、集合——ArrayList
定义List 接口的大小可变数组的实现特点最常用,有序,可重复,但不同步构造方法public ArrayList()构造一个初始容量为 10 的空列表成员方法void add(int index, Object o)在列表的指定位置插入指定元素Object get(int index)返回列表中指定位置的元素Object remove(int index)移除列表中指定位置的元素Object set(int index, Object o)用指定元素替换列表中指定位置的元素(可选操作)原创 2021-07-20 13:46:39 · 59 阅读 · 0 评论 -
22、集合——Collection
由来因为数组长度固定,数据类型固定,所以不适合一些场景:频繁的新增,就使用集合容器进行存储,这样修改能超出容器,可以长度可变,能存储不同数据类型。实例化Collection collection=new ArrayList();成员方法添加:public boolean add()将指定的元素添加到此列表的尾部public boolean addAll(Collection c)添加指定集合到该集合后删除:public void clear()移除此列表中的所有元素,此调用返回后,列表将原创 2021-07-20 13:44:02 · 88 阅读 · 0 评论 -
21、其他常用类
System成员方法和成员变量全部都是静态的成员方法public static void gc()运行垃圾回收器例如:Student student=new Student("旺财",20);System.out.println(student);student=null;System.gc();public static void exit(int status) 终止当前正在运行的 Java 虚拟机非 0 的状态码表示异常终止public static long currentTi原创 2021-07-20 13:41:04 · 50 阅读 · 0 评论 -
20、正则表达式
正则表达式符合一定规则的字符串字符例如:x a 9\n:换行\r:回车":双引号\:反斜杠(四个是\\)字符类[abc]:a或b或c[^abc]:除了a或b或c的任意字符[a-zA-Z]:a到z或者A-Z(两头字母包括)[0-9]:0到9的字符的其中一个预定义字符类.:任何字符 转义字符:.\d:数字: [0-9]\w:单词字符 [a-zA-Z_0-9]边界匹配器^:行的开头$:行的结尾\b:某个单词的边界string world?hello:空格和?是单原创 2021-07-20 13:35:28 · 56 阅读 · 0 评论 -
19、常用类——Collections 类
Collections 类Collections 则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作常用方法public static <T extends Comparable<? super T>> void sort(List list)根据元素的自然顺序对指定列表按升序进行排序参数:list - 要排序的列表public static void shuffle(List<?> list)随机原创 2021-07-20 13:32:23 · 146 阅读 · 0 评论 -
18、常用类——Character 类
构造方法public Character(char value)构造一个新分配的 Character 对象,用以表示指定的 char 值参数value - Character 对象表示的值成员方法public static boolean isUpperCase(char ch)确定指定字符是否为大写字母public static boolean isLowerCase(char ch)确定指定字符是否为小写字母public static boolean isDigit(int code原创 2021-07-20 13:31:18 · 184 阅读 · 0 评论 -
17、常用类——Integer 类
包装类基本类型:boolean、char、double、float、byte、short、int、long包装类类型:Boolean、Character、Double、Float、Byte、Short、Integer、Long构造方法public Integer(int value)构造一个新分配的 Integer 对象,它表示指定的 int 值参数:value - Integer 对象表示的值常用方法public static String toBinaryString(int i)以二原创 2021-07-16 16:28:53 · 842 阅读 · 0 评论 -
16、常用类——Arrays 类
Arrays 类包括排序,查找,等等功能常用方法public static void sort(int[] a)对指定的 int 型数组按数字升序进行排序参数:a - 要排序的数组public static String toString(int[] a)返回指定数组内容的字符串表示形式参数:a - 返回其字符串表示形式的数组返回:a 的字符串表示形式public static int binarySearch(int[] a, int key)使用二分搜索法来搜索指定的 int 型数原创 2021-07-16 16:26:09 · 97 阅读 · 0 评论 -
15、常用类——StringBuffer、StringBuilder 类
StringBuffer用字符串拼接时,耗时耗内存字符串缓冲区类与 String 转换从String到StringBuffer:StringBuffer sb = New StringBuffer(“abcd”);从StringBuffer到String:String str = sb.toString();String str=new String(sb);构造方法public StringBuffer()构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符public原创 2021-07-16 16:23:59 · 81 阅读 · 0 评论 -
14、常用类——String 类
String 类字符串:字符串的字面值是常量,一旦创建不可修改如果有大量的字符串拼接,最好不要用“+”,会产生大量的不用的字符串常量字符串的本质就是一个字符数组(char[])类声明public final class Stringextends Objectimplements Serializable, Comparable, CharSequence构造器String()String(byte[] bytes)String(byte[] bytes, int offset, in原创 2021-07-16 16:22:31 · 75 阅读 · 0 评论 -
13、常用类——Scanner
nextInt()方法从键盘获取 int 数据nextLine()方法从键盘获取字符串hasNextInt()方法从键盘获取的数据是否为 int 数据例如:if(sc.hasNextInt()){ int x=sc.nextInt(); System.out.println("数字是:"+x);}else if(sc.hasNextLine()){ String x=sc.nextLine(); System.out.println("字符串是:"+x);}...原创 2021-07-16 16:18:36 · 51 阅读 · 0 评论 -
12、常用类——Object 类
Object 类Object 是万类之根,所有类都直接或间接继承它Object 类的构造方法只有一个,是一个无参构造方法成员方法public String toString():返回该对象的字符串表示执行该方法得到以下值:com.igeekhome.demo03.Student@15db9742getClass().getName() + ‘@’ + Integer.toHexString(hashCode())得到的东西对我们来说毫无意义带包全名称@15db974215db9742:哈原创 2021-07-16 14:38:27 · 80 阅读 · 0 评论 -
11、内部类
内部类定义在另一个类的内部的类,把 A 类定义在 B 里内部内部类位置成员内部类:在成员变量定义的位置:类中方法外局部内部类:在局部变量定义的位置:方法中内部类的访问1、内部类可以直接访问外部类的成员2、外部类要访问内部类的成员,必须创建内部类对象直接访问成员内部类的成员格式:外部类名.内部类名 对象名 = new 外部类名().new 内部类名();外部类名.内部类名 对象名 = 外部类对象.内部类对象;成员内部类的修饰符private:私有,为了保护数据的安全性static:原创 2021-07-16 14:36:44 · 62 阅读 · 0 评论 -
10、抽象类和接口
抽象类可以把多个共性的东西不具体的给提取到一个类中,这就叫抽象的行为抽象类特点抽象类和抽象方法必须用 abstract 修饰,修饰方法时,把{}换成;抽象类中不一定非得有抽象方法,可以全是非抽象方法类中只要有一个抽象方法,此类必须被定义为抽象类抽象类是有构造方法的抽象类不能被实例化:1、因为它是不具体的东西2、可以被子类实例化(子类是有条件的:非抽象的)抽象类的子类可以是抽象类,也可以是非抽象类(必须重写抽象方法)抽象类成员特点成员变量:既可以是变量,也可以是常量构造方法:有,作用原创 2021-07-16 14:33:03 · 53 阅读 · 0 评论 -
09、面向对象——多态
定义父类引用指向子类对象,同一个父类对象引用,体现出子类对象的不同状态相同的对象,在不同条件下的不同状态多态的前提1、要有继承2、要有重写3、要有父类引用指向子类对象父类名 f = new 子类名();Animal a = new Dog();多态的成员变量访问特点成员变量:编译执行左边,运行执行左边构造方法:创建子类对象的时候,访问父类的构造方法,对父类进行初始化成员方法:编译执行左边,运行执行右边(无重写按照继承关系运行父类)静态方法:编译执行左边,运行执行左边(静态方法是和类原创 2021-07-16 14:29:05 · 62 阅读 · 0 评论 -
08、面向对象——继承
继承的好处把多个类中的相同的成员提出来定义到一个独立的类中,然后让多个类和该类产生关系这些多个类就具备了相同的成员,该关系叫继承格式:class 子类 extends 父类名{}好处:1、提高了代码的复用性2、提高了代码的维护性3、让类与类之间产生了关系,给第三个特征多态提供了前提弊端:继承让父类和子类之间有联系:耦合性高1、低耦合,高内聚(某个类里的所有方法和变量都能考虑到)2、打破了封装性特点:Java 中支持单继承,但支持多层继承。不直接支持多继承,对C++中的多继承机制进行改原创 2021-07-06 09:14:39 · 147 阅读 · 0 评论 -
07、面向对象——类
面向过程的语言:C世界的一切会认识是相关联的,具有因果关系一个个的具有因果关系的小系统组成大系统一个个的具有因果关系的大系统组成超大系统面对对象的语言:Java基于面向过程的语言世界一个一个孤立的事物,相互无因果关系,在外部驱动下对象之间相互传递信息面向过程的语言和面向过程的语言的区别面向过程:强调的是每一个功能的步骤面向对象:强调的是每一个对象,然后由对象去调用功能面向对象的思想1、面向对象就是一种常见的思想,符合人们的思考习惯2、面向对象的出现,将复杂的问题简单化3、面向对象的原创 2021-07-06 09:11:40 · 89 阅读 · 0 评论 -
06、方法
方法完成特定功能的代码块格式修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数2,……){方法体语句;retrun 返回值;}修饰符:该方法的范围 特定含义的词汇 public static返回值类型:方法执行到最后的结果数据类型(必须项),无返回值时:void方法名:起个名称,以便他人调用(必选项)参数类型:数据类型(非必须项,>=0)参数名:参数的变量名(非必须项,>=0)参数分类:实参:实际参与运算的数据变量形参:定义方法的时候,用于接受实参的变量原创 2021-07-05 21:45:15 · 49 阅读 · 0 评论 -
05、数组
数组存储相同数据类型的多个元素的容器每个元素都有编号(专业名称:索引)最小索引值:0最大索引值:数组长度 – 1定义格式:数据类型[] 数组名 推荐数据类型 数组名[]初始化(为数组元素分配内存空间并且赋值):动态:只给出长度,长度数值写在[]里,Java 会给出默认值int[] arr = new int[2]; 2个值都是0静态:给出值,系统来决定长度,元素值写在{}里int[] arr = {1,2};数组常见的2个问题点(异常)ArrayIndexOutOfBo原创 2021-07-05 21:41:07 · 63 阅读 · 0 评论 -
04、选择、循环判断语句
流程控制语句顺序结构:从上往下,依次执行运算选择结构:按照不同的选择,执行不同的代码循环结构:根据条件重复做一些代码if 判断(三种)if(条件表达式){ 执行语句;}if(条件表达式){ 执行语句;}else{//否则 执行语句;}if(条件表达式){ 执行语句;}else if (条件表达式){ 执行语句;}……else{ 执行语句;}注意点:1、关系表达式不论简单与否,结果都是 boolean 类型2、if 语句的语句体如果是一条语句(并不代表原创 2021-07-05 21:33:33 · 207 阅读 · 0 评论 -
03、运算符
算术运算符/ %(取余,模运算) +(连接符)++(自增:就在原有数据基础上+1,在赋给原有数据) –单独使用时:++和–放在操作数前面和后面效果一样a++ a-- ++a --a参与操作时:1、放在操作数的前面:先自增或自减,再参与操作int a = 10;int b = ++a; b=11 a=112、放在操作数的后面:先参与操作,再自增或自减int a = 10;int b = a++; b=10 a=11赋值运算符= +=原创 2021-07-05 21:22:19 · 98 阅读 · 0 评论 -
02、常量和变量
常量**定义:**程序执行过程中,值不会改变的量分类:字面值自定义字面值常量:字符串:”hello”整数:12浮点数:12.12字符:’C’布尔:true空:null针对整数常量提供了四种表现形式:二进制: 由0,1组成 以 0b 开头(是数字0,不是字母o)八进制: 由0,1,…….7组成,以0开头(是数字0,不是字母o)十进制: 由0,1,…….9组成 默认为十进制十六进制: 由0,1,…9,a,b,c,d,e,f(大小写都可)组成,以 0x 组成(是数字0,不是字母原创 2021-07-05 21:06:22 · 51 阅读 · 0 评论 -
01、Java简介
引导Java 程序都定义类中,Java 程序都是以类的形式存在的,类的形式其实就是一个字节码文件最终体现代码是思想的一种体现形式//类名要和文件名形同class Demo{ //定义一个主函数,为了保证程序的独立运行 public static void main(String[] args){ System.out.println("hello world");//这是输出语句,用于将括号中的数据打印到控制台上,ln可以在数据的结尾处换行 }}工具JDK(Java Develop原创 2021-07-05 10:43:23 · 53 阅读 · 0 评论