- 博客(37)
- 收藏
- 关注
原创 第十四章I/O输入输出
1.Java中流的分类有哪些?流从流动方向上看:一般分为输入流和输出流输入流:如System.in是一个InputStream类型输入流 输出流:如System.out 是一个PrintStream类型输出流从读取类型上分:一般分为字节流和字符流字节流:如System.in是一个InputStream类型字节流 字符流:如new InputStreamReader(System.in)是一个字符流对象流从发生的源头:分为节点流和过滤流类节点流:直接操作目标设备对应的流 ...
2021-11-28 21:18:09
212
原创 第十五章网络通信
import java.io.*;import java.net.*;public class MultiTalkServer{ static int clientnum=0;、 public static void main(String args[]) throws IOException { ServerSocket serverSocket=null; boolean listening=true; try{ serverS.
2021-11-28 20:37:27
129
原创 第九章线程
volatile关键字有什么作用?在JVM1.2之前,Java总是从主存读取变量,但随着JVM的优化,线程可以把主存变量保存在寄存器(工作内存)中操作,线程结束再与主存变量进行同步,然而,当线程没有执行结束就发生了互换这就可能造成一个线程在主存中修改了一个变量的值,而另外一个线程还继续使用它在寄存器中变量值的副本,造成数据的不一致。要解决这个问题,就需要把该变量声明为volatile(不稳定的),它指示JVM这个变量是不稳定的,每次使用它都到主存中进行读取,因此多线程环境下volatile关键字的使用变得
2021-11-28 20:25:21
139
原创 Future Task类有什么作用?它实现了哪些接口?Callable接口和Runnable接口有什么不同?
Future Task类可以封装异步任务,然后提交给Thread或线程池执行,然后获取任务执行结果。Runnable,Callable,FutureCallable接口是一个泛型接口,定义了一个call()方法,有返回值,可以返回子任务的执行结果。Runnable接口多个线程可共享实现类对象的资源。...
2021-11-15 19:31:19
459
原创 为什么不建议在for循环中使用“+”进行字符串拼接?
“+”反编译后的代码,在for循环中,每次都是new了一个StringBuilder,然后再把String转成StringBuilder,再进行append。频繁的新建对象不仅仅会耗费时间,还会造成内存资源的浪费。
2021-11-15 19:21:50
104
原创 String与StringBuffer、StringBuilder三者之间的共同点与区别,应该分别在何种场景下使用?
相同点:1、内部实现基于字符数组,封装了对字符串处理的各种操作2、可自动检测数组越界等运行时异常不同点:1、String内部实现基于常量字符数组,内容不可变;StringBuffer、StringBuilder基于普通字符数组,数组大小可根据字符串的实际长度自动扩容,内容可变2、性能方面,对于字符串的处理,相对来说StringBuilder >StringBuffer>String3、StringBuffer线程安全;StringBuilder非线程安全使用场景:Stri
2021-11-15 19:19:06
75
原创 String与StringBuffer、StringBuilder的常用API
String:public class A{ public static void main(String[] args) { String s="abc" ; System.out.println(s.length()); System.out.println(s.indexOf()); System.out.println(s.getBytes()); }}StringBuffer、StringBuilder
2021-11-15 19:16:13
450
原创 异常中的throws声明与throw语句的区别是什么
作用不同:throw用于程序员自行产出并抛出异常;throws用于声明在该方法内抛出了异常使用的位置不同:throw位于方法体内部,可以作为单独语句使用;throws必须跟在方法参数列表的后面,不能单独使用。内容不同:throw抛出一个异常对象,且只能是一个;throws后面跟异常类,而且可以有多个...
2021-11-15 19:01:24
412
原创 StackOverflowError和OutOfMemoryError两类错误的发生情形和原因
StackOverflowError发生原因:如果程序使用的栈深度超过虚拟机分配给线程的栈大小时,抛出该错误。OutOfMemoryError发生原因:如果程序在对应栈中无法申请到足够的内存空间,则抛出该错误。
2021-11-15 18:57:34
475
原创 Throwable的子类包含哪两类?Java Error类与Exception类的区别
Error类和Exception类Exception类是所有异常类的祖先类,而Error类是所有错误类的祖先。错误和异常的区别:Error不是程序需要捕获和进行处理的。Exception有许多子类,这些子类在JDK中也是按照包的形式组织的。...
2021-11-15 18:51:33
466
原创 自定义一个类,复写equals方法
public class A { public boolean equals(Object otherObject) { //测试两个对象是否是同一个对象,是的话返回true if(this==otherObject) return true; //测试检测的对象是否为空,是就返回false if(otherObject==null) return false; //测试两个对象所属的类是否相同,否则返回false.
2021-10-19 17:27:07
209
原创 使用接口改写例6.8中的程序
import java.awt.*;import java.applet.*;interface Shapes{ abstract public double getArea(); abstract public double getPerimeter();}class Rect implements Shapes{ protected int x,y,k; protected double m; public Rect(int x,int y,int k,.
2021-10-19 17:22:42
71
原创 谈谈抽象类与接口的异同以及两者的使用场景
相同点:两者都是抽象类,都不能实例化。不同点:interface需要用implements实现,而abstract class需要继承,要用extends。一个类可以实现多个interface,但一个类只能继承一个abstract class。abstract class的使用场景:在既需要统一的接口,又需要实例变量或缺省的方法的情况下,就可以使用它。interface的使用场景:类与类之前需要特定的接口进行协调,而不在乎其如何实现。...
2021-10-19 16:46:07
90
原创 Java中的运行时多态的含义是什么?有什么作用?
多态是指一个程序中同名但不同方法共存的情况。方法同名表明它们的最终功能和目的相同,但由于在完成同一功能时可能遇到不同的具体情况,所以需要定义含不同具体内容的方法。
2021-10-19 16:38:25
79
原创 谈谈组合与继承的区别以及两者的使用场景
继承是子类继承父类,父类的所有属性和方法都可以被子类访问和调用。组合是指将已存在的类型作为一个新建类的成员变量类型,两个类之间无上下级关系。只需要使用另外一个类的方法时使用组合。需要使用另外一个类的作用时不想被其他的类访问用继承。...
2021-10-19 16:32:53
89
原创 Java的访问控制修饰符有哪些?各有什么访问权限?
Java有许多访问控制修饰符,其中常用的有public,protected,private,friendly.private:用 private 修饰的类成员,只能被该类自身的方法访问和修改,而不能被任何其他类(包括该类的子类)访问和引用。因此,private 修饰符具有最高的保护级别。friendly(默认)如果一个类没有访问控制符,说明它具有默认的访问控制特性。这种默认的访问控制权规定,该类只能被同一个包中的类访问和引用,而不能被其他包中的类使用,即使其他包中有该类的子类。这种访问特性又称为包访问性
2021-10-19 16:19:54
380
原创 Java数组元素类型为基本类型和引用类型时,有什么不同?
对于基本类型数组而言,数组元素的值直接存储在对应的数组元素中,因此,初始化数组时,先为该数组分配内存空间,然后直接将数组元素的值存入对应数组元素中。引用类型数组的数组元素是引用,因此情况变得更加复杂:每个数组元素里存储的还是引用,它指向另一块内存,这块内存里存储了有效数据。...
2021-10-08 23:26:54
111
原创 Java中final修饰符都有什么作用?
1.final修饰类属性,则该属性为常量;2.修饰方法,则该方法为最终方法,在子类中不能被覆盖。利用final修饰符可以防止数据被篡改
2021-10-08 23:23:04
152
原创 类的static字段与非static字段的区别是什么?什么场景应该使用static修饰符?
static:使用该修饰符的变量是该类实例共享的变量。使用该修饰符的函数是该只能访问使用该修饰符的变量。‘使用场景:当对象中出现共享数据时,就应该使用static修饰。...
2021-10-08 23:21:52
54
原创 JDK、JRE、JVM分别是什么的简称,它们之间有何联系和区别?
JDK(Java SE Development Kit)JRE( Java Runtime Environment)JVM(Java Virtual Mechinal)区别与联系:JDK 用于开发,JRE 用于运行java程序 ;如果只是运行Java程序,可以只安装JRE,无序安装JDK。
2021-09-25 19:25:37
174
原创 Java实现跨平台的原理是什么?
Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序。
2021-09-25 19:23:25
58
原创 Java语言都有哪些特点?与C,C++,Python有何不同?
c++、java和python都是面向对象的编程语言,但是c++和java都是强类型语言,而python是一种弱类型语言。
2021-09-25 19:21:55
58
原创 高级语言的编译型和解释型语言的编译执行过程有什么区别?
编译型语言的特点是先编译,后执行。需要通过“编译器”(Compiler)完成编译过程,结果交由CPU执行。解释型语言的特点是边编译,边执行,通过 “解释器”(Interpreter)完成解释执行的过程。而呈现结果的过程并不需要依赖平台。...
2021-09-25 19:20:34
221
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人