
Java SE基础系列
文章平均质量分 94
程序员波特
全网同名,资深Java开发。专注分享Java后端、中间件、架构设计、云原生、面试等干货知识。关注我,一起成长
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【day20】集合深入探讨
按照斗地主的规则,完成洗牌发牌的动作。具体规则:使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。Set和Map密切相关,Map的遍历需要先变成单列集合,只能变成Set集合。HashSet是Set接口的实现类,具有元素唯一、无序、无索引、线程不安全等特点。底层数据结构为哈希表。set.add("张三");set.add("李四");set.add("王五");set.add("赵六");set.add("田七");set.add("张三");继承自。原创 2024-12-29 11:38:26 · 1317 阅读 · 0 评论 -
【day19】集合和常用API
Collection是单列集合的顶级接口。List是Collection接口的子接口。原创 2024-12-29 11:14:18 · 994 阅读 · 0 评论 -
【day18】多线程高级应用
Lock是一个接口,其实现类为,提供了比更灵活的锁控制。lock():获取锁。unlock():释放锁。//定义100张票//创建Lock对象@Overridetry {//获取锁System.out.println(Thread.currentThread().getName() + "买了第" + ticket + "张票");ticket--;}finally {//释放锁Thread t1 = new Thread(myTicket, "赵四");原创 2024-12-25 21:52:15 · 911 阅读 · 0 评论 -
【day17】多线程基础
主线程是CPU和内存之间专门为main方法服务的线程。死锁是指两个或多个线程在执行过程中因为竞争同步锁而产生的阻塞现象,如果没有外力作用,它们将无法继续执行。线程在生命周期中有六种状态,包括NEW(新建)、Runnable(可运行)、Blocked(锁阻塞)、Waiting(无限等待)、Timed Waiting(计时等待)和Terminated(被终止)。线程状态导致状态发生条件NEW(新建)线程刚被创建,但是并未启动。还没调用start方法。Runnable(可运行)原创 2024-12-25 21:38:29 · 1114 阅读 · 0 评论 -
【day16】Java开发常用API
Math构造方法私有,不能实例化。方法都是静态的,可以直接通过类名调用。BigInteger类用于处理超出long范围的超大整数。:参数必须是数字形式的字符串。:返回两数之和。:返回两数之差。:返回两数之积。:返回两数之商。BigDecimal类用于解决float和double运算中的精度损失问题。:参数必须是数字形式的字符串。:初始化小数时可以传入double型数据。:返回两数之和。:返回两数之差。:返回两数之积。:返回两数之商。:指定保留小数位数和取舍方式的除法。原创 2024-12-24 22:02:06 · 1289 阅读 · 0 评论 -
【day15】String常用API
String所有字符串字面值(如"abc")都是String类的实例。字符串是不可变的,这意味着一旦创建,其值就不能更改。String对象是不可变的,因此可以被共享。是一个可变的字符序列,主要用于字符串拼接。与String相比,在拼接时不会频繁创建新对象,因此效率更高。底层自带缓冲区,此缓冲区是没有被final修饰的byte数组,默认长度为16如果超出了数组长度,数组会自动扩容创建一个新长度的新数组,将老数组的元素复制到新数组中,然后将新数组的地址值重新赋值给老数组。原创 2024-12-24 21:40:38 · 624 阅读 · 0 评论 -
【day14】异常处理与Object类深入解析
异常是程序运行过程中出现的不正常现象。在Java中,异常都是类的实例。//错误Error -> StackOverflowError//method();//运行时期异常 -> ArrayIndexOutOfBoundsException/*编译时期异常:注意看:编译时期异常是我们代码写错了嘛?不是,当我们调用方法的时候该方法底层给我们抛了一个编译时期异常,所以导致我们一调用此方法一编译,就爆红了当我们一旦触发了这个异常,jvm就会将异常信息打印到控制台上,给程序员们看*/原创 2024-12-23 18:32:06 · 685 阅读 · 0 评论 -
【day13】深入面向对象编程
public:最广的访问范围,任何地方都可以访问。protected:在同包和子类中可以访问。默认(无修饰符):仅在同包内可以访问。private:仅在定义它的类内部可以访问。原创 2024-12-23 18:11:36 · 949 阅读 · 0 评论 -
【day12】面向对象编程进阶(接口与多态)
接口是Java中一种定义标准和规则的方式,它允许类实现一个或多个接口,从而确保类遵循特定的规范。接口:是一个引用数据类型,是一种标准,规则抽象方法: public abstract -> 即使不写public abstract, 默认也有成员变量: public static final 数据类型 变量名 = 值-> 即使不写public static final,默认也有final是最终的,被final修饰的变量不能二次赋值,所以我们一般将final修饰的变量视为常量。原创 2024-12-22 14:22:20 · 775 阅读 · 0 评论 -
【day11】面向对象编程进阶(继承)
本文深入探讨面向对象编程的核心概念,包括继承、方法重写、this和super关键字的使用,以及抽象类和方法的定义与实现。理解继承的优势。掌握继承的使用方法。了解继承后成员变量和成员方法的访问特点。掌握方法重写及其应用场景。学会使用this关键字调用当前对象的成员。学会使用super关键字调用父类的成员。定义抽象方法和抽象类。重写抽象方法。继承是一种代码复用机制,通过将共通代码抽取到父类中,子类可以直接继承父类的功能。在Java中,使用extends关键字实现继承。原创 2024-12-22 11:01:31 · 1111 阅读 · 0 评论 -
【day10】JavaSE基础项目——学生管理系统
【day11】JavaSE基础项目——学生管理系统。原创 2024-12-22 08:00:00 · 421 阅读 · 0 评论 -
【day09】面向对象编程进阶
1.概述:static是一个静态关键字2.使用:a.修饰一个成员变量:static 数据类型 变量名b.修饰一个方法:修饰符 static 返回值类型 方法名(形参){方法体return 结果3.调用静态成员:类名直接调用(不用new对象)4.静态成员特点:a.静态成员属于类成员,不属于对象成员(非静态的成员属于对象成员)b.静态成员会随着类的加载而加载c.静态成员优先于非静态成员存在在内存中d.凡是根据静态成员所在的类创建出来的对象,都可以共享这个静态成员int age。原创 2024-12-21 19:00:00 · 338 阅读 · 0 评论 -
【day08】面向对象编程(封装)
1.面向对象三大特征: [封装] 继承 多态2.什么是封装思想:a.我们找来了一个对象(洗衣机),只需要按一下按钮就可以了(使用洗衣机功能的过程就是在使用面向对象思想编程的过程),每一个按钮下面都包含了很多内部结构的细节(细节被封装到按钮里面了->封装),在使用的时候有必要了解洗衣机的内部构造吗?我们没有必要去了解内部结构,我们只知道调用就可以了所以,洗衣机来说,将细节隐藏起来了,细节我们不要关注,会对外提供了一个公共的接口(按钮),供我们人类使用。原创 2024-12-21 14:00:00 · 600 阅读 · 0 评论 -
【day07】面向对象编程
1.面向过程:自己的事情自己干,代表语言C语言洗衣服:每一步自己要亲力亲为 -> 找个盆,放点水,找个搓衣板,搓搓搓2.面向对象:自己的事情别人帮忙去干,代表语言Java语言洗衣服:自己的事情别人干 -> 全自动洗衣机3.为啥要使用面向对象思想编程:懒很多功能别人都给我们实现好了,我们只需要直接拿过来使用即可,简化了我们自己的编写过程,减少了我们的代码量4.什么时候使用面向对象思想编程:调用别人的功能时在一个类中想使用别的类中的成员时,就使用面向对象思想编程。原创 2024-12-21 08:00:00 · 202 阅读 · 0 评论 -
【day06】Java中方法的定义、调用、参数传递和方法重载
第一章.方法的使用1.方法介绍以及简单方法定义(无参无返回值)2.无参数无返回值的方法执行流程第二章.方法注意事项终极版第三章.方法练习1.方法练习1(判断奇偶性)2.方法练习2(1-100的和)3.方法练习3(不定次数打印)4.方法练习4(遍历数组)请添加图片描述原创 2024-12-20 20:30:00 · 287 阅读 · 0 评论 -
【day05】定义、操作与二维数组
第一章.数组的定义第二章.数组操作1.获取数组的长度2.索引4.获取元素5.遍历数组第三章.操作数组时两个常见的问题1.数组索引越界异常_ArrayIndexOutOfBoundsException2.空指针异常_NullPointerException2.练习3.练习4.练习5.练习6.练习7.练习_数组复制8.练习_数组扩容2.获取二维数组长度3.获取二维数组中的元素5原创 2024-12-20 15:59:44 · 283 阅读 · 0 评论 -
【day04】流程控制
2.if:从上到下挨个判断 -> 实际开发主要用if做判断,灵活。学习Random和学习Scanner方式方法一样。1.switch:会直接跳到相匹配的case。switch和if的区别:debug。快捷键: 次数.fori。原创 2024-12-19 09:08:00 · 431 阅读 · 0 评论 -
【day03】IDEA的使用和认识运算符
1.概述:开发工具2.特点:a.idea是java写的,所以本地上必须有正确的jdk环境(JAVA_HOME)b.idea自动保存c.不用我们打开dos命令窗口执行javac和java命令d.idea有强大的快捷键,生成代码,纠错等e.idea会自动管理我们写的代码3.相关开发工具:eclipse myeclipse4.作用:加速我们的开发。原创 2024-12-18 19:27:21 · 783 阅读 · 0 评论 -
【day02】变量、数据类型转换、运算符
1.变量的数据类型:基本数据类型:4类8种整型:byte short int long浮点型:float double字符型:char布尔型:boolean引用数据类型: 类 数组 接口 枚举 注解2.概述:在代码的运行过程中,值会随着不同的情况而随时发生改变的数据3.作用:一次接收一个数据将来定义一个变量,接收一个值,后续可能会根据不同的情况对此值进行修改,此时可以用变量4.定义:a.数据类型 变量名 = 值;b.数据类型 变量名;变量名 = 值;原创 2024-11-12 17:01:45 · 776 阅读 · 0 评论 -
【day01】环境变量配置以及入门程序(HelloWorld)
JavaSE知识图解JavaSE知识模块介绍数据类型运算符流程控制数组、…(没有为啥,按照格式定义)类和对象封装继承多态抽象接口、…JAVA核心编程思想(面向对象),很多功能别人已经给我们实现好了,我们直接调用这个对象的功能就可以了,让代码变得简单了,简洁了集合I/O多线程网络编程反射机制、…Lambda表达式函数式编程新Date/Time API接口的默认、静态和私有方法、…SQL语句数据库连接池DBUtils事务管理批处理、…原创 2024-11-12 15:00:06 · 1076 阅读 · 0 评论