Java 语法
sdusgq
这个作者很懒,什么都没留下…
展开
-
Java语法-序列化流和反序列化流
1、什么叫序列化流和反序列化流?把对象以流的方式,写入到文件中保存,叫做写对象或对象的序列化;用字节流 —— ObjectOutputStream(对象的序列化流)writeObject( p );把文件中保存的对象,以流的方式读取出来,叫做读对象,也叫做对象的反序列化;用字节流 —— ObjectInputStream(对象的反序列化流)用字节流;readObject()2、ObjectOutputStream 代码实现import java.io.Serializable;/原创 2020-11-27 10:15:32 · 291 阅读 · 0 评论 -
Java语法-转换流
1、我们最常用的编码表有哪些?ASCII 最基本的编码表,一个字节对应一个符号;GBK 中文中最常用的,两个字节对应一个汉字;Unicode 万国码 - UTF-8 万国码中最常用的,三个字节对应一个汉字;2、FileReader 读取文件时可能会遇到什么问题?读IDE默认编码的文件例如UTF-8没有问题;但是读GBK格式的就会乱码;3、接着第二个问题,我们就想要读GBK编码的文件,怎么办?转换流;4、FileReader和InputStreamReader的区别 或者 Fil原创 2020-11-26 21:43:27 · 80 阅读 · 0 评论 -
Java语法-缓冲流
1、缓冲流的作用是什么?使用字节输入流读取文件的步骤是:Java程序 → JVM → OS → 文件单个字节/单个字符 → OS → JVM → …效率低下;相当于快递员送快递,一次只送一个快递;给字节输入流提供一个缓冲区,提高读取效率;Java程序 → JVM → OS → 一个缓冲区的内容(数组的形式) → OS → JVM → …2、缓冲流有哪几种?(1)字节缓冲流:BufferedInputStream,BufferedOutputStream(2)字符缓冲流:Buffere原创 2020-11-26 20:21:35 · 374 阅读 · 0 评论 -
Java语法-Properties集合,属性集
一、填空题Properties是一个____(单/双)列集合,继承自________类;Properties集合中的____方法可以把集合中的临时数据持久化写入到硬盘中存储;Properties集合中的____方法可以把硬盘中保存的文件(键值对),读取到集合中使用;Properties集合中的键和值默认都是____;Properties集合中的________方法相当于HashTable中的put(key,value)方法-增;Properties集合中的________方法相当于HashTa原创 2020-11-26 18:47:47 · 128 阅读 · 0 评论 -
Java语法-技巧
1、如何查看程序耗时?使用System.currentTimeMillis()方法在程序首尾;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class Test { public static void main(String[] args) throws IOException { long startTime = S原创 2020-11-25 10:40:34 · 93 阅读 · 0 评论 -
Java语法-IO流
1、什么是IO流?输入:硬盘的数据读取到内存中;输出:内存的数据写入到硬盘中;流:数据 —— 字符或字节;输入输出的主人公是内存;2、FileOutputStream如何使用?通过构造方法构造对象;调用对象中的write()写入数据, close()释放资源方法;FileOutputStream(String str)构造方法代码演示:import java.io.FileOutputStream;import java.io.IOException;public class原创 2020-11-24 22:02:58 · 335 阅读 · 0 评论 -
Java语法-递归
1、什么是直接递归?什么是间接递归?直接递归是A方法调用A方法;间接递归是A方法调用B方法,B方法又回头调用A方法;2、使用递归必须明确的前提是什么?(1)递归的结束条件;(2)递归的目的;3、在1~n 累加和的题目中,递归的目的是获取下一个被加的数字(n-1),如何理解?public static int sum(int n){ if(n==1)return 1; else { return n + sum(n-1);原创 2020-11-23 21:30:22 · 431 阅读 · 0 评论 -
java语法-File类
1(了解)、File类中有两个重要的静态成员变量 —— File.pathSeparator 和 File.separator,它们分别是什么? pathSeparator = 路径分隔符,在windows是分号;在Linux是冒号: separator = 文件名称分隔符,在windows是反斜杠\ 在Linux是正斜杠/2、绝对路径和相对路径的区别是什么?绝对路径是以盘符为首;相对路径是简写的路径,相对的是当前项目路径的根目录;3(了解)、File类的构造方法有哪些? File f原创 2020-11-23 20:44:33 · 171 阅读 · 0 评论 -
Java语法-Lambda表达式
1、面向对象的思想和函数编程思想区别是什么?面向对象的思想是重视过程,解决一个事情,找到一个合适的对象,调用对象的方法;函数式编程思想是重视结果,给定输入,得到结果即可;2、如何写Lambda表达式?这种写法如何理解?括号(含参或不含参) + 箭头 + {方法体};(1)参数列表 传递给 方法体;参数列表是接口中抽象方法的参数列表;方法体是重写接口的抽象方法;(2)用创建线程的匿名内部类方法理解 —— 相当于省略了new Runable, public void run;publi原创 2020-11-23 16:10:06 · 61 阅读 · 0 评论 -
Java语法-线程与多线程
1、线程调度有哪些调度方式?分时调度;抢占式调度;2、什么叫主线程?执行主方法-main方法 的线程;3、如何利用Thread类来实现多线程?新线程程序需要放到自己创建的Thread子类的run方法中;在主程序中,用新线程类的对象调用 start方法 可以跑其中的 run 方法;public class MyThread extends Thread { @Override public void run() { for (int i = 0;原创 2020-11-21 09:43:41 · 196 阅读 · 2 评论 -
Java基础-JDK和JRE
1、JRE是什么?与JDK和JVM有什么关系?JRE 是 Java Runtime Environment = Java 运行环境;JDK包含JRE,JRE包含JVM;2、为什么JDK包含JVM,或者说JDK比JVM多了什么功能?JRE只能跑已经写好的程序,不能开发程序;JDK不仅能跑已经写好的程序,还能开发程序;...原创 2020-11-20 15:36:46 · 109 阅读 · 0 评论 -
Java语法-异常
1、异常是什么?程序执行时,遇到非语法错误的非正常情况,JVM无法运行;系统中断处理程序,产生异常类的对象;2、什么是编译器异常?处理编译器异常的方法有哪些?编译器异常是编写代码出现的异常,在Intellij idea 中就是显示橙色背景的异常;throw …exception 给JVM处理,JVM会中断处理;try catch 编译器会抛出异常并继续执行try catch 后的代码;3、什么是运行期异常?处理运行期异常的方法有哪些?运行期异常是在运行程序时出现的异常,在编写程序时原创 2020-11-20 10:55:29 · 149 阅读 · 0 评论 -
Java语法-集合添加方法 of方法
1、addAll() 与 of方法的区别是什么?addAll是集合实现类的方法;of是接口的方法,不适用于接口的实现类;2、使用of方法容易出现的异常有哪些?分别对应of的什么限制使用条件?unsupported operation exception 不支持操作异常 —— of 后不能集合不能再添加元素,再add,put报错;illegal argument exception 非法参数异常 —— of 添加的元素不能重复,重复则报错;...原创 2020-11-20 10:34:21 · 567 阅读 · 0 评论 -
Java语法-练习:计算一个字符串中每个字符出现的次数
1、如何使用Scanner获取用户输入的字符串?Scanner sc = new Scanner(System.in);String str = sc.next();2、代码实现public class test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); HashMap<C原创 2020-11-20 10:06:23 · 115 阅读 · 0 评论 -
Java语法-HashMap, LinkedHashMap集合
一、知识点Map<k,v>双泛型;二、问题1、HashMap和LinkedHashMap的区别是什么?HashMap用哈希值存取数据和查询数据;LinkedHashMap保证记录的顺序,按添加顺序查询数据;2、Collection集合和Map集合关系和区别是什么?Collection是单列集合;Map是双列集合;3、为什么返回的数据若要定义数据类型要尽量使用包装类例如Integer?因为返回的null的话,Integer类型可以接收;int类型不可以接收;4原创 2020-11-19 16:57:22 · 129 阅读 · 0 评论 -
Java语法-集合工具类
一、常用方法Collections.sort(list)Collections.addAll(list, 各元素)二、利用Collections.sort()方法实现对Person中年龄的升序排序Person类public class Person implements Comparable<Person> { // 对什么进行排序,泛型里面写什么 private String name; private int age; public Person()原创 2020-11-19 11:14:53 · 79 阅读 · 0 评论 -
Java语法-可变参数
一、实现功能:输入任意数量的整数,输出这些整数的和public class test { public static void main(String[] args) { System.out.println(method(1,2,3)); } public static int method(int... arr){ int sum = 0; for (int i : arr) { sum += i;原创 2020-11-19 09:58:42 · 185 阅读 · 0 评论 -
Java语法-set集合,哈希表,哈希值,LinkedHashSet
1、set 集合用增强 for 循环的简便方法是是什么?set.for2、哈希值是什么?哈希值的作用是什么?答:哈希值是系统给出的十进制地址;Object类中就有hashCode()方法;输出对象本身就等同于输出对象.toString()等同于对象.hashCode();String类改写了哈希值,让两个相同的字符串相等,就相当于它们的哈希值相等。哈希值可以用来构造HashSet 的数据结构;3、HashSet 集合的数据结构是什么?JDK1.8 之后是数组+红黑树;哈希值不同原创 2020-11-19 09:40:00 · 149 阅读 · 0 评论 -
Java语法-LinkedList
1、增删改查分别对应LinkedList中的哪些成员方法?增:add(int index, E element);删:remove(int index);改:set(int index, E element);查:get(int index);2、遍历整个LinkedList可以用哪些方法?(1)增强for循环for(E e:list){sout(e)}(2)迭代器Interator it = list.iterator();while(it.hasNext()){sout(it..原创 2020-11-16 09:56:45 · 62 阅读 · 0 评论 -
Java语法-泛型
1、泛型是什么?泛型 = 未知的数据类型。2、为什么要用泛型?当使用一个可包容各种数据类型的类,我们就要用到泛型。但是,如果A数据类型的方法我们用到B上,会在运行期报错;使用泛型可以将运行期报错转变为编译期报错。3、什么是从运行期报错到编译器报错,可以举例吗?import java.util.ArrayList;import java.util.Iterator;public class test2 { public static void main(String[].原创 2020-11-05 09:51:35 · 183 阅读 · 0 评论 -
Java语法-增强for循环
1、使用 增强for循环 的格式是什么?增强for循环:for(集合/数组的数据类型 变量名 : 集合名/数组名){}。2、增强for循环的原理是什么?for循环底层也是迭代器;Collections<> extends Iterable<>;import java.util.ArrayList;import java.util.Collection;public class test { public static void main(Stri.原创 2020-11-04 16:49:32 · 6562 阅读 · 0 评论 -
Java语法-Collection集合与迭代器
1、Collection 的子接口有哪些?List 和 Set.2、List 接口和 Set 接口有什么区别?List接口 可以参照 ArrayList实现类 和 LinkedList实现类,它们可以重复,可以用索引,有序;Set接口 可以参照 HashSet实现类,它们不可以重复,没办法用索引;特殊的地方是 HashSet 的子接口 LinkedHashSet 是有序的;3、Iterator是一个接口,如何得到迭代器对象?Collection集合中,有创建迭代器实例的成员方法,直接.原创 2020-11-04 16:36:09 · 83 阅读 · 0 评论 -
Java语法-包装类
1、应用场景?泛型2、包装类包装什么?包装基本类型3、包装类的名字是什么?int → Integerchar → Character其他 → 首字母大写4、如何将数字转化为一个字符串?int num = 10;String s = num + “”;5、什么是自动拆箱和装箱?举例说明:自动拆箱 = Integer类 自动转化为 int 基本类型;自动装箱 = 拆箱的逆过程...原创 2020-11-04 11:12:06 · 74 阅读 · 0 评论 -
Java语法-StringBuilder类
1、String 的实例是一个常量;StringBuilder 的实例是一个变量;2、StringBuilder的构造方法可以传入一个字符串;3、StringBuilder的成员方法包括 append方法、toString方法;public class test { public static void main(String[] args) { StringBuilder strB = new StringBuilder("ABC"); System.out原创 2020-11-04 10:35:10 · 139 阅读 · 0 评论 -
Java语法-System类的常用方法
System 类在 lang 包下,因此,不用导包;主要有两个方法 ——System.currentTimeMills( )System.arraycopy(src, srcPos, dest, destPos, length)public class test2 { public static void main(String[] args) { int t = 0; long a1 = System.currentTimeMillis();原创 2020-11-03 21:58:21 · 160 阅读 · 1 评论 -
Java语法-用Date类和SimpleDateFormat类计算时间差
计算时间差的方法:原创 2020-11-03 20:51:58 · 447 阅读 · 0 评论 -
Java语法-DateFormat类
1、使用 DateFormat 类实际上是用它的实现类 —— SimpleDateFormat;2、SimpleDateFormat 类的构造方法要传入参数,这个参数就是一个模式 ——yyyy年MM月dd日 HH时mm分ss秒yyyy-MM-dd HH:mm:ss3、构造好对象后,使用成员方法format( ) 【这里的参数必须是 Date date】parse( ) 【这里的参数必须和创建对象的模式参数一样】import java.text.ParseException;import j原创 2020-11-03 20:25:41 · 762 阅读 · 0 评论 -
Java语法-Date类
1、Date类的空参构造方法 → 打印对象 → 得到当前时间;2、Date类的带参构造方法 → 打印对象 → 得到1970后过了参数毫秒的时间;3、Data类的成员方法 getTime → 打印对象.getTime() → 得到至今离1970年的毫秒值;import java.util.Date;public class demo110304 { public static void main(String[] args) { // Date类的空参构造方法 → 打印对象原创 2020-11-03 19:36:01 · 110 阅读 · 0 评论 -
Java语法-向下转型、instanceof
向上转型 = 左父右子;向下转型 = 子类类型名 变量名 = (子类类型名)之前的变量名;向下转型一定要进行 instanceof 判断;public class Dog extends Pet{ public Dog(String name){ // 继承必须调用父类的构造方法? super("Dog"); this.name = name; } public void eat(){ System.out.p原创 2020-11-03 16:29:37 · 262 阅读 · 0 评论 -
Java语法-Object类的 equals 方法
1、基本类型的“==”比较数值;引用类型的 “= =”比较对象的地址;public class Person { private String name; private int num; public Person(String name, int num) { this.name = this.name; this.num = this.num; } public String getName() { re原创 2020-11-03 16:12:20 · 764 阅读 · 0 评论 -
Java语法-Object类的 toString 方法
打印对象 = 打印对象的 toString 方法;如果类中的 toString 方法没有被重写,那么打印 —— 包名@地址值1、未重写 toString 方法的 Person 类public class Person { private String name; private int num; public Person(String name, int num) { this.name = this.name; this.num = th原创 2020-11-03 15:20:04 · 126 阅读 · 0 评论 -
Java语法-多态
Animal obj = new Dog(); // obj 既被看作狗形态,又被看作动物形态Person obj = new Student(); // obj 既被看作学生形态,又被看作人类形态Employee obj = new Teacher(); // obj 既被看作教师形态,又被看作员工形态多态 = 对象的多态 = 左父右子 Fu obj = new Zi();public class Fu { public void method(){ System.ou原创 2020-11-03 14:21:54 · 225 阅读 · 0 评论 -
Java语法-接口作为成员变量类型
接口的实现类是工具类;把接口作为成员变量类型的类是主导类;注:1、在主函数类中创建工具类对象,而不是在主导类中创建工具类对象;2、在主导类中将接口类型作为成员变量类型,而不是将接口实现类类型作为成员变量类型;1、接口、作为成员变量类型public interface Skill { public abstract void show();}2、接口的实现类、工具类、工具类不作成员变量类型、工具类其父类接口作为成员变量类型public class Sports implement原创 2020-11-03 10:38:45 · 3011 阅读 · 1 评论 -
Java语法-类名称作成员变量类型-类成员变量
把“类”分为主导者类和工具人类;主导者类的成员变量可以是工具人类类型;public class Pet { private String type; public String name; public Pet(String type){ this.type = type; } public String getType() { return type; }}public class Dog extends Pe原创 2020-11-03 10:04:36 · 1113 阅读 · 0 评论 -
Java语法-局部内部类之匿名内部类
匿名内部类的使用实现:匿名内部类是为了省略接口的实现类或父类的子类;匿名对象是为了省略对象名;当接口的实现类只需要用一次,我们就不用特地在写一个实现类;public interface MyInterface { // 无修饰符、无大括号 void method();}public class test { public static void main(String[] args) { MyInterface obj = new MyInterf原创 2020-11-02 21:49:31 · 71 阅读 · 0 评论 -
Java语法-局部内部类
实现对局部内部类的调用类只有创建对象才有意义;局部内部类只能在成员方法中创建类的对象;public class OuterClass { public int num; public void outerMethod(){ System.out.println("外部类的成员方法"); class InterClass{ int num; public void interMethod(){原创 2020-11-02 19:40:09 · 225 阅读 · 0 评论 -
Java语法-成员内部类
1、成员内部类的使用 / 成员内部类方法(变量)的使用直接使用成员内部类 —— 直接构造成员内部类对象;间接使用成员内部类 —— 通过外部类的对象,调用外部类的方法,外部类创建内部类的对象...public class Body { public class Heart{ public void beat(){ System.out.println("心脏怦怦..."); } } // 外用内 —— 需要内部类的原创 2020-11-02 19:21:29 · 120 阅读 · 0 评论