
Java学习笔记
Java中的一些概念和知识
超霸霸
考研中
展开
-
Java字符流
字符流一、什么是字符流当使用字节流读取文件时,遇到中文字符时可能会出错,因为一个中文字符可能占用多个字节存储。所有Java提供了字符流类,以字符为单位读写数据,专门用于处理文本文件二、FileReader类java.io.FileReader类是读取字符文件的遍历类,构造时使用系统默认的字符编码和默认字节缓冲区(Windows系统的中文默认编码是GBK,IDEA中是UTF-8)需要的包名:java.io.FileReader构造方法:FileReader类的方法:原创 2021-09-19 23:28:25 · 162 阅读 · 0 评论 -
File类
File类需要的包名:java.io.File构造器:File类的方法:实例详解:创建一个File对象,并输出它的长度/* public long length():返回由此File表示的文件的长度,以字节为单位 注意: 文件夹没有大小概念,不能获取文件夹的大小 如果构造方法给出的路径不存在,length方法返回0*/import java.io.File;import java.io.IOException;public class te原创 2021-09-19 21:21:41 · 97 阅读 · 0 评论 -
IO字节流
IO字节流一、什么是字节流一切文件数据在存储时都是以二进制数字的形式保存,都是一个一个的字节,传输时一样如此。所以,字节流可以传输任意文件数据。在操作流的时候,我们要明确,无论使用什么样的流对象,底层传输的始终为二进制数据输入流输出流字节流字节输入流:InputStream(读取)字节输出流:OutputStream(写入)流:数据(字符,字节)1个字符=2个字节1个字节=8个二进制位写入数据的原理:java程序 - ->JVM(j原创 2021-09-19 17:08:57 · 125 阅读 · 0 评论 -
Java集合
Java集合一、简介List、Set、Map都是接口,List和Set继承至Collection接口,Map为独立接口Connection接口:List有序,可重复ArrayList优点:底层数据结构为数组,查询快,效率高缺点:线程不安全,增删慢Vector优点:底层数据结构是数组,查询快,线程安全缺点:增删慢,效率低LinkedList优点:底层数据结构是链表,增删快,效率高缺点:线程不安全,查询慢Set无序,唯一HashSet原创 2021-09-19 11:39:44 · 94 阅读 · 0 评论 -
Date类和Calender类
Date类和Calender类一、Date类需要的包名:import java.util.Date;构造方法:空参构造方法Date date = new Date();System.out.println(date);输出结果:Fri Sep 17 23:07:39 CST 2021带一个long型参数的构造方法Date date = new Date(20202036598L);System.out.println(date);输出结果:Sun Aug原创 2021-09-17 23:48:07 · 217 阅读 · 0 评论 -
IDEA常用快捷键
IDEA常用快捷键快捷键功能Alt+Enter导入包,自动修正代码Ctrl+Y删除光标所在行Ctrl+D复制光标所在行的内容,插入光标位置下面Ctrl+Alt+L格式化代码Ctrl+/单行注释,再按取消注释Ctrl+Shift+/选中代码注释,多行注释,再按取消注释Alt+Ins自动生成代码Alt+Shift+上下箭头移动当前代码行...原创 2021-09-17 13:32:27 · 113 阅读 · 0 评论 -
Random类
Random类一、什么是Random类Random类位于java.util包下,Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字二、Random对象的生成Radom类包含两个构造方法:public Random(); //该构造方法使用一个和当前系统时间对应的相对时间有关的数字作为种子数进行创建public Random(long seed); //该构造方法可以通过制定一个原创 2021-09-09 21:52:19 · 1035 阅读 · 0 评论 -
Java中的包装类
包装类一、什么是包装类在JAVA中,八大基础数据类型(int,float,double...)是不具备对象的特征的,比如基本数据类型就不能调用方法,功能简单,为了让基本数据类型也具备对象的特征,就有了JAVA包装类,包装类就是:将基本数据类型包装成对象,使其具有了对象的属性和方法。 这样就可以使用方法和属性了二、包装类的主要作用将本类型与其他类型进行转换将字符串与本类型及包装类型相互转换三、如何使用包装类基本类型对应的包装类对应的转换函数byteBytebyte原创 2021-09-09 11:31:34 · 250 阅读 · 0 评论 -
String类
String类length()方法返回字符串的长度String str="asd";//返回字符串的长度int len=str.length();System.out.println(len)结果为:3compareTo()方法String类中的compareTo()方法将返回两个字符串对象的比较结果,若相等,返回0。不相等时,从两个字符串第1个字符开始比较,返回第一个不相等的字符差;另一种情况,较长字符串的前面部分恰巧是较短的字符串,返回它们的长度差。String s1原创 2021-09-09 10:36:24 · 106 阅读 · 0 评论 -
static关键字
static关键字一、什么是staticstatic是静态的意思,是一个修饰符,用来修饰类、变量、方法static修饰变量,变量就成了静态变量;修饰方法,方法就成了静态方法static关键字方便在没有创建对象的情况下进行调用二、static关键字的作用修饰变量不使用static关键字访问对象的属性:public class test1 { public static void main(String[] args) { //首先需要创建对象,才原创 2021-09-08 23:38:52 · 69 阅读 · 0 评论 -
捕获和抛出异常
抛出异常捕获异常异常处理五个关键字:try、catch、finally、throw、throws实例演练我们都知道:除数不能为0,我们在IDEA中运行一下除数为0看是否报错public class Outer { public static void main(String[] args) { int a=1; int b=0; System.out.println(a/b);}运行结果:可以看出这是一个Exception并且报.原创 2021-06-15 11:07:19 · 161 阅读 · 5 评论 -
Exception和Error简介
什么是异常实际工作中,遇到的情况不可能是完美的,比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序在跑着时内存或硬盘满了等等软件程序在运行过程中,非常可能遇到刚刚提到的这些异常问题,我们叫做异常(Exception),意思是例外。这些例外或者叫异常,怎么让我们写的程序作出合理的处理,而不至于程序崩溃异常指程序运行中出现的不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等异常发生在程序原创 2021-06-14 11:10:38 · 857 阅读 · 8 评论 -
内部类 2021-06-14
一、知识点内部类就是在一个类的内部再定义一个类,比如:A类中定义一个B类,那么B类相对于A类来说就称为内部类,而A类相对B类来说就是外部类成员内部类静态内部类局部内部类匿名内部类二、实例演练1.成员内部类定义一个类,并在该类中定义一个内部类public class Outer { //定义一个私有属性 private int id=10; //定义一个私有方法 private void pri(){ System.out.printl原创 2021-06-14 00:37:12 · 1128 阅读 · 1 评论 -
接口 2021-06-13
一、知识点普通类:只有具体实现抽象类:具体实现和规范(抽象方法)都有接口:只有规范,自己无法写方法接口就是规范,定义的是一组规则接口的本质是契约,就像法律一样,制定好后大家都要遵守OO的精髓是对对象的抽象,最能体现这一点的就是接口二、实例演练定义一个接口//interface定义的关键字public interface UserService { //常量 public static final int age=99; //接口中的所有定义的方法其实都原创 2021-06-13 23:46:44 · 93 阅读 · 0 评论 -
abstract抽象类
一、抽象类abstract修饰符可以用来修饰方法和类,如果修饰方法,那么该方法为抽象方法;如果修饰类,则该类为抽象类抽象类中可以没有修饰方法,但抽象方法必须在抽象类中抽象类,不能使用new关键字来创建对象,它是用来让子类继承的抽象方法,只有方法的声明,没有方法的实现,它是用来让子类实现的子类继承抽象类,那么必须要实现抽象类的所有抽象方法,否则该子类也要声明为抽象类二、实例演练定义一个抽象类抽象方法只有方法名,没有方法体,否则报错//抽象类public abstract cl原创 2021-06-13 22:23:15 · 6854 阅读 · 0 评论 -
final关键字
finalfinal是Java语言中的一个关键字final表示最终的,不可变的final可以修饰变量以及方法还有类等知识点:final修饰的类无法被继承final修饰的方法无法被覆盖和重写final修饰的局部变量只能赋一次值final修饰的实例变量必须手动赋值常量final修饰引用只能指向一个对象final修饰的类无法被继承final class A{ }class B extends A{ //报错,final修饰的类无法被继承}final修饰的转载 2021-06-13 18:14:20 · 97 阅读 · 0 评论 -
static关键字详解
static的作用创建独立于具体对象的域变量或者方法用来形成静态代码块以优化程序性能创建变量或方法在类中定义两个属性,一个静态一个非静态public class Student { private static int age; //静态变量 private double score; //非静态变量 public static void main(String[] args) { //初始化一个Student实例 Studen原创 2021-06-13 16:30:26 · 110 阅读 · 0 评论 -
instanceof关键字 2021-06-12
instanceof关键字用来对比左边的对象是否属于右边的对象实例演练定义一个Person父类和Student子类和Teacher子类Object object=new Student();System.out.println(object instanceof Student);//trueSystem.out.println(object instanceof Person);//trueSystem.out.println(object instanceof Object);.原创 2021-06-13 12:03:37 · 81 阅读 · 0 评论 -
多态 2021-06-12
知识点即同一个方法可以根据发送对象的不同而采用多种不同的行为方式一个对象是实际类型是确定的,但可以指向对象的引用的类型有很多多态存在的条件:有继承关系子类重写父类的方法父类引用指向子类对象注意:多态是方法的多态,属性没有多态性instanceof实例演练定义一个父类Perosn类,并定义一个run方法,代码如下://父类——Person类public class Person { public void run(){ System.out.pr原创 2021-06-12 09:51:51 · 98 阅读 · 0 评论 -
重写 2021-06-11
重写静态方法(有static)定义一个父类B并定义一个test方法public class B { public static void test(){ System.out.println("->B"); }}定义一个子类A继承B类并定义一个test方法public class A extends B{ public static void test() { System.out.println("->A");原创 2021-06-11 00:22:23 · 77 阅读 · 2 评论 -
super详解 2021-06-10
Super详解一、super的作用super调用父类的构造方法二、实例演练属性和方法的调用定义一个父类Person类,并定义一个name属性和一个print方法,代码如下://父类——Person类public class Person { String name="person"; public void print(){ System.out.println("person_print"); }}定义一个子类Student类,并定义一个原创 2021-06-10 20:59:31 · 451 阅读 · 0 评论 -
构造器 2021-06-10
创建与初始化对象使用new关键字创建对象使用new关键字创建时,除了分配内存空间外还会给创建好的对象进行默认的初始化以及对类中构造器的调用类中的构造器也称为构造方法,是在进行创建对象时必须调用的,并且构造器有以下特点:必须和类名相同必须没有返回类型,也不能写void实例操作无参构造先定义一个Person类public class Person { String name; //无参构造 public Person() { //实例原创 2021-06-10 13:47:04 · 77 阅读 · 0 评论 -
继承 2021-06-10
继承的特点:继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模extends的意思是扩展。子类是父类的扩展Java中类只有单继承,没有多继承继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示objecleisuper方法重写实例演练:创建一个Person类作为子类并在类中定义一个run方法,代码如下://父类public class Pe原创 2021-06-10 11:52:38 · 205 阅读 · 4 评论 -
面向过程和面向对象 2021-05-23
面向过程面向过程思想步骤清晰简明,第一步做什么,第二部做什么…面对过程时候处理一些较为简单的问题面向对象思维物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索面向对象适合处理复杂的问题,适合处理需要多人协作的问题对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统,但是,具体到微观操作,任然需要面向过程的思路去处理面向对象面向对象编程(Objec原创 2021-05-23 23:08:28 · 86 阅读 · 0 评论 -
稀疏数组 2021-05-23
稀疏数组介绍:当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组稀疏数组的处理方法是:记录数组一共有几行几列,有多少个不同值把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模如下:原始数组为:000220015011000170000-6000000003909100000000280000稀疏数组为:原创 2021-05-23 22:11:48 · 86 阅读 · 0 评论 -
Arrays类 2021-05-23
两天没更新的我又回来了数组的工具类java.util.Arrays由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作查看JDK帮助文档Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而不是使用对象来调用Arrays中的常用方法:对数字排序:通过sort方法int[] arrays={1,9,23,96,240,0,36};Arrays.sort(arrays);原创 2021-05-23 17:49:48 · 101 阅读 · 0 评论 -
520特辑 2021-05-20
今天是2021年5月20号,又是吃狗粮的一天。众所周知,程序员有很多对象,而且这些对象中还有很多方法不会到了2021年还有人没有对象吧?实在没有的话new一个也行,接下来手把手教你,好好看好好学:String girlfriend = new String("对象");System.out.println(girlfriend);输出结果:开个玩笑,别当真,其实你根本没有女朋友最后分享博主耗时整整三分钟敲的爱心表白代码!(拿走不谢,表白失败别赖我)public class test原创 2021-05-20 20:34:27 · 342 阅读 · 2 评论 -
递归 2021-05-19
递归就是:A方法调用A方法,就是自己调用自己利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需要少量的程序就可以描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无线集合递归结构包括两个部分:递归头:什么时候不调用自身方法。如果没有头,将陷入死循环递归体:什么时候需要调用自身方法下面代码是用递归实现求阶乘:package method;public c.原创 2021-05-19 22:27:09 · 94 阅读 · 2 评论 -
可变参数 2021-05-19
JDK 1.5开始,Java支持传递同类型的可变参数给一个方法在方法声明中,在指定参数类型后加一个省略号(…)一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明package method;public class Demo02 { public static void main(String[] args) { printMax(1,2,24,36.5,99.9); printMax(new double[]{1.原创 2021-05-19 22:05:26 · 140 阅读 · 0 评论 -
方法 2021-05-19
什么是方法?Java方法是语句的集合,它们在一起执行一个功能方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,即一个方法只完成一个功能,这样有利于我们后期的扩展方法的命名规则:驼峰原则,首字母小写方法的定义Java的方法定义类似于其他语言的函数,是一段用来完成特点功能的代码片段,一般情况下,定义一个方法包含以下语句:方法包原创 2021-05-19 17:32:29 · 87 阅读 · 0 评论 -
Java编程题:寻找鞍点 2021-05-19
什么是鞍点:鞍点指的是数组在某位置上的元素,其所在行最大,所在列最小(鞍点不一定存在)题目要求:从控制台输入数据初始化一个数组,然后输出其鞍点的位置和值,若不存在则输出"“不存在鞍点”以下是我写的一个寻找鞍点的代码:package programmingTopics;import java.util.Scanner;public class 寻找鞍点 { public static void main(String[] args) { System.out.prin.原创 2021-05-19 12:34:34 · 1452 阅读 · 1 评论 -
循环 2021-05-18
增强for循环Java5中引入了一种注意用于数组或集合的增强型for循环Java增强for循环语法格式如下:for(声明语句:表达式){ //代码句子}声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等表达式:表达式是要访问的数组名,或者是返回值为数组的方法例如以下代码:package structure;public class Demo01 { public static void main.原创 2021-05-18 23:34:12 · 99 阅读 · 0 评论 -
用户交互Scanner 2021-05-17
Java给我们提供了一个工具类,可以获得用户的输入。java.util.Scanner 是Java5的新特征,我们可以通过Scanner类来获取用户的输入基本语法:Scanner s = new Scanner(System.in);next通过Scanner类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要使用 hasNext() 与 hasNextLine() 判断是否还有输入的数据next():一定要读取到有效字符串后才可以结..原创 2021-05-17 23:07:06 · 88 阅读 · 0 评论 -
逻辑运算符和位运算符的深度解析 2021-05-16
逻辑运算符&&(与):逻辑与运算,两个都为真则为真||(或):逻辑或运算,有一个为真则为真~(非):取反运算短路运算有如下代码:public class test { public static void main(String[] args) { int a=2; boolean x=(a<1)&&(a++<5); System.out.println("a = "+a); .原创 2021-05-16 17:23:01 · 160 阅读 · 0 评论 -
初识Math类 2021-05-16
在 Java 中 Math 类封装了常用的数学运算,提供了基本的数学操作,如指数、对数、平方根和三角函数等**下面介绍该类的常量及数学处理方法:静态常量Math 类中包含 E 和 PI 两个静态常量,它们的值分别等于 e(自然对数)和 π(圆周率)System.out.println("E =" + Math.E);System.out.println("PI =" + Math.PI);运行结果为:常用类方法求最大值、最小值和绝对值**Math.max(a,b):*原创 2021-05-16 00:49:36 · 109 阅读 · 0 评论 -
基本运算符 2021-05-15
基本运算符Java语言支持一下运算符(和C语言类似):算数运算符:+,-,*,/,%,++,–赋值运算符:=关系运算符:>,<,>=,<=,==,!=逻辑运算符:&&,||,!位运算符:&,|,^,~,>>,<<,>>>条件运算符:?:(和C语言三元运算符类似)扩展赋值运算符:+=,-=,*=,/=package operator;public class test { public原创 2021-05-15 22:40:34 · 81 阅读 · 0 评论 -
变量、常量、作用域 2021-05-14
变量变量就是可以变化的量Java是一种强类型语言,每个变量都必须声明其类型Java变量是程序中最基本的存储变量,其要素包括变量名,变量类型和作用域type varname = value;//数据类型 变量名 = 值;可以使用逗号来声明多个同类型变量注意事项:每个变量都有类型,类型可以是基本类型,也可以是引用类型变量名必须是合法的标识符变量声明是一条完整的语句,因此每一个声明都必须以分号结束public class Demo04{ //类变量 stati原创 2021-05-14 15:34:09 · 96 阅读 · 0 评论 -
数据类型 2021-05-13
数据类型强类型语言要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用Java的数据类型分为两大类基本类型(primitive type)引用类型(referen type)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xJMgTohI-1620915650326)(C:\Users\蒋超大帅逼\Desktop\素材\QQ图片20210513205212.png)]什么是字节位(bit):是计算机内部数据存储的最小单位,是一个八位二进原创 2021-05-13 22:21:33 · 153 阅读 · 2 评论 -
Java中的关键字和标识符 2021-05-13
Java中的关键字和标识符关键字:标识符Java所有组成部分都需要名字。类名、变量名以及方法名都被称为标识符。标识符注意点:所有标识符都应该以字母(A-Z或者a-z)、美元符($)、或者下划线(_)开始首字符之后可以是字母(A-Z或者a-z)、美元符($)、或者下划线(_)或数组的任意组合不能使用关键字作为变量名或方法名标识符大小写敏感可以使用中文命名,但一般不建议这样做,更不建议使用拼音,一般用英语单词...原创 2021-05-13 19:48:51 · 127 阅读 · 0 评论 -
Java中的注释 2021-5-13
Java中的注释单行注释:// 注释,只能注释一行//这是一行注释多行注释:/* 注释 */,可以注释多行文字/*hello worldhello worldhello world*/文档注释:/** * *//** * Description:Hello World * Author:超霸霸 * Date:2021/5/13 */最后,为了增添一些趣味性,奉上一些有趣的代码注释,哈哈哈哈准备好别笑狗头/***原创 2021-05-13 19:35:04 · 168 阅读 · 0 评论