自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 汇编 逻辑运算对标志位的影响

各种标志位:有符号溢出标志位OF(Over flow flag) OV(1) NV(0)方向标志位DF(Direction flag) DN(1) UP(0)中断标志位IF(Interrupt flag) EI(1) DI(0)符号标志位SF(Sign flag) NG(1) PL(0)零标志位ZF(Zero flag) ZR(1) NZ(0)辅助进位标志位AF(Auxiliary carry flag) AC(1) NA(0)奇偶标志位PF(Parity flag) PE(1) PO(0)

2021-04-27 19:42:38 6449

原创 Java第十章课后题

1.Collection, list, Set之间的联系和区别?Collection:Java.util下的一个接口,是各种集合结构的父接口,List和Set是继承自它的子接口。List:List接口是有序的,会精确的将元素插入到指定的位置(允许有相同元素)。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素。Set:是一种不包含重复元素的Collection接口,只关心元素是否属于Set(不允许有相同元素),而不关心它的顺序。简单来说,List可以通过下标(1.2…)

2021-01-10 13:31:19 367

原创 Java对文件的读写提供的支持

文件类(File)1.获取文件信息getName():获取文件名称,返回StringcanRead():boolean类型,是否可读exist()/isFile():boolean类型,是否存在length():long,文件长度,以字节为单位getAbsolutePath():文件绝对路径,返回StringgetParent():文件父路径,返回StringisDirectory():boolean 是否为目录isHidden():boolean是否隐藏lastModified():l

2020-12-15 11:13:15 255

原创 Java的File类

定义:java.io.File类是文件和目录路径名的抽象表示。作用:主要用于文件和目录的创建文件、删除文件、重命名文件,判断文件读写权限以及文件是否存在,查询等功能方法.。常用方法:1.获取实例对象代表的文件名字(包含文件后缀)public String getName()2.获取实例对象代表的文件上级目录public String getParent()3.获取实例对象代表的文件的实际路径public String getPath()4.检测该实例对象代表的文件的路径是否是绝对路径(

2020-12-14 21:25:14 119

原创 Java的对象的序列化和反序列化

定义:1.Java序列化就是指把Java对象转换为字节序列的过程2.Java反序列化就是指把字节序列恢复为Java对象的过程。Java为对象序列化及反序列化提供了一套API来支持,其中包括以下接口和类:java.io.Serializablejava.io.ExternalizableObjectOutputObjectInputObjectOutputStreamObjectInputStream...

2020-12-14 21:12:30 46

原创 Java过滤流的作用

过滤流(filter stream)也称为包装流,是为某种目的过滤字节或字符的数据流;基本输入流提供地读取方法只能用来读取字节或字符,而过滤器流能够读取整数值、双精度值或字符串,但需要一个过滤器类来包装输入流;FilterInputStream 类和 FilterOutputStream 类分别是 DataInputStream 类和 DataOutputStream 类的父类,它们分别实现了 DataInput 和 DataOutput 接口,该接口定义了独立于具体机器的带格式的读写操作,从而可以实现

2020-12-14 20:56:59 780

原创 字节流和字符流的转化

Java中字节流和字符流是可以相互转换的。OutputStreamWriter:将字节输出流转换成字符输出流,是 writer 的子类。InputStreamReader :将字节流转换成字符输入流,是Reader 的子类,一般操作输入输出内容就需要字节流或字符流,但是有些时候需要将字符流变为字节流的形式,或者将字节流变为字符流的形式,所以就需要另外一组转换流的操作类。转换步骤,如果以文件操作为例,在内存中的字符数据需要通过OutputstreamWriter变为字节流才能保存在文件中,读入的字节流通

2020-12-13 23:08:56 1740

原创 inputstream和outputstream的子类

1.FileInputStream和FileOutStream分别是InputStream和OutputStream的直接子类,这两个子类主要负责完成对本地磁盘文件的顺序输入与输出操作的流。FileInputStream类对象表示一个文件字节输入流,从中可读取一个字节或一批字节。FileOutputStream类对象表示一个文件字节输出流,从向流中写入一个字节或一批字节。2.SequenceInputStream是InputStream的直接子类,其功能是将多个顺序连接在一起,形成单一的输入数据流,没有.

2020-12-13 22:55:02 3161

原创 java中流的分类

1.从流动方向上看:一般分为输入流和输出流两类。程序可以用输出流向文件写数据,用输入流从文件中读数据。而针对键盘只有输入流,针对屏幕只有输出流。2.从读取类型上看:一般分为字节流和字符流。字节流是从InputStream和OutputStream派生出来的一系列类。3.从源头看:可以分为节点流和过滤流。用于直接操作目标设备对应的流叫节点流。程序可以通过过滤流去操作节点流,以便更加灵活方便的阅读各类型的数据。...

2020-12-08 21:22:01 459

原创 仿照例15.5,编写完整的基于数据报的多客户/服务器通信程序

import java.io.*;import java.net.*;class QuoteServerThread extends Thread//服务器线程{ protected DatagramSocket socket=null;//记录和本对象相关联的DatagramSocket对象 protected BufferedReader in=null;//用来读文件的一个Reader protected boolean moreQuotes=true;//标志变量,是否继续操作

2020-11-16 20:46:19 73

原创 仿照例15.4,编写完整的基于Socket的多客户/服务器通信程序

package ob1;import java.io.*;import java.net.*;public class TalkClient { public static void main(String args[]) { try{ //向本机的4700端口发出客户请求 Socket socket=new Socket("127.0.0.1",4700); //由系统标准输入设备构造BufferedReader对象 BufferedReader sin=new Bu

2020-11-16 19:47:03 97

原创 第15章习题

1.网络通讯协议分几层?各层解决什么问题?七层协议:应用层:与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。表示层:主要功能是定义数据格式,代码转换和数据加密。会话层:建立或解除与其他接点的联系。传输层:提供端对端的接口。网络层:为数据包选择路由。数据链路层:定义了在单个链路上如何传输数据。物理层:以二进制的数据形式在物理媒体上传输数据。2.TCP和UPD有什么不同,为什么称TCP是面向连接的可靠协议?不同:1,TCP协议面向连接,UDP协议面向非连接   2. TCP

2020-11-16 16:51:23 141

原创 编写一个基于多线程的生产者/消费者程序,各产生10个生产者和消费者线程,共享一个缓冲区队列(长度自设),生产者线程将产品放入到缓冲区,消费者线程从缓冲区取出产品。

class Account { volatile private int value; synchronized void put(int i) { try { Thread.sleep(300); } catch (InterruptedException e) { } value = value + i; System.out.println(Th

2020-11-08 13:44:59 1392

原创 java模拟烧水泡茶

package ob1;class Thread1 implements Runnable{ public void run(){ System.out.println("第1分钟洗水壶"); try { Thread.sleep(1000); } catch (InterruptedException e) {} }}class Thread2 implements Runnable{ publi

2020-11-08 13:19:02 314

原创 volatile关键字的作用

当一个共享变量被volatile修饰时,它会保证修改的值立即被更新到主存“。volatile特性内存可见性:通俗来说就是,线程A对一个volatile变量的修改,对于其它线程来说是可见的,即线程每次获取volatile变量的值都是最新的。volatile的使用场景通过关键字sychronize可以防止多个线程进入同一段代码,在某些特定场景中,volatile相当于一个轻量级的sychronize,因为不会引起线程的上下文切换,但是使用volatile必须满足两个条件:1、对变量的写操作不依赖当前值

2020-11-08 12:49:55 187

原创 第九章课后习题

1.线程和进程的联系和区别是什么?区别:1.进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是系统进行资源分配和调度的一个独立单位。2.线程是进程的一个实体,是CPU调度和分配的基本单位。线程基本不拥有系统资源,与同一个进程的其他线程共享进程中所拥有的所有资源。联系:1.一个进程可以包括多个线程。2.什么是前台线程,什么是后台线程?应用程序必须运行完所有的前台线程才可以退出;而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自

2020-11-04 18:45:33 103

原创 字符串的编码与解码

一、认识编码编码:规定每个“字符”分别用一个字节还是多个字节存储,用哪些字节来存储,这个规定就叫做“编码” 平常我们所说的“字符集”,比如:GB2312, GBK, JIS 等;简单的说:编码就是将字符串转换为 byte 数组,解码就是把 byte 数组转换为 字符串二、Java中常用的字符串的编码解码1.将字符串转换成byte数组再恢复:byte[] getBytes(String charsetName)String(byte[] bytes, String charsetName)或ge

2020-11-01 16:11:07 2050 1

原创 为什么不建议在for循环中使用“+“进行字符串拼接

举例:long t1 = System.currentTimeMillis();String str = "hollis";for (int i = 0; i < 50000; i++) { String s = String.valueOf(i); str += s;}long t2 = System.currentTimeMillis();System.out.println("+ cost:" + (t2 - t1));反编译后代码如下:long t1 =

2020-11-01 16:00:50 372 2

原创 String ,Stringbuffer, StringBuilder区别和使用场景

String:字符串常量 。StringBuffer 与 StringBuilder是字符缓冲变量。StringBuffer 与 StringBuilder 中的方法和功能完全是等价的,只是StringBuffer中的方法大都采用了synchronized 关键字进行修饰,因此是线程安全的,而StringBuilder没有这个修饰,可以被认为是线程不安全的。区别:1、String类型的字符串对象是不可变的,一旦String对象创建后,包含在这个对象中的字符系列是不可以改变的,直到这个对象被销毁。2

2020-11-01 15:50:25 274

原创 String和StringBuffer,StringBuilder几个常用的API

例1public class text1{ public static void main(String[] args) {String s="accdedcba" ;System.out.println("字符串的长度为:"+s.length());System.out.println("字符c第一次出现的位置:"+s.indexOf('c'));System.out.println("字符c最后一次出现的位置:"+s.lastIndexOf('c')); }}例2

2020-11-01 15:45:18 216

原创 仿照例7.9编写异常类

public class SelfGenerateException extends Exception{ SelfGenerateException(String msg){ super(msg); //调用Exception的构造方法 } static void throwOne() throws SelfGenerateException { int a = 1; if (a==1) //如果a为1就认为在特定应用下存在异常,改变执行路径,抛出异常 {throw new

2020-11-01 15:17:31 60

原创 RuntimeException类的几个子类,编写抛出并捕获该子类异常的程序。

1.EmptyStackException类public class Printer { private String name; public void setName(String name) { this.name = name; } public void print() { printString(name); } private void printString(String

2020-11-01 14:45:17 1814

原创 使用接口改写例6.8

由于时间问题,只改写了Rect类package test;interface shape{ abstract public double getarea(); abstract public double getperimeter(); }public class rect implements shape { public int x, y, k; public double m; public rect(int x, int y, int k, double m){ this

2020-10-27 20:24:54 98

原创 异常处理的两种方式

处理异常的两种方式:1.继续上抛:相当于推卸责任,把异常传递给调用者。2.自己捕捉:捕捉相当于自己拦下异常,把异常给解决了,调用者是不知道的。如果希望调用者处理异常,选择throws上报异常。不希望调用者处理异常,选择try…catch捕捉。如果有一个类,它的构造方法可能出现异常,我们选择上报异常,因为构造方法是上级调用的,在new对象时调用的,如果出现异常,new对象失败却不让调用者知道,程序会出问题的。例子:public class Test05 { public static vo

2020-10-25 19:49:06 433

原创 java的error类和exception类的区别

Error类和Exception类都继承自Throwable类,二者的不同之处:Exception:1.可以是可被控制(checked) 或不可控制的(unchecked)。2.表示一个由程序员导致的错误。3.应该在应用程序级被处理。Error:1.总是不可控制的(unchecked)。2.经常用来用于表示系统错误或低层资源的错误。3.如何可能的话,应该在系统级被捕捉。补充:Error:Error类对象由 Java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。例如,Java

2020-10-25 19:43:01 604

原创 自定义一个异常类,并在程序中主动产生这个异常类对象。

public class SelfGenerateException extends Exception{ SelfGenerateException(String msg){ super(msg); //调用Exception的构造方法 } static void throwOne() throws SelfGenerateException { int a = 1; if (a==1) //如果a为1就认为在特定应用下存在异常,改变执行路径,抛出异常 {throw new

2020-10-25 19:02:11 339

原创 个人银行账户管理系统C++转Java(第八章)

第八章1.这次把Account写成了抽象类,里面有几个虚抽象函数,在子类中实现了。2.批量操作和统一接口,因为对象类型不一样,还要求统一实现,就用到虚函数,而函数接口设置为一样,在函数体额外加判断条件,来达到接口统一,更利于程序的封装性,安全性。3.ava里面的输入输出很有趣,也是调用类库,比如java.text.DecimalFormat可以控制输出小数点,java.io.IOException和java.util.*则是输入的专用库,每种类型的输入还不一样。4.在Run里面定义输入变量cmd是c

2020-10-25 17:05:43 316

原创 个人银行账户管理系统C++转Java(第七章)

第七章1.此版本和原c++类似,加入了父类Account以及派生的子类CreditAccount和SavingsAccount。2.java里面也有和c++一样的:? 的用法。package ob4;public class Date { //日期类 private int year; //年 private int month; //月 private int day; //日 private int totalDays; //该日期是从公元元年1月1日开始的第几天

2020-10-25 16:53:40 660

原创 个人银行账户管理系统C++转Java(第六章)

第六章1.Java里没有像c++一样的&符号引用,创建对象时一律使用new。2.Java里是不允许全局变量的,因为这会破坏封装性。3.Java里的异常退出exit(1)需要调用System.exit(1)。4.Java里的字符串类型是一个类String。5.print不输出换行,println才换行。package ob3;public class Date { //日期类 private int year; //年 private int month; //月 p

2020-10-24 22:52:21 173

原创 个人银行账户管理系统C++转Java(第五章)

第五章1.Java里面没有const修饰符,有类似的final,但两者功能有所差异。2.Java里的构造函数没有id(id)这种写法,而要用this,写成this.id=id。3.c++调用类的静态成员函数是 类名::函数名,而Java是 类名.函数名。package ob2;public class SavingsAccount { //储蓄账户类 private int id; //账号 private double balance;//余额 private dou

2020-10-24 22:46:20 125

原创 个人银行账户管理系统C++转Java(第四章)

要求:1、模仿个人银行账户管理系统的C++版本(第4章-第8章),使用Java语言重新实现该系统,比较C++与Java在实现上的异同,熟练掌握Java基础及语法。2、根据系统需求的演化,逐步完善个人银行账户管理系统的功能,改进代码,体会面向对象思想的封装、继承、多态特性在实际系统中的应用,初步掌握使用Java编写可复用、可扩展、可维护代码的基本技能。第四章1.Java里面没有c++ 里的namespace,而是换成了package。2.private,public等在Java里面需要单独写在每一个

2020-10-24 22:39:57 232

原创 java中的运行时多态的含义是什么?有什么用?

运行时多态就是覆盖,就是子类方法覆盖父类方法。使用父类引用指向子类对象,再调用某一父类中的方法时,不同子类会表现出不同结果。运行时多态性提供了更大的灵活性,因为所有事情都在运行时得到解决。...

2020-10-19 17:49:28 862

原创 谈谈组合与继承的区别以及两者的使用场景

组合与继承的区别:继承是子类继承父类,父类的所有属性和方法都可以被子类访问和调用。组合是指将已存在的类型作为一个新建类的成员变量类型,两个类之间无上下级关系。使用场景当你只需要使用另外一个类的方法时使用组合。但是如果你需要使用另外一个类的作用时但你不想被其他的类访问用继承。...

2020-10-19 17:41:34 215

原创 简述运算符instanceof的使用场景

什么是instanceofinstanceof是Java中的二元运算符,左边是对象,右边是类;当对象是右边类或子类所创建对象时,返回true;否则,返回false。这里说明下:类的实例包含本身的实例,以及所有直接或间接子类的实例instanceof左边显式声明的类型与右边操作元必须是同种类或存在继承关系,也就是说需要位于同一个继承树,否则会编译错误instanceof用法左边的对象实例不能是基础数据类型null用instanceof跟任何类型比较时都是false测试案例:public in

2020-10-19 17:41:03 373

原创 如何实现两个对象之间互发消息?

如何实现两个对象之间互发消息?可以通过对象引用的方法,创建两个类,这两个类中都包含另一个类的成员。如:class A{ private B b; public void setB(B _b){ if(_b!-null){b=_b} } public B getB(){ if(b!=null){return b} else return null; }}class B{ A a; public B(A aa){ this.a=aa; aa.setB(t

2020-10-18 16:21:21 215

原创 内部类的作用是什么?什么情况下使用匿名内部类?

作用:1.内部类可以很好的实现隐藏。一般的非内部类,是不允许有 private 与protected权限的,但内部类可以。2.内部类拥有外围类的所有元素的访问权限。3.可是实现多重继承。4.可以避免修改接口而实现同一个类中两种同名方法的调用。匿名内部类:匿名内部类是内部类的一种特殊情况。它只有一个实例,而且没有引用。所以,一般在能用内部类实现,但是实例只用一次的情况下使用它(可以减少资源开销)。...

2020-10-18 15:54:48 1427

原创 接口有什么作用?自己定义一个接口,并给出实现类和使用类。

接口最直接的好处就是提供了一个统一的操作方法名,然后同样的方法名在不同的类中可以有不同的具体实现过程,这样的结果就是在操作实现了该接口的类的对象时,不用去事先了解该方法的名字,而采用统一的名字进行调用。interface A{ // 定义接口A public abstract void print() ; // 定义抽象方法print()}class B implements A { // 定义子类,实现接口 public void print(){ /

2020-10-18 15:50:04 1323

原创 模仿形成抽象类的过程,自选角度,形成一个自己的抽象类,并在程序的类继承和引用中体现抽象类的作用。

abstract class Animal { //抽象类中可以有非抽象方法,也可以有成员变量 private int a = 10; public abstract void bark(); //如果没有此抽象方法,但是class前有absract修饰,也是抽象类,也不能实例化 public void say() { //普通成员方法 System.out.println("我是抽象类中的非抽象方法,此抽象类中的私有成员变量a= " + a);

2020-10-18 15:48:04 207

原创 Java什么是覆盖?有什么用?

什么是覆盖?如果在子类中定义一个方法,其名称、返回类型及参数签名正好与父类中某个方法的名称、返回类型及参数签名相匹配,那么可以说,子类的方法覆盖了父类的方法。作用:可以达到不更改父类的方法便创建了子类的一个方法。使程序更加的安全。例子:class A{public void print1(){System.out.println(“1”);}}class B extends A{public void print1(){System.out.println(“2”);}}

2020-10-18 15:09:28 1521

原创 Java什么是重载?有什么作用?

重载的含义:在java中,如果有功能类似,可以使用相同的名字来定义不同功能方法;定义重载方法的时候,要求:1.方法的名字必须相同,作用域必须相同2.参数必须不同:数量、类型、顺序不同(只要有一个不同,就是重载方法)作用:不用为了对不同的参数类型或参数个数,而写多个函数。多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。例子:public class A {void test(){System.out.p

2020-10-18 15:05:08 5243

空空如也

空空如也

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

TA关注的人

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