JAVASE
JAVASE基础
衰小孩、519
这个作者很懒,什么都没留下…
展开
-
集合的简述
定义 可以动态保存任意多个对象,使用比较方便 提供了一系列方便的操作对象的方法:add,remove,set,get 使用集合添加、删除新元素的示意代码更简洁 框架体系原创 2021-09-08 13:51:12 · 76 阅读 · 0 评论 -
常用类之Object类
Object类 Object:所有类的直接或间接父类,位于继承树最顶层,Object类中所定义的方法是所有对象都具备的方法 Object类型可以存储任何对象 作为参数,可接受任何对象 作为返回值,可返回任何对象 类中的方法 getClass方法 获取对象的类型 Class calss1 = s1.getClass(); hashCode方法 返回对象的哈希码值 哈希值根据对象的地址或字符串或数字使用hash算法计算出来的int类型的数值 一般情况下相同对象返回相同hash码 toStri原创 2021-05-29 19:12:23 · 107 阅读 · 0 评论 -
常用类总结
总结: 内部类 在一个类的内部再定义一个完整的类 成员内部类,静态内部类,局部内部类,匿名内部类 Object类 所有类的直接或间接父类,可存储任何对象 包装类 基本数据类型所对应的引用数据类型,可以使Object统一所有数据 String类 字符串是常量,创建之后不可改变,字面值保存在字符串池中,可以共享 BigDecimal类 可精确计算浮点数 Date类 获取特定时间 Calendar类 日历 ...原创 2021-06-02 13:02:17 · 65 阅读 · 0 评论 -
常用类之System类
主要用于获取系统的属性数据和其他操作,构造方法私有 public class SystemClass { public static void main(String[] args) { //1.arraycopy();数组复制 //src:源数组 //srcPos:开始复制位置 //dest:目标数组 //destPos:目标数组的位置 //length:复制的长度 int[] src原创 2021-06-02 12:34:22 · 123 阅读 · 0 评论 -
常用类之SimpleDateFormat类
一个与语言环境有关的方式来格式化和解析日期的具体类 进行格式化(日期–>文本) 解析(文本–>日期)原创 2021-06-01 22:01:35 · 88 阅读 · 0 评论 -
常用类之Calendar类
提供了获取或设置各种日历字段的方法 构造方法protected Calendar();由于修饰符是protected,所以无法直接创建该对象 方法: getInstance();创建对象使用方法,使用默认时区和区域获取日历 set();设置时间 get();获取给定日历字段的值 add();按照日历的规则,给指定字段添加或减少时间量 getTimeInMillies();毫秒为单位返回改日历的时间值 getTime();返回一个Date值表示此日历的时间 setTime();用给原创 2021-06-01 21:52:10 · 128 阅读 · 0 评论 -
常用类之Date类
表示特定瞬间,精确到毫秒 1秒=1000毫秒 1毫秒=1000微秒 1微秒=1000纳秒 public class DateClass { public static void main(String[] args) { Date date1 = new Date(); //今天 System.out.println(date1.toString()); System.out.println(date1.toLocaleString()原创 2021-06-01 20:51:55 · 48 阅读 · 0 评论 -
常用类之BigDecimal类
意义:精确计算浮点数 四种方法: add();加法 subtract();减法 multiply();乘法 divede();除法 做除法时,若除不尽,则取保留位数和取舍方法 divede(BigDecimal bd(被除数),int scal(取得位数),RoundingMode.HALF_UP(四舍五入)) public class Dome07 { public static void main(String[] args) { double d1 = 1.0;原创 2021-05-31 19:27:29 · 133 阅读 · 0 评论 -
常用类之String类
String类 字符串是常量,创建之后不可改变。 字符串字面值存储在字符串池中,可以共享 创建字符串对象的不同方式 当使用String s = “hello”;创建对象时,字符串存储在字符串池中 当使用String s = new String(“hello”);创建对象时,会在堆和池中各产生一个对象 public class Demo03 { public static void main(String[] args) { String name = "hello"; //常原创 2021-05-31 18:54:48 · 105 阅读 · 0 评论 -
常用类之包装类
包装类 基本数据类型所对应的引用数据类型 Object可统一所有数据,包装类默认值为null 类型转换与装箱、拆箱 装箱:基本类型—>引用类型 拆箱:引用类型—>基本类型 将基本类型转换为字符串类型使用toString(); String s1 = 10 +" "; String s2 = Integer.toString(10); 将字符串转换为基本类型使用parsexxx();方法 int n1 = Integer.parseInt(str); public class Demo01原创 2021-05-29 20:01:21 · 81 阅读 · 0 评论 -
常用类之内部类
内部类概念 内部类概念:在一个类内部在定义一个完整的类,内部类可以访问外部类私有成员,而不破坏封装 内部类分类 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类 特点: 成员内部类是外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象 重名属性优先访问内部类 成员内部类不能定义静态成员,但可以定义静态变量 public class Outer { private String name = "fang"; private int age = 20; clas原创 2021-05-28 13:22:26 · 144 阅读 · 0 评论 -
常用类类型
内部类 Object类 Object类常用方法 包装类 String类 BigDecimal类原创 2021-05-28 11:11:29 · 66 阅读 · 0 评论 -
自定义异常
处理运行异常时,采用逻辑合理规避同时辅助try-catch处理 在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常 对于不确定的代码,也可以加上try-catch来处理潜在的异常 尽量去处理异常,切记只是简单的去调用printStackTrace()去打印输出 尽量添加finally语句块去释放占用的资源 package com.exception.demo02; //自定义异常类 public class MyException extends Exceptio.原创 2021-04-29 22:20:16 · 52 阅读 · 0 评论 -
Error和Exception
分类 检查性异常:用户错误或问题引起的异常,例如要打开一个不存在的文件夹 运行时异常 错误 捕获和抛出 关键字:try、catch、finally、throw、throws package com.exception; public class Test { public static void main(String[] args) { int a=1; int b=0; try { new Test().test(1原创 2021-04-29 21:32:25 · 57 阅读 · 0 评论 -
接口
定义 普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有 接口:只有规范,自身无法写方法,约束和实现分离 接口就是规范,定义的是一组规则 作用 约束 定义一些方法,让不同的人去实现 接口里的方法都为abstract public,属性都为public static final 接口不能被实例化,没有构造方法 implements可以实现多个接口 实现必须重写接口中的方法 实现 package com.opp.demo09; public interface TimeService {原创 2021-04-29 19:36:40 · 77 阅读 · 0 评论 -
抽象类与接口
package com.opp.demo08; //abstact:抽象类 类只能单继承,但接口可以多继承 //抽象类的所有方法,继承了它的子类都必须去实现,除非子类也是抽象类 public abstract class Action { //约束 //abstract:抽象方法,只有方法名字,没有方法实现 public abstract void doSomething(); //1.抽象类不能new,只能靠子类去实现它;约束! //2.抽象类可以写普通原创 2021-04-29 18:21:32 · 60 阅读 · 0 评论 -
static关键字、final关键字以及匿名代码块
静态方法和属性可以直接使用类进行调用 被final修饰的类无法被继承 静态代码块最先执行,匿名代码块次之,构造方法最后执行 可以使用static调用包中方法以直接使用方法 package com.opp.demo07; //可以使用static关键字导入包中的方法 import java.lang.Math; import static java.lang.Math.random; public class Student { //只执行一次 static{ Syste.原创 2021-04-29 17:59:03 · 52 阅读 · 0 评论 -
多态
定义 同一方法可以根据发送对象的不同而采用多种不同的行为方式 一个对象的实际类型是确定的,而可以指向的引用类型可以不确定,父类的引用可以指向子类 注意点 多态是方法的多态,属性没有多态 父类和子类,有联系才可以进行类型转换 类型转换异常ClsssCastException 存在条件:继承方法,方法要重写,父类引用指向子类对象 不能被重写方法:static方法(属于类,不属于实例),final常量,private方法 package com.opp; import com.opp.demo04.St原创 2021-04-29 16:01:56 · 69 阅读 · 0 评论 -
继承
extends:扩展,子类是父类的扩展,java中只有单继承,没有多继承 super 调用父类的构造方法,必须在构造方法的第一个 super必须只能出现在子类的方法或构造方法中 super和this不能同时调用构造方法 相对于this的区别 代表对象不同 this:本身调用这个对象 super:代表父类对象的引用 前提 this:没有继承也可使用 super:只能在继承条件才可使用 构造方法 this():本类构造 super():父类构造 方法重写override 需要有继承关系,子类重写父类方原创 2021-04-21 19:53:21 · 77 阅读 · 0 评论 -
封装
封装:通常应该禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问 属性私有,get/set:类中属性设为私有,通过公共方法get以及set来操作 package com.opp.demo02; public class Student { //private 属性私有 private String name; private int age; //提供一些可以操作私有属性的公共方法 //get 获得数据 public String getNa.原创 2021-04-21 17:46:50 · 58 阅读 · 0 评论 -
构造器
构造器:必须和类名相同,必须无返回值 作用:初始化值,使用new关键字本质是在调用构造器 注意:定义有参构造之后,如果想使用无参构造,必须显示的定义无参构造 快捷生成构造器:alt+insert package com.opp.demo01; public class Person { //一个类即使什么都不写,也会存在一个方法 String name; int age; //实例化初始值 //使用new关键字,本质是在调用构造器 //构造器一般用来初.原创 2021-04-21 15:25:41 · 54 阅读 · 0 评论 -
什么是面向对象,方法调用回顾
属性+方法=类 面向对象:分类思维,把具有相同特性的事物归于一个类,以类的方式组织代码,以对象的形式封装数据 static静态方法:所有类都可以调用 非静态方法:必须实例化对象才可以调用 ...原创 2021-04-13 19:45:48 · 81 阅读 · 0 评论 -
稀疏数组
当数组中存有大量无意义重复的数据时,可以对数组进行压缩 public class ArrayDemo08 { public static void main(String[] args) { //稀疏数组 //1.创建一个二维数组11*11, 0:没有棋子 1:黑棋 2:白棋 int[][] array1 = new int[11][11]; array1[1][2] = 1; array1[2][3] =原创 2021-04-13 17:21:11 · 91 阅读 · 0 评论 -
冒泡排序法和选择排序法
使用双层嵌套循环,和一个中间变量int tem实现 import java.util.Arrays; public class ArrayDemo07 { public static void main(String[] args) { int[] array = {11,27,26,95,42,34,15,10,9,}; int[] sorts = sort(array); System.out.println(Arrays.toString(s原创 2021-04-02 17:15:39 · 75 阅读 · 0 评论 -
Array类
Array.toString:打印数组元素,但不输出,输出需用System.out.printIn(Array.toString()) Array.sort:对数组进行排序,升序排序 Array.fill:给数组指定段赋值 import java.util.Arrays; public class ArrayDemo06 { public static void main(String[] args) { int[] a = {1,2,3,999,596,66}; .原创 2021-04-02 17:12:36 · 125 阅读 · 0 评论 -
数组的使用
public class ArrayDemo04 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; // //增强for循环,没有下标,适用于打印输出 // for (int array : arrays) { // System.out.println(array); // // } int[] reve.原创 2021-04-02 12:54:09 · 50 阅读 · 0 评论 -
数组特点
长度确定,一旦创建,大小不可改变 数组中元素元素必须是相同类型 元素可以是任意数据类型,包括基本类型和引用类型 数组本身即对象,每个元素相当于成员变量,Java中对象位于堆中,因此数组对象本身是在堆中的 数组边界: 下表合法区间:[0,length-1] ArrayIndexOutOfBoundsException:数组下标越界异常 ...原创 2021-04-01 19:50:47 · 76 阅读 · 0 评论 -
java内存分析
堆: 存放new的对象和和数组 可以被所有线程共享,不会存放别的对象引用 栈: 存放基本变量类型(包含具体数值) 引用对象的变量(会存放这个引用在堆里面的具体地址) 方法区: 可以被所有线程共享 包含了所有class和static变量 ...原创 2021-04-01 19:26:13 · 67 阅读 · 0 评论 -
数组
数组 定义: 相同类型数据的有序集合 每一个数据称作一个数组元素,每一个元素可以通过一个下标来访问 创建方法: 静态创建并赋值:int[ ] numb = {1,2,3,4,5,6} 动态创建并赋值:int[ ] numb = new int[10] public class ArrayDemo02 { public static void main(String[] args) { //静态初始化 int[] a = {1,2,3,4,5,6,7,8,9}原创 2021-04-01 19:18:24 · 109 阅读 · 0 评论 -
递归
递归 定义: 自己调用自己的方法,将大型复杂的问题层层转化为一个与原问题相似的规模较小的问题,用有限的语句来定义对象的无限集合 结构: 递归头:包含结束调用自身方法的语句,即边界条件,如果没有这个条件,方法将陷入死循环 递归体:调用自身方法的部分 //阶乘 public static void main(String[] args) { Demo05 demo05 = new Demo05(); int x = demo05.f(100原创 2021-04-01 19:09:40 · 110 阅读 · 0 评论 -
可变参数
可变参数 表示方法:在方法声明中,在指定参数类型后加一个省略号,如int…i(相当于数组) 一个方法只能指定一个可变参数,它必须是方法最后一个参数,任何普通的参数必须在它之前声明 public static void main(String[] args) { printMax(1,2,3); printMax(new int[]{3,6,9}); } public static void printMax(int...i){原创 2021-04-01 18:58:10 · 68 阅读 · 0 评论 -
命令行传参
原创 2021-04-01 15:05:24 · 62 阅读 · 0 评论 -
方法以及方法的定义和调用
方法 方法: 语句的集合,执行一个功能 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 设计方法原则: 原子性,即一个方法只完成一个功能 方法结构: 修饰符 返回值类型 方法名(参数类型 参数值){ …方法体… return 返回值; } 修饰符:可选,告诉编译器如何调用该方法,定义了该方法的访问类型 返回值类型:若无返回值则定义为void 方法名:与参数表共同构成方法签名 方法体:定义方法功能 方法调用 对象名.方法名(原创 2021-03-31 21:30:17 · 133 阅读 · 0 评论 -
break、continue、return
break:在任何循环语句的主体部分均可用break控制循环的流程,break用于强行退出循环,不执行循环中剩余的语句(在switch中也有使用) continue:中止某次循环,跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定 ...原创 2021-03-31 19:27:12 · 60 阅读 · 0 评论 -
循环
循环语句 while do…while for while与do…while 区别: while判断后执行,do…while先执行后判断 do…while至少执行一次语句 for循环 最有效,最灵活的循环结构 输出九九乘法表 public class forDemo03 { public static void main(String[] args) { for (int i = 1; i <10; i++) { for (int j =原创 2021-03-31 18:58:15 · 76 阅读 · 0 评论 -
选择结构
结构 顺序结构 选择结构 .equals()语句:判断字符串是否相等 选择结构 if选择 switch选择:在case中匹配一个值,做与之对应的操作,若无匹配值,则执行default操作;break语句作用防止case穿透,若无break,则匹配case值之后的所有操作都会执行 反编译 查看class文件 文件框架中寻找文件输出目录,打开文件所在目录,拖入IDEA即可查看 ...原创 2021-03-30 20:43:37 · 67 阅读 · 0 评论 -
用户交互Scanner
Scanner对象 java.util.Scanner一个工具类,通过Scanner来获取用户输入 基本语法 Scanner S = new scanner 使用方法 通过next()与nextLine()方法获取输入,在获取前使用hasNext()与hasNextLine()方法判断是否还有输入的数据 next: 一定要读取到有效字符后才可以结束输入 对输入有效字符前的空白,next方法会自动去掉 只有输入有效字符后才将其后面的空白作为分隔符或结束符 next()不能得到带有空格的字符串 nextLi原创 2021-03-30 19:02:48 · 56 阅读 · 0 评论 -
包机制
语法格式:package pkg1[.pkg2[.pkg3…]]; 一般利用公司域名倒置作为包名 使用import语句导入包中成员 import package1【.package2…】(class|*) *代指所有类原创 2021-03-29 19:48:42 · 53 阅读 · 0 评论 -
运算符
运算符 算术运算符:+、-、*、/、%、++、- - 赋值运算符:=、+=、-=、*=、/= 关系运算符:>、<、=、>=、<=、==、!= 逻辑运算符:&&(与)、||(或)、!(非) 位运算符:&(与)、|(或)、^(抑或)、~(取反)、<<(左移)、>>(右移) 条件运算符: ? : 字符串连接符:+ 算术运算符 当整型数据进行运算时,如果其中含有long型,则结果为long型;如果不包含long型,则自动转换为int型,就原创 2021-03-29 19:24:15 · 143 阅读 · 0 评论 -
变量、常量、作用域
变量 包括变量名、变量类型、作用域,每个变量都必须声明类型 常量 使用final关键字 final 数据类型 常量名=值 作用域 类变量:从属于类,static 实例变量:从属于对象,位于类里方法外,有默认值,如布尔型默认值为false 局部变量:位于方法中,必须声明和初始化值 命名 类名:首字母大写,驼峰原则 方法名、类成员变量、局部变量:首字母小写,驼峰原则 常量:一般使用大写字母和下划线 ...原创 2021-03-28 20:57:30 · 78 阅读 · 0 评论