java学习记录
踏切
这个作者很懒,什么都没留下…
展开
-
Java的多态
多态 即同一方法可以根据发送对象的不同而采取多种不同的行为方式。 一个对象的实际类型是确定的,但可以指向对象的引用类型有很多。 多态的注意事项: 多态是方法的多态,属性没有多态 父类和子类,有联系 类型转换异常! ClassCastException! 存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son; 不能重写的情况: static:方法,属于类,它不属于实例 final:常量 private方法: 遇见狂神说 ...原创 2021-05-05 15:31:28 · 64 阅读 · 0 评论 -
Java的方法重写
重写 需要有继承关系,子类重写父类的方法 方法名必须相同 参数列表必须相同 修饰符:范围可以扩大但不能缩小; public>protected>default(默认)>private 抛出异常:范围可以被缩小,但不能扩大; ClassNotFoundException > Exception(大) 重写,子类的方法必须与父类相同,方法体不同 为什么要重写? 1.父类的功能,子类不一定需要,或者不一定满足! Alt+Insert : Override 遇见狂神说 ...原创 2021-05-04 15:48:21 · 76 阅读 · 0 评论 -
Java的Super详解
Super注意点 super调用父类的构造方法,必须在构造方法的第一个 super必须只能出现在子类的方法或者构造方法中 super和this不能同时调用构造方法 VS This: 代表的对象不同: this:本身调用的这个对象 super:代表父类对象的应用 前提 this:没有继承也可以使用 super:只能在继承条件才可以使用 构造方法 this();本类的构造 super();父类的构造 遇见狂神说 ...原创 2021-05-03 16:42:29 · 79 阅读 · 0 评论 -
Java对象之创建对象内存分析
package oop; public class Pet { public String name; public int age; //无参构造 public void shout(){ System.out.println("叫了一声"); } } /* public static void main(String[] args) { Pet dog = new Pet(); dog.name = "旺原创 2021-04-01 09:20:36 · 95 阅读 · 0 评论 -
Java对像之构造器
package oop; //java---->class public class PersonA { //一个类即使什么都不写,它也会存在一个方法 //显示的定义构造器 String name; int age; //alt + insert //1.使用new关键字,本质是在调用构造器 //2.用来初始化值 public PersonA(){ } //有参构造:一旦定义了有参构造,无参就必须显示定义 pu原创 2021-03-31 16:30:07 · 56 阅读 · 0 评论 -
Java之什么是面对对象
面向过程和面向对象 面向过程思想 步骤清晰简单,第一步做什么,第二步做什么…… 面对过程适合处理一些较为简单的问题 面向对象思想 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才是某个分类下的细节进行面对过程的思索。 面对对象适合处理需要多人协作的问题! 对于描述复杂的事物,为了从宏观是把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。 什么是面向对象 面向对象编程(原创 2021-03-25 15:17:44 · 58 阅读 · 0 评论 -
Java的稀疏数组
稀疏数组 需求:编写五字棋游戏中,有存盘退出和续上盘的功能。 分析问题:因为该二维数组的很多值都是默认值0,因此记录了很多没有意义的数据。 解决:稀疏数组 稀疏数组介绍 当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 记录数组一共有几行几列,有多少个不同值 把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模 如图:左边是原始数组,右边是稀疏数组 public static void main(Strin转载 2021-03-24 17:00:14 · 51 阅读 · 0 评论 -
Java数组之冒泡排序
冒泡排序 冒泡排序是最出名的排序算法之一,总共有八大排序! 冒泡排序的代码:两层循环,外层冒泡轮数,里层依次比较。 由嵌套循环,我们可得出这个算法的时间复杂度为O(n2)。 public static void main(String[] args) { int[] a = {1,4,5,6,72,2,2,2,25,6,7}; int[] sort = sort(a);//调用完下面的排序方法以后,返回一个排序后的数组 System.out.pr原创 2021-03-24 09:32:25 · 372 阅读 · 1 评论 -
Java中的Arrays类
Arrays类 数组的工具类java.util.Arrays 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。 查看JDK帮助文档 Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不能”使用对象来调用(注意:是“不用”而不是“不能”) 具有以下常用功能: 给数组赋值:通过fill方法 给数组排序:通过sort方法,按升序 比较数组:通过equals方法比较数组中元素是否原创 2021-03-23 17:03:40 · 145 阅读 · 1 评论 -
Java数组使用总结
数组使用 普通的For循环 For-Each循环 数组作方法入参 数组作返回值 public static void main(String[] args) { int[] array = {1,2,3,4,5}; //打印全部的数组元素 for(int i = 0;i < array.length;i++){ System.out.println(array[i]); } System.out.原创 2021-03-22 09:37:02 · 83 阅读 · 0 评论 -
Java的多维数组
多维数组 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每个元素都是一个一维数组。 二维数组 int a[][] new int[3][2]; 解析:以上二维数组a可以看成一个三行两列的数组。 public static void main(String[] args) { //[4][2] /* 1,2 array[0] 2,3 array[1] 3,4 arr原创 2021-03-22 09:18:53 · 57 阅读 · 0 评论 -
Java的下标越界及小结
数组的四个基本特点 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。 其元素必须是相同类型,不允许出现混合类型。 数组中的元素可以是任何数据类型,包括基本类型和引用类型。 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。 数组边界 下标的合法区间:[0,length-1],如果越界就会报错; public static void main(Stri原创 2021-03-21 10:32:00 · 1016 阅读 · 3 评论 -
Java的内存分析和三种初始化
内存分析 堆 存放new的对象和数组 可以被所有的线程共享,不会存放别的对象引用。 栈 存放基本变量类型(会包含这个基本类型的具体数值) 引用对象的变量(会存放这个应用在堆里面的具体地址) 方法区 可以被所有的线程共享 包含了所有的class和static变量 三种初始化 静态初始化 int[] a = {1,2,3} Man[] mans {new Man(1,1),new Man(2,2)} 动态初始化 int[] a = new int[2]; a[0] = 1;原创 2021-03-19 15:54:47 · 46 阅读 · 0 评论 -
Java数组的声明和创建
数组的定义 数组是相同类型数据的有序集合。 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标(从0开始)来访问它们。 数组的声明和创建 首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法: dataType[] arrayRefVar; //首选的方法 dataType arrayRefVar[]; //效果相同,但不是首选 Java语言用new操作符来创建数组,语法如下: dataTy原创 2021-03-18 15:21:25 · 150 阅读 · 2 评论 -
Java的递归
递归 递归就是:A方法调用A方法!就是自己调用自己。 利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。 递归结构包括两个部分: 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。 递归体:什么时候需要调用自身方法。 public static void main(Strin原创 2021-03-17 08:55:49 · 62 阅读 · 1 评论 -
JAVA的可变参数
可变参数 JDK1.5开始,Java支持传递同类型的可变参数给一个方法。 在方法声明中,在指定参数类型后加一个省略号(…)。 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。 public static void printMax( double... numbers){ if(numbers.length == 0){ System.out.println("No argument passed");原创 2021-03-16 20:41:19 · 46 阅读 · 0 评论 -
Java的命令行参数
命令行传参 有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。 public class CommandLine{ public static void main(String args[]){ for(int i=0;i<args.length;i++ ){ System.out.println("agrs["+i+"]:"+args[i]); } } } 狂神说Java ...原创 2021-03-15 15:12:25 · 72 阅读 · 0 评论 -
JAVA的方法重载
方法的重载 方法的重载规则: 方法名称必须相同。 参数列表必须不同(个数不同、类型不同、参数排列顺序不同)。 方法的返回类型可以相同也可以不相同。 仅仅返回类型不同不足以成为方法的重载。 实际理论: 方法名称相同时,编译器会根据调用方法的参数个数、参数类型等逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。 狂神说Java ...原创 2021-03-15 10:11:15 · 50 阅读 · 0 评论 -
Java方法的定义和调用
方法的定义 Java的方法类似于其它语言的函数,是一段用来完成特定功能的代码片段,一般情况下,定义一个方法包含以下语法: 方法包含一个方法头和一个方法体。下面是一个方法的所有部分: 修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。 返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字是void(空白)。 方法名.转载 2021-03-14 18:39:46 · 256 阅读 · 0 评论 -
JAVA的方法是什么?
何谓方法? System.out.println(),那么它是什么呢? System是“类”;out是“对象”;println是"方法"。 Java方法是语句的集合,它们在一起执行一个功能。 方法是解决一类问题的步骤的有序组合。 方法包含于类或对象中。 方法在程序中被创建,在其它地方被引用。 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个功能,这样有利于我们后..原创 2021-03-14 10:08:45 · 56 阅读 · 0 评论 -
Java的break和continue
break continue break在任何循环语句的主体部分,均可用break控制循环的流程。 break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用) continue语句用在循环语句中,用于终止某次循环过程,即跳过循环中尚未执行的语句,接着进行下一次是否执行循环的判定。 int i = 0; while (i<100){ i++; if(i%10==0){原创 2021-03-10 16:05:33 · 58 阅读 · 0 评论 -
Java的增强for循环
## 增强for循环 Java5引入的一种主要用于数组或集合的增强型for循环。 Java增强for循环语法格式如下: for(声明语句:表达式) { //代码句子 } 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。 int[] numbers = {10,20,30,40,50}; //定义了一个数组 for(int i.原创 2021-03-09 08:40:18 · 86 阅读 · 0 评论 -
Java的For循环
For循环(重点) 虽然所有循环结构都可以用while或者do…while表示,但Java提供了另一种语句———for循环,使一些循环结构变得更加简单。 for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。 for循环执行的次数是在执行前就确定的。语法格式如下: for(初始化;布尔值表达式;更新){ //代码语句 } 练习1:计算0~100之间的奇数和偶数的和 int oddSum = 0; int evenSum = 0;原创 2021-03-08 16:11:03 · 267 阅读 · 0 评论 -
Java的do…while循环
do…while循环 对于while语言而言,如果不满足条件,则不能进入循环。但有时我们需要即使不满足条件,也至少执行一次。 do…while循环和while循环相似,不同的是,do…while循环至少会执行一次。 do{ //代码语句 }while(布尔表达式); while和do-while的区别: while先判断后执行。do-while是先执行后判断! do…while总是保证循环体会被至少执行一次!这是他们的主要差别。 int a = 0; while(a&原创 2021-03-07 15:25:42 · 313 阅读 · 0 评论 -
Java的while循环
while循环 while是最基本的循环,它的结构为: while(布尔表达式){ //循环内容 } 只要布尔表达式为true,循环就会一直执行下去。 我们大多数情况会让循环停下来的,但我们需要一个让表达式失效的方式来结束循坏。 少部分情况需要循环一直执行,比如服务器的请求响应监听等。 循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死崩溃! 思考:计算1+2+3+…+100=? int i = 0;原创 2021-03-07 10:17:46 · 105 阅读 · 0 评论 -
JAVA的Scanner对象
Scanner对象 之前我们学的基本语法并没有实现程序和人的交互,但是java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。 基本语法: Scanner s = new Scanner(System.in); 通过Scanner类next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext与hasNext()判断是否还有输入的数...原创 2021-03-04 21:55:46 · 71 阅读 · 1 评论 -
JAVA包机制
包机制 为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。(相当与文件夹) 包语法的语法格式为: 一般利用公司域名倒置作为包名 **为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句可完成此功能 狂神说JAVA ...原创 2021-03-03 17:23:36 · 47 阅读 · 1 评论 -
Java基本的运算符
运算符 Java语言支持如下运算符: 优先级() 算术运算符:+,-,*,/,%(取余),++(自增),--(自减) 赋值运算符= 关系运算符:>,<,>=,<=,==,!=instanceof(不等于) 逻辑运算符:&&(与),||(或),!(非) 位运算符:&,|,^,~,>>,<<,>>>(以下了解即可!!!) 条件运算符?,: 扩.原创 2021-02-15 22:46:02 · 66 阅读 · 1 评论 -
JAVA的变量和常量
变量 变量是什么:就是可以变化的量! java是一种强类型语言,每个变量都必须声明其类型。 Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。 type varName [=value] //数据类型 变量名 = 值; 【注意点】 每个变量都有类型,类型可以是基本类型,也可以是引用类型。 变量名必须是合法的标识符。 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。 变量作用域 类变量 ...原创 2021-02-13 09:52:22 · 73 阅读 · 1 评论 -
JAVA类型转换
类型转换 由于Java是强类型语言。所以进行有些运算的时候,需要用到类型转换。 【注意点】小数的优先级大于整数 强制类型转换 格式:(类型)变量名 高--低 自动类型转换: 自动 低--高 int i = 128; doub...原创 2021-02-06 16:44:58 · 89 阅读 · 1 评论 -
数据类型拓展
数据类型拓展 进制:二进制0b 十进制 八进制0 十六进制0x 1.整数拓展 int i = 10; int i2 = 010; //八进制0 int i3 = 0x10; //十六禁制0x 0~9 A~F F=15 2.浮点数拓展(银行业务怎么表示?钱) BigDecimal 数学工具类 float 有限 离散 舍入误差 大约 接近但不等于 double 【注意点】最好完全避免使用浮点数进行比较 float f = 0.1f; doub...原创 2021-02-05 10:34:32 · 64 阅读 · 0 评论 -
Java数据类型总结
数据类型 强类型语言 java属于强类型语言,要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。(安全,但相对更慢) Java的数据类型分为两大类 1. 基本类型(primitive type) 2. 引用类型(reference type) 字节 八大数据类型 Java说狂神 ...原创 2021-02-04 13:07:19 · 66 阅读 · 1 评论 -
Java关键字和标识符总结
Java关键字和标识符 关键字 java所有的组成部分都需要名字。 标识符分为类名、方法名和方法名 标识符注意点 所有的标识符都应该以字母(A-Z或者a-z),美元符($),或者下划线(_)开始 首字符之后可以是字母(A-Z或者a-z),美元符($),下划线(_)或者数字的任何字符组合 不能使用关键字作为变量名或方法名 标识符是大小写敏感的 合法标识符举例:age、$salary、_salary、#abc ..原创 2021-02-04 10:03:51 · 118 阅读 · 1 评论 -
JAVA的三种注释
JAVA注释 注释并不会被执行,是给我们写代码的看的 书写注释是一个非常好的习惯 平时写代码一定要注意规范 Java的注释有三种: 单行注释 //注释 //注释 多行注释 /* 注释 注释 注释 */ 文档注释 /** *注释 *注释 *注释 */ 狂神说java ...原创 2021-02-03 23:06:33 · 79 阅读 · 1 评论 -
Hello,World!向世界问好
HelloWorld 随便创建一个文件夹,存放代码 新建一个java文件 文件后缀名.java Hello.java 【注意点】系统可能没有显示文件后缀名,我们需要手动打开 编写代码 public class Hello{ public static void main(String[] args){ System.out.print("HELLO,World!"); } } 编译java...原创 2021-02-03 13:23:42 · 136 阅读 · 4 评论 -
WIN10保姆式JDK8安装过程
安装JDK8 百度搜索JDK8,找到下载地址 同意协议 下载对应的版本(我的电脑-->右键-->属性)可查看 双击安装 记住安装的路径 配置环境变量 (1)我的电脑-->右键-->属性 (2)环境变量-->JAVA_HOME 新建 JAVA_HOME (3)配置path变量 点击 path 新建两个 1.%JAVA_HOME%\bin 2.%JAVA_HOME%\jre\b...原创 2021-02-02 23:02:38 · 87 阅读 · 0 评论 -
基础的Dos命令整理
基础的Dos命令 打开cmd的方式 开始+win系统+命令指示符 win键+R 输入cmd (推荐使用) 在任意的文件夹旁 按住shift+鼠标右键 点击在此打开powershell窗口 我的电脑(资源管理器) 文件的地址栏加上 cmd空格 管理员身份运行:命令指示符 右键 更多 常用的dos命令 #盘符切换 #查看当前目录下的所有文件 dir #切换目录 cd(change directory) cd .. 返回上一级 #清理屏幕...原创 2021-02-02 14:44:13 · 205 阅读 · 2 评论 -
电脑上快捷键的总结
快捷键ctrl+的应用 ctrl+C=复制 ctrl+V=粘贴 ctrl+A=全选 ctrl+X=剪切 ctrl+Z=撤销 ctrl+S=保存 ctrl+shift=切换输入法 ctrl+shift+Esc=任务管理器 卡机时使用 ctrl+Alt+Eac=切换应用程序 其它 Alt+Del=永久删除 win+R=运行 cmd命令运行窗口 win+E=我的电脑 win+...原创 2021-02-02 12:21:14 · 162 阅读 · 0 评论 -
JAVA学习01
Markdown学习 标题 三级标题 四级标题 字体 hello,world hello,world! hello,world! hello,world! 引用 选择狂神说java,走向人生巅峰! 分割线 图片 超链接 点击跳转到Java学习完整路线 列表 A B C 1 2 3 表格 名字 性别 出生 李四 男 1998....原创 2021-02-02 09:53:08 · 53 阅读 · 1 评论