![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE
java基础
zpf1813763637
这个作者很懒,什么都没留下…
展开
-
ArrayList的add(int index,E element)和set(int index, E element)插入元素问题
1,注意:上面两个方法都不能在集合下标没有赋值的情况下操作该下标,否则会报错2,add(index,value) 插入,长度+1:会在对应下标下插入数据。之前的index索引及之前的数据都会后移。集合长度+1: list.size() + 1。3,set(index,value) 覆盖,长度不变:会在对应下标下覆盖数据。之前的index索引位置的值被新值覆盖,后面的数据不变。上面两个方法都不能在集合下标没有赋值的情况下操作该下标,否则会报错。原创 2023-01-30 16:24:19 · 574 阅读 · 0 评论 -
String,StringBuffer,StringBuilder各自的特性和区别
一,String 的特性1,String是final类型,每次声明的都是不可变的对象,2,所以每次操作都会产生新的String对象,然后将指针指向新的String对象。注意:如下两者的内存分配方式是不一样的:String s1 = "java"; String s2 = new String("java");其中s1指向常量池,s2指向堆内存二,StringBuffer,StringBuilder都是在原有对象上进行操作所以,如果需要经常改变字符串内容,则建议采用这两者,因为不用一直开辟内原创 2020-11-05 15:18:39 · 148 阅读 · 0 评论 -
Java中的内部类(非静态成员的内部类,局部内部类,匿名内部类)
一,概述1、什么是内部类?将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。2、为什么要声明内部类呢?当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,不在其他地方单独使用,那么整个内部的完整结构最好使用内部类。而且内部类因为在外部类的里面,因此可以直接访问外部类的私有成员。3、内部类都有哪些形式?根据内部类声明的位置(如同变量的分类),我们可以分为:(1)成员内部类: 静态成员内部类原创 2020-10-03 19:01:20 · 418 阅读 · 0 评论 -
Java中接口的特性(接口的多实现,默认方法冲突问题,接口的多继承,接口与实现类对象的多态引用)
一,定义格式接口的定义,它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型。引用数据类型:数组,类,接口。1、接口的声明格式【修饰符】 interface 接口名{ //接口的成员列表: // 静态常量 // 抽象方法 // 默认方法 // 静态方法 // 私有方法}示例代码:interface Usb3{ //静态常量 long原创 2020-10-03 18:46:21 · 737 阅读 · 0 评论 -
包装类的定义,API的使用和缓存问题
包装类Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而当要使用只针对对象设计的API或新特性(例如泛型),那么基本数据类型的数据就需要用包装类来包装。序号 基本数据类型 包装类(java.lang包) 1 byte Byte 2 short Short 3 int Integer 4 long Long 5 float Float 6 double Double原创 2020-10-03 18:28:01 · 131 阅读 · 0 评论 -
枚举的定义和API的使用
概述某些类型的对象是有限的几个,这样的例子举不胜举: 星期:Monday(星期一)......Sunday(星期天) 性别:Man(男)、Woman(女) 月份:January(1月)......December(12月) 季节:Spring(春节)......Winter(冬天) 支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银行卡)、CreditCard(信用卡) 员工工作状态:Busy(忙)原创 2020-10-03 18:19:41 · 940 阅读 · 0 评论 -
Object根父类(何为跟父类,跟父类所提供的各种API的作用)
### 方法重载##### **1,方法重载**:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。2,参数列表:数据类型个数不同,数据类型不同,数据类型顺序不同。3,重载方法调用:JVM通过方法的参数列表,调用不同的方法。...原创 2020-10-03 18:15:42 · 204 阅读 · 0 评论 -
抽象类,多态的应用,引用时关于成员变量与成员方法引用的原则(超详细)
抽象类抽象方法 : 没有方法体的方法。抽象类:被abstract所修饰的类。//抽象类的语法格式:【权限修饰符】 abstract class 类名{ }【权限修饰符】 abstract class 类名 extends 父类{ }//抽象方法的语法格式【其他修饰符】 abstract 返回值类型 方法名(【形参列表】);注意:抽象方法没有方法体...原创 2020-09-18 10:40:21 · 1425 阅读 · 0 评论 -
Java中继承的四个特性详解(继承时对象的初始化机制)&继承所带来的好处好处
继承(extends)的由来多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类中无需再定义这些属性和行为,只需要和抽取出来的类构成某种关系。 其中,多个类可以称为子类,也叫派生类;多个类抽取出来的这个类称为父类、超类(superclass)或者基类。 例如,猫属于动物,狗也属于动物。可见,父类更通用,子类更具体。 继承的好处 提高代码的复用性。 提高代码的扩展性。 类与类之间产生了关系,是学习多态的前提。 继承的特点一:成员变量..原创 2020-09-18 10:40:08 · 1349 阅读 · 0 评论 -
Java中的final关键字
1、修饰类表示这个类不能被继承,没有子类final class Eunuch{//太监类 }class Son extends Eunuch{//错误 }2、修饰方法表示这个方法不能被子类重写,但是子类仍能访问class Father{ public final void method(){ System.out.println("father"); }}class Son extends Father{ public void method(){//错误原创 2020-09-17 14:30:33 · 180 阅读 · 0 评论 -
Java中this和super关键字的使用方法(形似/不同,有史以来最详细)
this和super关键字this关键字1、this的含义this代表当前对象2、this使用位置 this在实例初始化相关的代码块和构造器中:表示正在创建的那个实例对象,即正在new谁,this就代表谁 this在非静态实例方法中:表示调用该方法的对象,即谁在调用,this就代表谁。 this不能出现在静态代码块和静态方法中 3、this使用格式(1)this.成员变量名 当方法的局部变量与当前对象的成员变量重名时,就可以在成员变量前面加thi.原创 2020-09-17 11:46:25 · 406 阅读 · 0 评论 -
Java中类,对象,成员变量的初始化机制超详细介绍
一,成员变量(实例变量和类变量)初始化方式(5种)1、成员变量有默认值---具体略2、显式赋值public class Student{ public static final String COUNTRY = "中华人民共和国"; private static String school = "尚硅谷"; private String name; private char gender = '男';}//显式赋值,一般都是赋常量值3、代码块如果成员变量想要初始化的值原创 2020-09-17 11:34:44 · 3201 阅读 · 0 评论 -
Java中封装,权限修饰符,构造器
如何实现封装呢?访问控制修饰符来控制相应的可见边界,边界有如下:(1)类(2)包(3)子类(4)模块:Java9之后引入权限修饰符:public,protected,缺省,private修饰符 本类 本包 其他包子类 其他包非子类 其他模块 private √ × × × × 缺省 √ √ × × × protected √ √ √ × × public.原创 2020-09-17 11:14:09 · 515 阅读 · 0 评论 -
Java中的变量/(成员变量,局部变量)的区别
定义类的成员,包括成员变量和成员方法。一,成员变量的分类实例变量:没有static修饰,也叫对象属性,属于某个对象的,通过对象来使用类变量:有static修饰,也叫类变量,属于整个类的,不是属于某个实例类变量的值是所有对象共享的,而实例变量的值是每个对象独立的如何声明成员变量?【修饰符】 class 类名{ 【修饰符】 数据类型 属性名; //属性有默认值 【修饰符】 数据类型 属性名 = 值; //属性有初始值}//说明:属性的类型可以是Jav.原创 2020-09-17 11:08:55 · 128 阅读 · 0 评论 -
Java类与对象
对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面向过程:POP: Process-Oriented Programming面向对象:OOP: Object Oriented Programming面向对象与面向过程的区别:面向对象仍然包含面向过程,只不过关注点变了,关注谁来做 面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂的事情简单化,并将我们从执行者变成了指挥者。类的定义:是一类具有相同特性的事物的抽象描述,是一组相关属性和行为的集合。可以看成是一类事物的模..原创 2020-09-17 10:31:50 · 129 阅读 · 0 评论 -
JAVA中static关键字的使用,简洁易懂
static关键字的特性:1,在一个类中,有static修饰的成员不能直接访问没有static修饰的成员,没有static修饰的成员可以访问有static修饰的。2,没有static修饰的叫普通成员,有static修饰的叫静态成员。3,静态的成员只能访问静态的成员,普通的成员可以访问静态的成员也可以访问普通的成员。4,静态成员已经不是对象级别的成员了,变成类级别的成员。静态的成员可以由类名直接调用,而不需要创建对象。5,静态成员是在类加载的时候即分配内存空间,而普通的成员是创建对象.原创 2020-09-17 10:25:15 · 237 阅读 · 0 评论 -
二维数组练习
1、请使用二维数组存储如下数据,并遍历显示12 23 3 34 4 4 45 5 5 5 5public static void main(String[] args){ //1、声明一个二维数组,并且确定行数 //因为每一行的列数不同,这里无法直接确定列数 int[][] arr = new int[5][]; //2、确定每一行的列数 for(int i=0; i<arr.length; i++){ /* arr[0] 的列...原创 2020-09-17 10:16:34 · 1823 阅读 · 0 评论 -
二分法查找
采用二分法查找时,数据需是有序不重复的。基本思想:假设数据是按升序排序的,对于给定值 x,从序列的中间位置开始比较,如果当前位置值等于 x,则查找成功;若 x 小于当前位置值,则在数列的前半段中查找;若 x 大于当前位置值则在数列的后半段中继续查找,直到找到为止。public class MyArrays { public int dichotomySearch(double[] arr, double value){ int start = 0; .原创 2020-09-17 10:02:29 · 929 阅读 · 0 评论 -
一维数组练习
1,模拟在一副牌中,抽取第1张,第5张,第50张扑克牌。/** *模拟在一副牌中,抽取第1张,第5张,第50张扑克牌。 */public class Test03 { public static void main(String[] args) { String[] str = new String[62]; String[] str1 = {"黑桃", "红桃", "梅花", "方片"}; String[] str2 = {"A", "原创 2020-09-17 09:57:06 · 804 阅读 · 0 评论 -
附加题
/** * 1、编写代码完成如下功能 * public static String replace(String text, String target, String replace){ * .... * } * 示例:replace(“aabbccbb”, “bb”, “dd”); 结果:aadccdd * 注意:不能使用String及StringBuffer等类的replace等现成的替换API方法。 */public class Test01 { public stat.原创 2020-08-19 21:27:19 · 1779 阅读 · 2 评论 -
一维/二维数组的几种初始化方法
一维数组的初始化方法方式一:静态初始化数据类型[] 数组名 = {元素1,元素2,元素3...};//必须在一个语句中完成,不能分开两个语句写 举例: 定义存储1,2,3,4,5整数的数组容器int[] arr = {1,2,3,4,5};//正确int[] arr;arr = {1,2,3,4,5};//错误方式二:静态初始化数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};或数据类型[] 数组名;数组名 = new 数据.原创 2020-08-03 20:54:18 · 5751 阅读 · 0 评论 -
Java冒泡排序及练习
简单的冒泡排序写法public class TestPopSort { public static void main(String[] args) { int[] arrs = {23, 12, 55, 34, 9}; int temp; //冒泡排序只需要排元素个数-1次,而且我们从0开始,即从0--->arrs.length - 1 for (int i = 0; i < arrs.length - 1; i+原创 2020-08-03 20:48:19 · 346 阅读 · 0 评论 -
continue关键字的特点和使用技巧
continue 语句语句用来结束当前循环,并进入下一次循环,即仅仅这一次循环结束了,不是所有循环结束了,后边的循环依旧进行。场景:统计成绩为80分以上的学生的个数import java.util.Scanner;public class TestContinue { public static void main(String[] args) { // continue关键字 int count = 0; Scanner input = new Scanner(System.i原创 2020-07-26 23:13:30 · 452 阅读 · 0 评论 -
循环语句:for循环的执行流程和各种循环语句的区别
如果循环判断条件语句省略的话,就默认为循环条件成立执行流程: 第一步:执行初始化语句①,完成循环变量的初始化; 第二步:执行循环条件语句②,看循环条件语句的值是true,还是false; 如果是true,执行第三步; 如果是false,循环语句中止,循环不再执行。 第三步:执行循环体语句③ 第四步:执行迭代语句④,针对循环变量重新赋值 第五步:根据循环变量的新值,重新从第二步开始再执行一遍 public class Te原创 2020-07-26 23:11:33 · 545 阅读 · 0 评论 -
switch选择结构---case的穿透性,和预览语言形式的表述(java12新改动)
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是一旦匹配成功,不会在判断下一个case的值,直接向后运行,直到遇到break或者整个switch语句结束,switch语句执行终止。练习:根据指定的月份输出对应季节(switch语句) /* * 需求:指定一个月份,输出该月份对应的季节。 * 一年有四季 * 3,4,5 春季 * 6,7,8 夏季 * 9,10,11 秋季 * 12,1,2 冬季 * * 分析: * A:指定一原创 2020-07-26 23:05:54 · 210 阅读 · 0 评论 -
Java赋值运算符
1、基本赋值运算符课堂案例public class OperatorDemo04 { public static void main(String[] args) { int a = 3; int b = 4; a = a + b; System.out.println(a); // 7 System.out.println(b); // 4 }}2、扩展赋值运算符课堂案例public class OperatorDemo04 { public static原创 2020-07-22 20:50:40 · 365 阅读 · 0 评论 -
Java自加自减运算
理解:++ 运算,变量自己的值加1。反之,-- 运算,变量自己的值减少1,用法与++ 一致。1、单独使用练习: 变量在单独运算的时候,变量前++和变量后++,变量的是一样的; 变量前++ :例如 ++a 。 变量后++ :例如 a++ 。 public class OperatorDemo3 { public static void main(String[] args) { // 定义一个int类型的变量a int a = 3; //++a..原创 2020-07-22 20:47:38 · 661 阅读 · 0 评论