java基础
文章平均质量分 75
java基础
薛定谔的猫1981
技术博客
展开
-
java(三十六)IO流(五)标准输入输出
除了输出流以外,Java还有一个负责输入的标准流, 对应的API 是System.in与标准输出相比,标准输入则复杂的多。尤其是直接使用System.in时,虽然可以读取到用户的输入,但该方式特别的复杂,对咱们初学者来说很不友好。所以为了更方便地实现输入功能, 我们介绍一个简单的类, 即ScannerScanner类是Java 5中开始提供的,负责解析基本类型和字符串的简单文本扫描器。通过Scanner类,我们可以获取用户在控制台里的输入数据。nextInt():获取输入的整数;原创 2024-09-29 09:52:59 · 1012 阅读 · 0 评论 -
java(三十五)IO流(四)字节输出流
通过创建 FileOutputStream 对象,可以打开一个文件,并向该文件中写入数据。可以使用 write(int) 方法逐个字节地写入数据,也可以使用 write(byte[]) 方法一次写入多个字节。应用实例:请使用FileOutputStream 在a.txt 文件中写入”hello,world“,如果文件不存在,会自动创建文件。练习:将枯藤老树昏鸦,小桥流水人家,古道西风瘦马,夕阳西下,断肠人在天涯 出入到文件里。把内存中的数据以字节的形式写出到磁盘文件中的输出流,用于将数据写出到文件。原创 2024-09-28 17:25:43 · 259 阅读 · 0 评论 -
java(三十四)IO流(三)字节输入流
read(): 从输入流读取下一个数据字节。它们的子类都是字节流,主要用在按字节来处理二进制数据。字节输入流一个字节一个字节读取数据byte。性能较慢,读取中文字符输出无法避免乱码问题,会截断中文字节。用来将文件中的数据通过字节流的形式读取到java程序中。1.文件字节输入流,每次读取一个字节的API是哪一个。文件字节输入流每次读取一个字节数组的API是哪个。程序从右边的数据源中一个字节一个字节的读取数据。2.每次读取一个字节存在什么问题?每次读取一个字节数组存在什么问题。按照一个字节的方式读取文件。原创 2024-09-28 17:19:28 · 310 阅读 · 0 评论 -
java(三十三)IO流(二)
数据源(DataSource,文件,内存,网络,数据库)就像水箱,流(stream)就像水管中流动着的水流,程序就是我们最终的用户。某个热点 key,在缓存过期的一瞬间,同时有大量的请求打进来,由于此时缓存过期了,所以请求最终都会走到数据库,造成瞬时数据库请求量大、压力骤增,导致数据库存在被打挂的风险。流是一种抽象概念,是对数据传输的总称,也就是说数据在设备间的传输称为流,流的本质是数据传输,IO流就是用来处理设备间数据传输问题的。造成瞬时数据库请求量大、压力骤增,引起雪崩,导致数据库存在被打挂的风险。原创 2024-09-25 11:54:05 · 905 阅读 · 0 评论 -
java(三十二)IO流(一)
注意在UNICODE下一个英文字符占一个字节,一个中文字符占三个字节(JAVA环境默认的)编码,把文字转换为字节。解码,将字节转换为字符。原创 2024-09-22 15:32:07 · 182 阅读 · 0 评论 -
java(三十一)异常
所有的异常都是从Throwable继承而来的,是所有所有错误与异常的超类。在java中,将程序执行过程中的不正常的情况称之为异常,开发过程中的语法错误和逻辑错误不是异常,发生异常时java会阻止当前方法或作用域的情况。程序本身可以捕获并且可以处理异常。红字代表发生了异常,查看异常源码,所有异常都是exception的子类,exception是throwable的子类。网络异常,内存溢出,数据库崩溃,系统错误,严重不应尝试修改,捕获。子类重写父类方法要抛出与父类一致的异常或者子异常,或者不抛出异常。原创 2024-09-22 15:13:23 · 924 阅读 · 0 评论 -
Java(三十一)Interface接口
usb插槽就是现实中的接口。可以把手机、相机、u盘都插在usb插槽上,而不用担心哪个插槽是专门插哪个的,原因就是做usb插槽的厂家和做各种设备的厂家都遵守了统一的规范。苹果手机定义的接口就不是type-c接口,所以其他生产充电线的厂家就必须遵循。为什么要有接口我们来extends Animal,Animal1这两个动物类发现语法错误,继承只能单继承,c++里有多继承,java之所以要引入接口,就是为了弥补不能多继承的缺点一个类可以实现多个接口,从而获得不同的行为。原创 2024-09-19 16:09:17 · 640 阅读 · 0 评论 -
Java(三十)Abstract 抽象类
在Java中,我们通过在类前添加关键字abstract(抽象的)来定义抽象类。如下所示 :抽象类的定义格式:直接给类名加上 abstract(抽象关键字) 就行了。public abstract class 类名{}抽象方法的定义格式:不写方法体,直接分号结束。前面再加一个 abstract(抽象关键字)public abstract 返回值类型 方法名(参数列表);必须使用Abstract关键字修饰含有0个或多个用abstract修饰的方法(抽象方法)抽象方法没有方法体。原创 2024-09-19 11:51:07 · 969 阅读 · 0 评论 -
Java(二十九)Object类 hashcode equals方法
根据默认实现,它比较的是对象的引用是否相等,即比较两个对象是否是同一个实例。如果需要重写equals方法,应该重写hashcode方法.原生equals是比较对象是否相同,hashcode内存地址换算出来的一个值,如果只重写equals方法,而不重写hashCode方法的话,就回出现因为equals()两个对象相同,但是原先的hashCode()对应的值不同。Java.java.lang包下的核心类,Object类是所有类的父类,任何一个类如果没有明确的继承一个父类的话,那么它就是Object的子类;原创 2024-09-18 09:17:15 · 955 阅读 · 0 评论 -
Java(二十八)多态
Java使用多态的原因是因为它可以提高代码的灵活性和可复用性。多态是指一个对象可以具有多种形态,即不同的类或接口类型。在Java中,多态通过继承、接口和重载等机制实现。简单的说就是一个对象有多种形态,具体点说多态就是父类中的属性和方法被子类继承后,可以具有不同的数据类型或不同的行为,使父类中的同一个属性和方法在父类与各个子类具有不同的含义。如下图:子类都继承了父类,但同一个eat方法在不同父类子类中表现不同行为就是多态。再比如。原创 2024-09-18 09:17:01 · 771 阅读 · 0 评论 -
Java(二十七)方法重写override
在 Dog 类中,我们重写了这个方法,并且定义了新的实现方式。在 main() 方法中,我们创建了一个 Animal 类型的对象和一个 Dog 类型的对象。通过调用它们的 move() 方法,我们可以看到,当调用 Animal 类型的对象时,执行的是 Animal 类中的方法,而当调用 Dog 类型的对象时,执行的是 Dog 类中的方法。在这个示例中,我们定义了三个名为add的方法,它们的参数列表不同。当需要调用add方法时,Java编译器会根据传入的参数类型和数量选择正确的方法进行调用。原创 2024-09-16 13:50:52 · 978 阅读 · 0 评论 -
java(二十六)supper关键字
我们想一下this指向的是什么,是当前对象自己。super和this类似,它指向了当前对象自己的父类型特征(也就是继承过来的那些东西)。将Animal中name 赋值为Animal,eat方法改为。形式:super(参数列表);必须位于调用它的方法体的首句。每当创建子类的实例时,父类的实例被隐式创建,由。关键字引用变量引用。原创 2024-09-16 12:34:44 · 481 阅读 · 0 评论 -
java(二十五)继承
从这两段代码可以看出来,代码存在重复了,导致后果就是代码量大且臃肿,而且维护性不高(维护性主要是后期需要修改的时候,就需要修改很多的代码,容易出错),所以要从根本上解决这两段代码的问题,就需要继承,将两段代码中相同的部分提取出来组成 一个父类。实际上这种做法是相对于早期其它编程语言来讲(对彪“C++”,“C++”一个子类可以同时继承多个父类),实际上所谓的多继承的需求是希望一个子类可以同时继承多个父类(这种继承的结构称为“多重继承”)。继承的概念是指一个类(子类)可以继承另一个类(父类)的属性和方法。原创 2024-09-12 08:55:37 · 1072 阅读 · 0 评论 -
java(二十四)对象数组
在Java中,对象数组是指由对象类型的元素组成的数组。与基本类型数组不同,对象数组可以存储对象的引用。对象数组的声明和初始化方式与基本类型数组类似。例如,可以使用以下语法声明和创建一个对象数组:类名[ ] 对象数组名 = new 类名[ 数组大小]以创建Student类的对象数组为例//创建3个学生对象。原创 2024-09-12 08:55:05 · 262 阅读 · 0 评论 -
java(二十三)对象作为参数传递
通过查看程序的运行我们观察结果,我们就会明白,在Java中对象作为参数传递时,实际上是把对象在内存中的地址拷贝了一份传给了参数。空指针异常:当把对象作为参数传递时,要确保传递给方法的对象不是null,否则在方法内部尝试访问或修改对象的属性或方法时可能会抛出NullPointerException。对象状态:当你把对象作为参数传递给方法时,你实际上传递的是该对象的引用(在Java中,对象总是通过引用来传递的)。数据共享:通过把对象作为参数传递给方法,你可以在方法内部访问和修改对象的属性或调用其方法。原创 2024-09-12 08:54:46 · 382 阅读 · 0 评论 -
java(二十二)成员变量初始化
构造器不会阻止自动初始化的进行,且自动初始化会在构造器被调用之前进行。对于基本类型,有各自不同的默认值如int、char、short等为0,boolean为false,对于对象,默认值为null。当我们在一个类中不创建任何构造函数时,类会存在一个无参且不进行任何操作的默认构造函数,但是一旦我们创建了自己的构造函数,默认构造函数就会被覆盖,再想要调用,就需要自己显式的定义出来。静态初始化只会在必要的时刻进行,即第一个该类的对象被创建,或者第一次访问静态数据(静态数据在创建类的对象就可以访问)。原创 2024-09-12 08:54:28 · 344 阅读 · 0 评论 -
JAVA(二十一)this关键字
this也是如此, 和其他该类的引用类型变量一样,本质都是变量,指向的也是同一个对象,只不过this是内置的变量而已。也就是说this出现在成员方法、构造器中代表当前对象的地址也是指向当前对象的引用,局部变量的名字与成员变量的名字相同时,若想在该方法内使用成员变量,必须使用关键字。类似于日常的称呼,比如,别人称呼你的时候应该用姓名,比如称呼“赵云”,赵云很帅、赵云武功很强,但是赵云自己称呼自己应该用“我”,赵云:我很帅、我武功很强。关键字是Java中的一个特殊引用变量,它持有当前对象的引用。原创 2024-09-11 09:04:59 · 341 阅读 · 0 评论 -
JAVA(二十)构造方法
用于创建对象的方法,我们在前面的章节中对类和对象有了一定初步认识,不知道大家是否还记得使用new创建对象,其语法格式为类名 对象名 = new 类构造方法();何为构造方法?它是一种特殊的类方法成员,用于创建对象时进行初始化。构造方法主要作用包括两方面: 构造一个类的实例对象 对实例对象进行初始化;构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,并且不书写返回值类型,在创建对象实例时由new运算符自动调用。构造方法又有无参构造器,和有参构造器无参构造器:初始化对象为默认地址。原创 2024-09-11 09:04:07 · 642 阅读 · 0 评论 -
JAVA(十九)方法的重载
假设要设计一个收银台A方案:设计三个窗口,分别使用现金、信用卡、支票进行交付B方案:设计一个窗口,可以根据用户付款方式,实现现金、信用卡、支票进行交付。相对于A方案,B方案更灵活。原创 2024-09-10 10:14:15 · 435 阅读 · 0 评论 -
JAVA(十八)类的组成
练习:声明一个ChinaPeople类,申明一个静态变量,变量名为guoji 代表 国籍 值为china,申明一个静态方法 方法名为findGuoji,返回guoji 的值。2 就是两个实例成员 根据学生模板创建出两个实例,name就是实例变量,属于对象所有,每个对象的name不同。是指不管类创建了多少对象,系统仅在第一次调用类的时候为类变量分配内存,所有对象共享该类的类变量。练习:在刚才建好的Dog类中声明一个实例方法eat,创建两个实例分别来调用自己的eat方法。Person里面的类成员,里面的方法。原创 2024-09-10 09:58:50 · 381 阅读 · 0 评论 -
JAVA(十七)面向对象的三大特征之一封装
面向对象程序三大特性:封装、继承、多态。而类和对象阶段,主要研究的就是封装。封装简单来说就是套壳屏蔽细节。举个例子,手机中都有主板,而产家不会直接将一个主板直接卖给用户,而会对手机进行外壳的包装,将内部实现细节隐藏起来,仅仅对外提供开关机、按键以及插孔等,让用户和手机屏幕、按键交互,实际上手机真正工作的是CPU、内存等元件。封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。原创 2024-09-09 07:18:54 · 1523 阅读 · 0 评论 -
JAVA(十六)PACKAGE 包
这样我们就对包的作用有了一个较为清晰的认知,因为我们创建文件夹的目的就是管理文件,所以在 Java 中,包就是用来管理不同类和接口的。一个类总是属于某个包,类名(比如Person)只是一个简写,真正的完整类名是包名.类名,这才是唯一确定一个类路径的写法,不同包中的类名允许重复。包与包之间有控制访问权限的,不同包之间,对方法和属性的访问权限,比如类的访问控制,只能是空或者 public。在main方法中new Car类。我们知道JAVA是由类组成的,其实我们不知道的是JAVA是由包组成的,包里包含了类。原创 2024-09-09 07:17:19 · 1152 阅读 · 0 评论 -
JAVA(十五)类和对象
类的定义使用关键字:class。[修饰符] class 类名{属性声明;方法声明;定义一个汽车类/*减速*/speed-=10;/*加速*/speed+=10;练习定义一个Person人类 ,Person就是类,一个个人就是一个个对象,Person有name,sex,age属性,有eat,sleep,run行为,也就是方法练习定义一个Dog类 有breed size color ,age 属性,有eat run sleep name三个方法。原创 2024-09-08 10:54:26 · 641 阅读 · 0 评论 -
JAVA(十四)类和对象之面向对象编程
编程的分类按编程风格分类面向过程编程和面向对象编程和面向接口编程。原创 2024-09-08 10:54:03 · 877 阅读 · 0 评论 -
java(十三)参数传递
需要注意的是,虽然在对象传递时,看起来好像是按引用传递,但实际上仍然是按值传递,只不过传递的值是对象引用的副本,这意味着你可以修改对象的状态,但不能修改对象引用本身。如果将新的对象赋值给方法内的参数,原始引用不会受到影响。虽然你可以将对象传递给方法,但方法接收的是对象引用的副本,因此在方法内部修改对象的内容会影响原始对象。,特点是传递的是值的拷贝,传递完后两者就没有关系了。,其实传递的引用的地址,也就是变量所对应的内存空间的地址。引用传递,其实可以理解为传的是类似指针,地址的东西。,不会影响原始参数的值。原创 2024-09-08 10:52:23 · 311 阅读 · 0 评论 -
java(十二)String 字符串
通过 StringBuffer 创建的对象是创建在堆 (heap) 上的,如果要频繁对字符串内容进行修改,出于效率考虑最好使用 StringBuffer 它是线程安全的,适合多线程环境下使用。s.append("赵敏").append(100).append(true).append(10.5);注意 对于引用数据类型(字符串,对象,数组,类) equals用于判断值相等,对于基础数据类型 判断用==System.out.println("字符在索引4的位置是: " + ch1);原创 2024-09-05 19:11:08 · 1014 阅读 · 0 评论 -
Java(十一)中的数组
这样的代码是不存在错误的,但是存在了许多的重复,你需要不停的定义int类型和变量名,当少数只有几个数据的时候,你写的话可能还行,但是如果是30个、50个、100个同学的成绩要存起来呢?大量的重复,你一定会敲到怀疑人生。数组它用一组连续的内存空间,存储一组具有相同类型的数据,数组因具有连续的内存空间的特点,让数据拥有非常高效率的“随机访问”,但也是因为要保持这个连续的内存空间,导致数组在删除或插入操作的时非常低效。因为数组为了保持连续性,必然会涉及大量数据的搬移,这个是非常消耗时间的。原创 2024-09-05 15:07:28 · 454 阅读 · 0 评论 -
JAVA(十)中的方法
90年代风靡全世界的游戏魂斗罗发射苹果弹是一种方法,发射散弹是一种方法,发射旋转弹是一种方法,跳也是一种方法JAVA中的方法用()括起来就是方法,()里面可以有值也可以没值System.out.println(“我是一个方法”);//叫有参数的方法say() //没有参数的方法方法在程序中的位置Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用。原创 2024-09-05 12:18:05 · 834 阅读 · 0 评论 -
java(九)中的循环结构
我们在执行循环时,需要满足一定的循环条,反复执行特定的代码,当条件被打破时就要结束循环。第二步:执行循环条件,看判断条件满不满足,如果满足条件,执行循环体中的的语句,如果当条件不满足,就退出for循环;或者,当我们在循环中已经完成了本次循环的主要任务,就可以用continue语句提前结束本次循环,节省时间。例如,当我们在循环中遇到了某些无效的数据,就可以用continue语句跳过本次循环,继续处理下一个数据。例如,当我们在循环中找到了想要的结果,就可以用break语句结束循环,避免不必要的计算。原创 2024-09-05 22:50:16 · 412 阅读 · 0 评论 -
JAVA(八)中的流程控制语句
如果有break语句,则跳出switch语句,继续执行后面的语句。如果没有break语句,则会继续执行下一个case或者default分支,直到遇到break或者switch语句结束。练习:定义一个int 变量 变量名为age 初始值为17,判断if >=18时 终端输出已成年,否则输出未成年。首先计算表达式的值,表达式可以是byte,short,char,int,String或者枚举类型。括号里面的是条件表达式,如果为true则执行语句体,如果为false则执行后面的。原创 2024-09-05 20:27:48 · 365 阅读 · 0 评论 -
JAVA(七)运算符
运算符是编程语言中用于执行各种操作的特殊符号或关键字。它们用于处理变量和值,执行数学计算、逻辑运算、位运算和其他操作,以便编写复杂的程序。运算符允许程序员在代码中执行各种操作,从而实现所需的功能。原创 2024-09-07 08:49:17 · 846 阅读 · 0 评论 -
JAVA(六)数据类型转换
在Java的程序员中是要求参与运算的数据类型都是保持一致的,如果有数据类型不一致的情况将会发生类型的转换。原创 2024-09-07 08:50:05 · 153 阅读 · 0 评论 -
Java(五)的变量类型
在Java中,变量是存储数据的基本单元,变量指的是程序运行时可变的量,相当于开辟一块内存空间来保存一些数据. 类型则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性.Java是一门强类型的编程语言,它对变量的数据类型有严格的限定。在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则程序会报错。在Java中变量的数据类型分为两种,即基本数据类型和引用数据类型。Java中所有数据类型如图。原创 2024-09-06 10:50:50 · 1025 阅读 · 0 评论 -
JAVA(四)的关键字和标识符
关键字:预先定义好的具有特殊意义的字符,全部小写。原创 2024-09-05 22:51:53 · 303 阅读 · 0 评论 -
Java(三)的运行机制
JAVA提供的一堆函数,比如System.out.println(“打印”);源程序必须被翻译成可执行的机器代码才能运行。翻译可以分为编译和解释两种。存储-软盘 1.44MB 2000年。java是解释执行的高级编程语言。存储-1995年 JAVA诞生。Java 程序的开发步骤。什么是Java API。为什么要设计垃圾回收。原创 2024-09-05 22:51:07 · 382 阅读 · 0 评论 -
Java(二)开发环境的搭建
安装JDK8(官网 www.oracle.com)如何编译和运行Java程序。类路径(CLASSPATH)原创 2024-09-05 22:51:34 · 508 阅读 · 0 评论 -
Java(一)的概述
java的版本。原创 2024-09-05 22:50:46 · 436 阅读 · 0 评论