![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
基础
文章平均质量分 55
java入门基础
ztb0116
热爱生活,码上热爱
展开
-
Arrays, ArrayUtils 工具类实现
ArrayUtils.indexOf(array, value)) 获取 value在数组中对应的索引位置Arrays.stream() 数组转流后的方法:map() 根据某种规则映射成一个新的数组(结合函数式接口lambda表达式)Arrays.stream(array).map(a -> a * 2 + 1).toArray();distinct() 数组去重filter() 进行过滤()根据某种规则返回一个新的数组forEach 进行输出java Arrays.str原创 2021-07-31 10:30:55 · 424 阅读 · 0 评论 -
Java 接口和函数式接口(lambda表达式)
接口接口其实就是一个特殊的抽象类如果一个抽象类的方法全是抽象的,并且属性是被public static final修饰的,直接使用接口修饰该类接口的定义 interface制定标准可扩展性解耦合接口与接口之间采用 多继承接口与类之间采用 多实现implements特点:接口是特殊的抽象类接口中定义的成员方法都是抽象方法接口中的属性都是被public static final 修饰的(接口中省略修饰符)接口中没有构造方法接口中允许定义 default 成员方法接口中允许原创 2021-07-31 09:56:52 · 274 阅读 · 0 评论 -
Java密封类 sealed (JDK15新特性)、抽象类 abstract、众多修饰符之间的关系
密封类 sealed (JDK15新特性)例:定义一个 密封类 Animal, 只允许 Dog, Cat 继承继承 sealed 类的 子类 必须是 final 或者 sealedsealed 必须定义需要继承的 子类public sealed class Animal permits Dog , Cat{}抽象类 abstract抽象方法: 没有方法的实现,作用是 指定 标准的 ,具体的实现,由子类完成有抽象方法的类必须定义为抽象类抽象类 中,不一定有 抽象方法(可以原创 2021-07-29 21:52:43 · 1068 阅读 · 0 评论 -
Java重写、多态、JDK16优化instanceof
重写重写父类方法 idea快捷键: Ctrl + O方法的重写:当父类中,提供的方法,不满足 子类的需求的时候,子类可以重写父类的方法,这种现象 被称为 方法的重写/覆盖方法的重写 主要提现在 程序的 可扩展性方法重写的限制: 子类能够继承的方法,才可以进行重写方法重写的要求:权限修饰符 和 父类 保持一致,或者 比父类的权限 更高(public最高)方法的返回值类型,方法名,参数列表 必须和 父类 完全一致异常的处理 和 父类相同 或者 比 父类抛出的异常 更窄原创 2021-07-29 21:49:15 · 329 阅读 · 0 评论 -
Java继承、super关键字、继承的类加载与对象创建过程
一、继承extends 代表 继承Java 中 Object 是所有类的 父类Java 采用 单继承,使用 树状结构进行类的管理(C++、Python 多继承 形成 网状结构)子类 可以 继承父类中被 public 和 protected 修饰的属性和方法定义一个Animal类 当作父类package com.qikux.day0727;/** * 动物类 */public class Animal { /** * 动物的年龄 */ publi原创 2021-07-29 21:46:30 · 114 阅读 · 0 评论 -
JDK14新特性 record类与了解继承
一、JDK14新特性 record类public record Mouse(int x , int y) {}record 定义的类、默认继承 Recordrecord 定义的 属性默认是 final 修饰的record 可以 自定义构造方法record 中可以添加 静态/成员方法、静态属性** * 纪录类中的属性是 final 修饰的常量 * record 定义的类、默认继承 Record */public record Record(int x, int y) { /原创 2021-07-27 20:56:34 · 1445 阅读 · 0 评论 -
Java对象的创建过程与内部类(成员、静态、局部内部类和匿名类)
一、对象的创建过程分配空间初始化 属性,若有赋值操作,则进行赋值加载代码块对未赋值的属性,进行赋值(默认值)将类中的所有 成员方法,加入到 内存中调用构造方法,完成对象的创建public class ObjectTest { { a = 30; System.out.println("这是代码块"); } private int a = 10; ObjectTest(){ a = 20; Sys原创 2021-07-27 20:54:24 · 397 阅读 · 0 评论 -
Java不定项参数与final修饰符
不定项参数不定项 参数 必须出现在 所有的参数 的后面不定项 参数,用来接受 剩余的(rest) 所有的参数(0~n个值)不定项 参数,是数组类型,未传值时为空数组不定项 参数,如果和 定义的某种个方法,在某种场合下,冲突,那么优先使用最确定的方法 ,而非不定项注意:没有最确定的方法,两个都是不定项,报错!不知道调用哪个public class MethodRestArgsTest { public static void main(String[] args) {原创 2021-07-27 18:59:15 · 61 阅读 · 0 评论 -
Java快速生成Setter、Getter、toString、equals、 Constructor(构造方法)
快捷键 Alt + insert生成 Setter、Getter、toString、equals、 Constructor(构造方法)lombok[下载地址]https://mvnrepository.com/artifact/org.projectlombok/lombok/1.18.20常用快捷键如下:@Setter@Getter // 写在类上,所有属性均添加了set 和 get 方法@ToString 构建 toString() 方法@EqualsAnd原创 2021-07-27 17:58:03 · 625 阅读 · 0 评论 -
static静态修饰符和类加载
static 静态static 静态修饰符 修饰的内容 和 对象没有关系,而是和 对应的类有关系1. static 可以修饰 内部类2. static 可以修饰 属性 ,称为 类属性3. static 可以修饰 代码块4. static 可以修饰 方法 , 称之为 类方法/** * 文章类 */public class Arcticle { /** * 文章的阅读量 */ public int num = 1; public static i原创 2021-07-26 18:01:04 · 144 阅读 · 0 评论 -
Java的超类Object和重写toString()、equals()
ObjectObject 类 是 Java中,所有类的 父类,Object 是 Java中的超类Object 中的 所有 public,protected 修饰的方法 都会被 子类 继承toString()println() 会将传入的任何内容,在控制台 以字符串的形式进行打印将 对象 以 字符串的形式表示 主要是 通过 Object 类中的 toString() 方法实现的toString(): 就是为了将对象以字符串的形式表示,Object 中的 toString 默认是返回的对象地原创 2021-07-26 17:58:13 · 112 阅读 · 0 评论 -
Java权限修饰符与set、get 方法
权限修饰符public 公开的protected 受保护的friendly(default) 友好的、缺省的private 私有的权限修饰符类任意位置子类同胞本类publicYYYYYprotected内部类NYYYfriendlyYNNYYprivate内部类NNNY全都可以修饰属性、方法(构造方法)但类只能被 public 修饰或者省略(friendly)property 属性指的是 g原创 2021-07-26 17:54:35 · 266 阅读 · 0 评论 -
Java代码块{}与构造方法和属性的声明赋值
代码块{ System.out.println("这是代码块");}CodeBlock(){ System.out.println("这是一个无参构造");}CodeBlock(int x){ this(); System.out.println("这是一个有参构造");}作用:一般用来做 数据的初始化工作,它会在 调用构造方法前 执行分析class文件:代码块中内容会拷贝至构造方法中内容的前面使用this关键字,构造方法调构造方法后,代码块中内容不会再拷贝至有调构造方原创 2021-07-24 17:50:40 · 368 阅读 · 0 评论 -
Java构造方法、方法的重载、this关键字
构造方法构造方法特点:方法名和类名 完全一致方法名 不能设置返回值类型(void 都不能写)构造方法 通过 new 关键字来调用如果类中,没有提供构造方法,那么 JVM(java虚拟机) 会自动提供一个无参(没有参数)构造方法如果类中定义的有构造方法,那么JVM 不再提供无参构造方法构造方法作用:创建对象有参构造方法 可以 对属性赋值(创建对象与赋值同时进行)方法的重载在一个类中,具有多个相同的方法名,这种方法被称为 方法的重载方法的重载,必须同时满足以下2个要求原创 2021-07-24 16:45:04 · 77 阅读 · 0 评论 -
Java面向对象初识
Java面向对象面向过程VS面向对象封装继承接口多态面向过程VS面向对象面向对象编程,是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方法面向过程编程,是把模型分解成一步一步的过程趣味分析具体分析封装package包命名规范包名全部由小写字母(多个单词也全部小写)如果包名包含多个层次,每个层次用“.”分割包名一般由倒置的域名开头,比如 com.baidu,不要有 www自定义包不能 java 开头定义位置package 语句应该放在源文件的原创 2021-07-24 16:35:27 · 115 阅读 · 0 评论 -
Java二维数组,行列交换、杨辉三角
二维数组声明与创建// 声明一个二维数组int[][] array ;// 创建一个二维数组 长度为5array = new int[5][];// 数组套数组,未定义二层 。默认为nullSystem.out.println(ArrayUtils.toString(array));// {<null>,<null>,<null>,<null>,<null>}array = new int[5][4];System.ou原创 2021-07-24 10:39:49 · 424 阅读 · 0 评论 -
Java第三方库commons-lang3下载,ArrayUtils工具类常用方法
第三方库 commons-lang3 下载下载地址项目中新建文件夹lib,将第三方库复制到lib文件夹中选中lib,右击 Add as LibraryArrayUtils工具类 常用方法ArrayUtils.add(array,ele) 向数组尾部添加一个元素ArrayUtils.addAll(array,ele1,…,elen) 向数组尾部,同时添加多个数据ArrayUtils.insert(index,array,elel,…,elen) 向数组指定位置,添加多个元素Arra原创 2021-07-24 10:35:40 · 761 阅读 · 0 评论 -
Java的Arrays工具类
Arrays工具类java.lang 包 是 sun 公司默认导入的包,该包下的类,在使用的时候,不需要 importArrays.sort(array) 升序排序,数据量小速度快Arrays.parallelSort(sort) 升序排序,数据量大速度快equals(array,array) 判断两个数组内容是否相同toString(array) 以数值的形式显示数组stream(array) 以stream流的形式表示数组案例练习- 使用 jdk自带的排序,对数据,进行原创 2021-07-24 10:33:10 · 70 阅读 · 0 评论 -
Java数组 十大经典排序算法(冒泡、选择、插入)
十大经典排序算法一、冒泡排序循环次数较多(慢)(n(n-1))/2// 原数组int[] array = {12,5,90,23,233,7,26};// 外层for循环控制 循环几大趟(长度减一趟,从0开始循环即 < 长度 - 1)for (int i = 0; i < array.length - 1; i++) { // 内层for循环控制,每趟需要比较几次 // (每次都开头很后面的比较,比较到倒数第二项即可,已经排到后面的无需再次比较。所以长度 - i - 1)原创 2021-07-24 09:09:50 · 89 阅读 · 0 评论 -
Java方法的形参实参与值传递引用传递
方法的形参、实参public static void main(String[] args) {int sum1 = sum(20, 30);// 调用方法时,括号内为实参System.out.println(sum1);int a = 10;int b = 20;int sum2 = sum(a, b);// a b 也是是实参System.out.println(sum2);double avg = avg(a,b);System.out.println(avg);}priva原创 2021-07-24 08:52:42 · 246 阅读 · 0 评论 -
Java中方法的定义及使用
方法方法是用来 完成 某个功能的java 中的方法必须定义在 类中。定义方法的语法:返回值类型 方法名([参数列表]){…方法的具体实现}参数列表 是用来 定义方法需要的参数,多个参数 用 逗号分隔每一个参数的语法为 类型 参数名如果方法没有返回值,则 在 定义返回值类型的时候,使用 void(无返回值)表示如果一个方法没有返回值,方法不需要 return ,也可 return; 分号直接结束定义一个 求和的方法,负责 求 两个整数的和static int sum(int原创 2021-07-23 16:27:28 · 511 阅读 · 0 评论 -
数组插入、拷贝、升序排序
数组在指定位置插入数据,形成新的数组向数组的指定位置,添加元素数组的特点:数组一旦创建、长度不可变!int[] array = {12,32,43,5,6,2};// 将 15 插入 array 数组的第三个位置//获取原数组的长度int len = array.length;// 构建一个新的数组,用来存储添加元素后的数组int[] newarray = new int[len + 1];int pos = 2;for (int i = 0; i < len; i++原创 2021-07-20 17:02:55 · 106 阅读 · 0 评论 -
数组特点、定义方式、length属性及遍历
一、数组的特点及定义方式1.数组的含义、特点数组 是一个 容器,拥有不同的类型数组的特点:数组一旦定义,里面装的数据类型是一致的数组一旦定义,长度不可改变数组 存储的数组,在内存中 是 连续的根据索引index 查询数据速度最快,根据数组查找慢2. 定义数组的方式( [] 是数组的标识)方式一// 声明一个数组int[] array;//int arrays[];不推荐// 创建一个数组 容器,并将这个容器 赋值给 array 变量// 在构建的时候,需要指定数组的大小原创 2021-07-20 15:10:46 · 189 阅读 · 0 评论 -
字符串的常用方法
字符串的常用方法第一部分:isEmpty() 字符串是否长度为0isBlank() 字符串是否为空(包含空包字符)charAt(index) 获取指定索引位置的字符codePointAt(index) 获取索引位置的字符码【JDK15】getBytes(charset) 将字符串按指定编码转为流new String()将流转为字符串‘()内是流’第二部分:equals(obj)/equalsIgnoreCase() 判断两个字符串是否相等/忽略大小写,判断两个字符串是否相等原创 2021-07-19 22:00:15 · 170 阅读 · 0 评论 -
java字符串定义和使用方法(拼接、格式化)
字符串一、字符串的定义方式:使用双引号,引起来的内容(字面量表示形式)使用 三个双引号,引起来的内容(JDK13新特新,定义多行字符串)new String() 来构建字符串案例一String s1 = "hello world";String s2 = """ hello world """;// JDK13新特新,定义多行字符串System.out.println(s1.length());// 11System.out.println(s2.length());// 12原创 2021-07-19 16:16:54 · 738 阅读 · 0 评论 -
Java 判断[if,switch]、循环[while,do...while]和结束循环关键字
流程控制让程序在执行的过程中,更有条理、更有逻辑性流程控制的使用会让代码变得更加复杂流程控制的分类判断循环判断if 语句switch 语句if语句if 假如、如果if (boolean表达式) { // 条件成立,执行的代码}if 语句不需要以 分号 结尾boolean 表达式常见有true/false关系运算表达式逻辑运算表达式if-else 如果-否则if (boolean表达式){ // 条件成立执行的代码}else{ //原创 2021-07-18 23:30:54 · 230 阅读 · 0 评论 -
位 与/或/非 运算、异步、左移、右移 和 无符号右移
位与运算& 相同位都是1,结果为1,否则为0byte a = 3;byte b = 4;a =(byte)(a & b);//& 符号与普通算数运算符规则一样,会自动转换为int类型a &= b;//与+=相同不会发生类型转换位或运算| 相同位只要有一个为1,结果为1,否则0异步 实现加密不同为 1,相同为 0速度最快的,交换两个变量的值int a = 3;int b = 4;a = a ^ b;b = a ^ b;a = a原创 2021-07-17 17:27:39 · 122 阅读 · 0 评论 -
运算符(算数、赋值、自增 自减、关系、逻辑、三元)
运算符算术运算符 + , - , *(乘法) , /(除法) , %(求余)只能运用与和数字相关的操作赋值运算符 +=, -= , *= , /=, %=一元运算符 ++, –关系运算符 > , >= , <, <= , == , !=逻辑运算符 &&(与), ||(或), !(非), &(与) , |(或)位运算符 & (位与运算符), |(位或运算符) , ^(异步运算符), ~(取反)位移运算符原创 2021-07-17 17:15:45 · 228 阅读 · 0 评论 -
变量、小数表示方法、各类型赋值(类型转换) 和 ASCII 字符集编码
变量局部变量:无默认值,从声明开始,到所在代码块结束,使用时必须先赋值成员变量:有默认值,在整个类中都可以使用,使用时可以不赋值小数表示方式小数由float(单精度)和 double (双精度) float a = 9.0f;在定义float小数的时候,必须在后面添加一个 f/Fdouble b = 3.2d;小数在Java中,默认是double,后面可加可不加 d/D赋值在Java中,整数的字面量的类型默认是 int ,小数的字面量类型是double在整数的赋值赋值运算中,原创 2021-07-17 16:58:53 · 927 阅读 · 0 评论 -
数据类型、进制转换、整数不同进制表示
数据类型基本数据类型引用(复合)数据类型基本数据类型Java内置了8种基本数据类型,分别代表数字、字符和布尔整数byteshortintlongbyte存储的数据相对比较小和少,byte存储的数字占用1个字节;1b(字节) = 8bit(位);二进制是由 0 和 1 组成的数字;二进制的单位是 ‘位’,所以8位的最大二进制表示0111 1111,最小表示 1000 0000;计算机在存储数据的时候,最高位 代表符号位,0代表正数,1代表负数;byte的最大值等于2原创 2021-07-17 16:39:39 · 619 阅读 · 0 评论 -
Java 标识符、主类、包名
标识符类名方法名属性名标识符的命名规范以 字母、数字、下划线 组成,但不能以 数字 开头且标识符不能使用java中的 关键字/保留字 命名判断题:答案见末尾java_02 , 测试 , __-__323,class _3, _____ , 3ab , class_3类名遵循‘大驼峰’标识,方法名、变量遵循‘小驼峰’标识。PS:大驼峰 首字母大写 ;小驼峰 首字母小写。第二个单词首字母均大写。主类public 修饰的类称为主类,一个源文件最多只有一个主类Java源文件(.原创 2021-07-17 15:57:19 · 445 阅读 · 0 评论 -
JDK下载、环境配置及卸载
一、JDK的下载jdk16下载点我解压成功二、环境变量配置此电脑 -》 属性 -》 高级系统设置 -》 高级 -》环境变量新建, 变量名 JAVA_HOME 变量值 D:\java\jdk-16 ,确定! (变量值根据jdk路径决定)JAVA_HOME:JDK的安装路径,主要是为第三方服务提供的,例如maven(项目构建工具),tomcat(web服务器)添加 Path 的值 JAVA_HOME\bin为了更快捷的在命令提示符下使用对应软件的命令id原创 2021-07-17 14:05:11 · 185 阅读 · 1 评论 -
Java入门之hello world,了解注释
一、常见的编程语言种类:编译型语言解释型语言Java是一门 编译型 语言,java代码必须经过先编译(将代码转成机器码),再运行二、了解JavaJava的最小单位是 类,不可再分用关键字 class 修饰的 名字,称为 类类中的内容 用{…} 进行包裹java的类,如果想要被执行,需要提供一个主入口,主入口写法格式固定public static void main(String[] args){}在 主入口 方法中,输出一个 hello world ,输出的内容必须双引原创 2021-07-17 15:30:32 · 257 阅读 · 0 评论