
Java基础
屡傻不改
这个作者很懒,什么都没留下…
展开
-
Java面向对象——知识点梳理
知识点梳理面向对象面向对象: 类与对象的关系:类是对象的抽象,对象是类的实现 类是由属性和方法构成,它的每一个对象都有对应的属性和方法方法: 方法的重载: 目的:针对同一个行为的多种表现,对应相同方法名的多个方法 原则:方法名相同,参数列不同 类方法(static方法) 类名.方法()三大特性:封装、继承、多态封装:保护属性值不被随意修改 私有化属性,并提供getter、setter对外接口继承:代码重用、多态的基础 extends关键字 默认的原创 2020-07-27 19:04:17 · 406 阅读 · 0 评论 -
异常
异常异常是指在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序所有异常的根类:Throwable(可抛出的)Error:错误Exception:异常(处理之后能正常运行的)确定会发生异常的情况: Checked异常 :提前处理不确定:(运行期异常)RuntimeException:遇到了再解决常见的异常类型:算术异常:ArithmeticException空指针异常:NullPointException 数组越界异常:ArrayIndexOutOfBoun原创 2020-07-27 09:04:50 · 124 阅读 · 0 评论 -
抽象类与接口
抽象类public abstract class Pet { ——>抽象类 public abstract void toHospital() ;——>抽象方法}抽象类: 1、abstract关键字修饰类 2、抽象类不能被实例化(不能创建对象) 抽象类VS普通类 1、抽象类不能被实例化,有抽象方法 但可以创建一个应用变量,其类型是一个抽象类,指向非抽象的子类实例 2、普通类可以被实例化,无抽象方法抽象方法: 1、抽象方法必须在抽象类中 2、抽象方法没有结构体原创 2020-07-23 18:49:48 · 106 阅读 · 0 评论 -
面向对象基础——方法重写与多态
方法重写方法重写(方法覆盖)的定义: 1、子类根据需求对从父类继承的方法进行重新编写 2、重写时,可以用super.方法的方式来保留父类的方法 3、构造方法不能被重写方法重写规则在继承的情况下,子类的方法满足一下条件: 1、方法名相同 2、参数列表相同 3、返回值类型相同,或者是父类返回值类型的子类 4、访问修饰符的权限不能小于父类方法 5、抛出的异常不能大于(严于)父类 6、父类的静态方法不能被子类覆盖为非静态方法,父类的非静态方法不能被子类覆盖为静态方法 7、子类可以定义与父原创 2020-07-22 21:24:49 · 227 阅读 · 0 评论 -
面向对象基础—封装与继承
封装封装的概念 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问 把尽可能多的东西藏起来,对外提供便捷的接口好处: 1、便于使用者正确使用系统,防止错误修改属性 2 有助于系统之间的松耦合,提高系统独立性 3、提高软件的可重用性 4、降低了构建大型系统的风险 包:包名由小写字母组成,不能以圆点开头或结尾注:1、包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名 2、包名后续部分依不同机构内部的规范不同原创 2020-07-21 22:06:29 · 115 阅读 · 0 评论 -
面向对象基础—方法与方法重载
一级标题二级标题三级标题原创 2020-07-20 22:19:14 · 120 阅读 · 0 评论 -
面向对象基础--类和对象
类和对象的关系(一)对象 :用来描述客观事物的一个实体,由一组属性和方法构成 对象是由静态特征和动态特征组成 1、静态特征:属性 2、动态特征:方法对象的特征--属性 属性——对象具有的各种特征; 每个对象的每个属性都拥有特定值对象的特征--方法 方法——对象执行的操作(二)类:具有相同属性和方法的一组对象的集合类是对象的抽象(三)类与对象的关系 类是对象的抽象,对象是类的具体实现。 类是具有相同特征的对象的集合(抽象);对象是类的实体。定义类定义类的语法如下图所示:原创 2020-07-19 23:09:22 · 260 阅读 · 0 评论 -
Java高级特性--知识点梳理
集合框架List:有序 ArrayList:底层是长度可变的数组,便于查找和随机访问 LinkedList(Node):底层是双向链表,便于插入和删除Set:不重复 HashSet:底层是HashMap的key的hashCode()和equals()方法共同保证不重复Map:底层是Entry<k,v>键值对遍历方式:List:fori、增强for、迭代器Iterator Set:增强for、迭代器Iterator Map:entrySet()、keySe原创 2020-08-11 09:27:28 · 373 阅读 · 0 评论 -
正则表达式
正则表达式正则表达式简介 正则表达式描述了一种字符串匹配的模式,也称规则表达式 常用于检索、替换符合指定模式(规则)的文本 大多数语言都支持正则表达式 Java Python JavaScript …… 正则表达式语法 正则表达式是由普通字符与特殊字符组成的字符串 普通字符 原义字符、非打印字符 特殊字符 元字符:* + ? $ ^ . | \ ( ) { } [] 非打印字符 特殊字符原创 2020-08-10 09:05:22 · 138 阅读 · 0 评论 -
XML&JSON
XMLXML简介: XML(EXtensible Markup Language),可扩展标记语言特点: 1、XML与操作系统、编程语言的开发平台无关 2、实现不同系统之间的数据交换 作用: 1、 数据交互 2、配置应用程序和网站 3、Ajax基石XML文档结构:XML声明: <?xml version="1.0" encoding="UTF-8"?> version:文档符合XML1.0规范 encoding原创 2020-08-10 08:49:38 · 162 阅读 · 0 评论 -
反射机制
反射机制反射的定义: 反射是指在程序运行期间,能够观察和修改类或者类的对象的属性和行为的特性项目开发中常见的使用反射的场景 使用JDBC连接数据库 Servlet在Web容器中的加载和运行反射机制的作用:Java反射机制提供了以下的功能 1、在运行时获取类的修饰符,包名,类名,实现的接口,继承的父类 2、在运行时获取类的所有属性名,修饰符,属性类型 3、在运行时获取所有方法,方法的返回值类型,方法名,方法参数数量,方法参数类型 4、在运行时调用加载类的方法J原创 2020-08-10 08:26:05 · 136 阅读 · 0 评论 -
多线程
线程进程和线程:线程定义和创建多线程定义: 如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为“多线程”。 多个线程交替占用CPU资源,而非真正的并行执行。多线程好处: 充分利用CPU的资源 ; 简化编程模型 ; 带来良好的用户体验。在Java中创建线程的方式: 1、继承java.lang.Thread类 2、实现java.lang.Runnable接口 3、实现Callable接口(一)使用Thread类创建线程:Java提供了java.lang原创 2020-08-06 08:54:47 · 105 阅读 · 0 评论 -
Reader类、Writer类、二进制流和对象流
流的分类:普通流分类: 流向: 输入流:IntputStream,Reader 输出流:OutputStream,Writer 读取数据单元: 字节流:IntputStream,OutputStream 字符流:Reader,Writer转换流:IntputStreamReader,OutputStreamWriter高级流:不能直接作用于文件,要装载普通流/转换流 缓冲流: 二进制流: 对象流:原创 2020-08-05 10:39:30 · 1264 阅读 · 0 评论 -
FileInputStream和FileOutputStream
文件File类访问文件属性File类的常用方法补充:String getParent(); //返回此File对象的路径名的上一级,如果路径没有上一级,则返回nullboolean mkdir(); //创建一个目录,它的路径名由当前File对象指定boolean mkdirs(); //创建包括父目录的目录file.lastModified(); //获取文件或目录的最后修改日期注:绝对路径货物相对路径:绝对路径一般从根目录开始,写全路径相对路径一般从当前目录开始流J原创 2020-08-03 19:31:53 · 428 阅读 · 0 评论 -
StringBuffer类和日期操作类
StringBuffer类StringBuffer类:它是比String类更高效地存储字符串的一种引用数据类型。对字符串频繁修改(如字符串拼接)时,使用StringBuffer类可以大大提高程序执行效率。StringBuffer声明: StringBuffer strb = new StringBuffer(); StringBuffer strb = new StringBuffer("aaa"); StringBuffer的使用:(1)toString()方法 字符串 1.toS原创 2020-08-03 18:39:14 · 248 阅读 · 0 评论 -
实用类介绍(二)——String类和Random类
String类String: 是final类型,不可被继承,底层是char类型数组常量,不可更改; 而对String对象重新赋值的过程,其实是新建对象的过程 如果需要对String对象频繁赋值,则不推荐使用String 例:String aa; // final char[] cc={'1','2'}; // aa=cc.toString(); // final char[] dd={'a','b'}; // String ddd=dd.toString(); // Strin原创 2020-08-03 08:41:05 · 357 阅读 · 0 评论 -
实用类介绍(一)——枚举、包装类和Math类
枚举枚举指由一组固定的常量组成的类型,可以认为是类的变种使用enum关键字定义;Modifier是访问修饰符;枚举常量之间用逗号分隔;枚举常量列表以分号结尾。里面的直接写的值都是该类的公共静态常量,可以用类型.值的方式调用,可以和普通类一样定义属性和方法。valueOf方法常用来将该类的枚举类型与字符串类型比较枚举的好处:类型安全、易于输入、代码清晰包装类包装类:对应每个基本数据类型,都有一个包装类与之对应目的: 可以把基本数据类型转成对象 也可以把字符串转成相应的基本数据类原创 2020-07-30 18:52:34 · 213 阅读 · 0 评论 -
快速排序
快速排序快速排序的逻辑: 1、把首位定为标准位temp 2、i=start ;j=end·· 3、循环条件i<j 4、循环内要有两个循环来重复i++和j--的过程 5、不满足上一条循环条件,则要进行对应赋值 6、出外层循环时,把标准位插入在i处 7、递归调用(自己调自己) 快速排序代码:public class QuickSort { public static void quick(int[] a,int start,int end){ //把首位定为标准位tem原创 2020-07-30 09:23:27 · 180 阅读 · 0 评论 -
集合框架与泛型(二)——Map接口、Collections类和泛型
Map接口Map接口:存储一组键值对象,提供key到value的映射Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作实现类:HashMapMap接口常用的方法:遍历Map集合方法: 方法1:通过迭代器Iterator实现遍历 方法2:增强型for循环 方法3:键值对 遍历的方式: 1、使用entrySet方法获取键值对的集合 Set entry=map.entrySet(); for (Object obj:entry){ System.out.pr原创 2020-07-30 08:53:10 · 236 阅读 · 0 评论 -
集合框架与泛型(一)——List和Set
Java集合Java集合框架提供了一套性能优良、使用方便的接口和类,它们位于java.util包中Java集合框架图如下所示:Java的集合类主要由Map接口和Collection接口派生而来Collection接口有两个子接口:List接口和Set接口Java集合框架由三大接口构成:Map接口、List接口和Set接口Collection接口存储一组不唯一、无序的对象List接口List接口:存储一组不唯一、有序(插入顺序)的对象List接口的实现类有:ArrayList和Li原创 2020-07-28 18:31:02 · 251 阅读 · 0 评论 -
Java基础思维导图
Java基础思维导图JDK下载和安装 JDK是用于开发Java应用程序的开发包,它提供了编译、运行Java程序所需的各种工具和资源。1、下载JDK Oracle的刚官方网站提供最新JDK安装文件的下载地址。本人推荐下载jdk1.8.0_241。2、安装JDK 安装成功后,形成两个目录DK环境变量配置 配置过程:我的电脑–>属性–>高级系统–>配置环境变量–>在系统变量中配置1、JAVA_HOME设置 新建JAVA_HOME,值为:C:\Program File原创 2020-07-17 10:48:19 · 839 阅读 · 0 评论 -
二维数组和Arrays类的应用
二维数组和Arrays类二维数组Arrays类二维数组二维数组:实际上是一个以一维数组做为元素的一维数组)定义二维数组的语法: <数据类型> [ ][ ] 数组名; 或者 <数据类型> 数组名 [ ][ ];注:定义二维数组时,要定义最大维数定义一个二维数组,并为其分配内存空间 int[][] s =new int[3][5];定义并赋值 写法一: 写法二:案例:二维数组赋值(使用随机数)和遍历 public class Demo4 {原创 2020-07-15 18:39:21 · 520 阅读 · 0 评论 -
基本算法排序
基本算法排序基本算法排序选择排序冒泡排序插入排序基本算法排序基本排序算法:选择排序、冒泡排序、插入排序高级选择排序:快速排序、归并排序选择排序选择排序的逻辑: 外层循环从首位向后,来控制要确定的位置; 内层循环从外层循环的下一位位置开始,往后遍历; 外层循环的位置和内层循环位置的值进行循环比较; 内层u想你换比较完-轮,可以找到一个最值; 将该最值与外层循环的值交换。案例: public class Test0 { public static void main(String[原创 2020-07-15 18:21:43 · 215 阅读 · 0 评论 -
一维数组及经典应用
一维数组数组定义:是一个变量,用来存储一组相同数据类型的数据数组的基本要素: 标识符-->数组名 数组元素 -->值 元素下标(地址,索引):从0开始 元素类型 -->类型 ,如果能被整除,则表明此数不是素数,反之是素数。解题步骤:1、首先明白任意一个数如何判断是不是质数/素数(以数字97为例) public class Test01 { public static void main(String[] args) {原创 2020-07-13 18:46:41 · 659 阅读 · 1 评论 -
多重循环、跳转语句与程序调试
多重循环、跳转语句与程序调试多重循环跳转语句break语句continue语句break与continue对比return语句程序调试多重循环多重循环:一个循环体内又包含另一个完整的循环结构。多重循环的使用注意点; 1、各循环可相互嵌套 2、一般不超过三层 3、外层循环变量变化一次,内层循环变量要变化一遍 两层嵌套(二重循环): while(循环添加1){ 循环语句1 for(循环条件2){ 循环语句2 } }注:whil原创 2020-07-10 19:35:01 · 389 阅读 · 1 评论 -
while循环、do-while循环与for循环
循环结构while循环do-while循环for循环二级标题三级标题四级标题五级标题六级标题while循环while循环语句的语法: 变量初始化 while(循环条件){ 循环体 }编写一个while循环的过程: 1、定义一个变量 2、使用变量进行判断,只要满足条件,就执行某些代码 3、改变变量以改变条件的结果,达到退出循环的目的while语句的流程图:if语句实现单分支处理 if语句的语法格式: if(表达式){ 语句 }案例:张浩Java成绩大于90分,老师奖励他iPhone11p import java.util.Scanner;public class Demo1 {public static void main(String[] args){ double score=90.1; //小数保留2位或4位 if(score>=90){原创 2020-07-08 18:32:06 · 714 阅读 · 0 评论 -
变量与常用运算符
变量与常用运算符变量变量的命名变量的数据类型数据类型的转换常用运算符赋值运算符算术运算符关系运算符逻辑运算符变量变量的命名变量的命名规则:字下美人数、骆驼、有意义(1)变量由字母(a~z A~Z)、下划线(_)、美元符号($)、数字(0~9)或人民币符(¥ 正常情况下不使用)组成。(2)变量命名首字母以字母、下划线和美元符号开头,不能以数字开头。(3)骆驼:驼峰命名法(第一个单词以小写字母开始,第二个单词及后续每一个单词的首字母都采用大写字母) 例:className、student原创 2020-07-07 19:34:41 · 1279 阅读 · 0 评论 -
JDK的安装和环境变量配置
Java初体验Java开发环境搭建JDK下载和安装JDK环境变量配置编写第一个Java程序创建Java源程序Java开发环境搭建JDK下载和安装JDK是用于开发Java应用程序的开发包,它提供了编译、运行Java程序所需的各种工具和资源。下载JDKOracle的刚官方网站提供最新JDK安装文件的下载地址。本人推荐下载jdk1.8.0_241。安装JDK安装成功后,形成两个目录:JDK环境变量配置配置过程:我的电脑–>属性–>高级系统–>配置环境变量–>在系统变原创 2020-07-06 20:10:14 · 232 阅读 · 1 评论