- 博客(112)
- 收藏
- 关注
原创 String API
问题:为什么String底层要把char[]改为byte[]?原因: 如果是char[],每一个字符就是一个char,每一个char占2个字节。如果是byte[],每一个字符可能是1个字节,可能是多个字节,如果是1个字节的话,就节省了空间。char字符的编码值范围是[0, 65535],但是其中的ASCII表范围的字符的编码值是[0, 127],常见的英文字母、数字、英文标点符号等都是在ASCII表范围的字符,因此它们本质上只需要1个字节就可以了。
2026-01-14 18:32:49
777
原创 Java第三代时间API
"月" + now.getDayOfMonth() + "日" + now.getHour() + "时" + now.getMinute() + "分" + now.getSecond() + "秒");System.out.println("LocalTime is : " + h + "时" + m + "分" + s + "秒");System.out.println(year + "年" + month + "月" + dat + "日");
2026-01-14 15:51:36
743
原创 [认识异常和错误]java
程序运行期间预料之内的不正常情况,通常由程序逻辑、输入数据、外部依赖(如文件不存在、网络超时)等问题引发,可以被开发者捕获并处理,从而让程序继续执行而非直接崩溃。Java 中Exception是Throwable的子类,分为受检异常(Checked Exception)和非受检异常(Unchecked Exception/RuntimeException)。受检异常(编译期强制检查):必须显式捕获或声明抛出,如java运行// 示例:文件读取的受检异常try {
2026-01-13 15:23:48
1018
原创 @Superbuilder + @Data / @Setter组合魔法(为什么这个组合可以继承父类的私有属性)
Datasetter@Data@Setter,本质是借助,和super。
2026-01-09 17:49:16
135
原创 JUnit--Before,After,Test标签
/ } 在编译的时候会报错,因为所在的类只能有一个公共的无参构造。* @BeforeEach 在每个单元测试方法执行之前执行。* @BeforeAll 在所有单元测试方法执行之前执行。* @AfterEach 在每个单元测试方法执行之后执行。* @AfterAll 在所有单元测试方法执行之后执行。* 4.所在的类只有一个公共的无参构造。* 1.是java程序的第二个入口。* 2.返回值的类型是void。/*@Test标记的单元测试方法。
2026-01-09 15:21:21
236
原创 多态引用与虚方法
如果父类中有重载的方法,先找最匹配的,如果没有最匹配的,找可以兼容的(形参的声明类型>实参的编译时的类型)* father.show(1);Son类中的方法 Son.show(int tag)* father.show(1);父类方法father.show(int tag)* father.show();Son类中的方法 Son.show()父类方法father.show()System.out.println("父类方法");System.out.println("子类方法");
2026-01-07 14:46:53
289
原创 多态数组排序
i++) {i++) {@Override@Overridei++){j ++ )@Overridereturn 1;return -1;elsereturn 0;@Override@Override。
2026-01-06 16:18:53
226
原创 多态:编译时看左边,运行时看右边
多态的编译过程会先看左边的类型,导致子类的函数不能用。但是多态在运行的时候会看右边,自动匹配子类对象。a1.bark();//运行时多态看左边,左边是Animal类型,没有bark方法,导致报错。a2.meow();//运行时多态看左边,左边是Animal类型,没有meow方法,导致报错。
2026-01-06 15:44:13
188
原创 任意大小的整数和任意精度的小数的API方法
2. subtract(BigInteger val) //减。* 3. multiply(BigInteger val) //乘。* 2. subtract(BigDecimal val) //减。* 3. multiply(BigDecimal val) //乘。* 4. divide(BigInteger val) //除。* 1. add(BigInteger val) //加。* 1. add(BigDecimal val) //加。* 使用BigInteger。
2026-01-06 13:31:17
216
原创 包装类对象的不可变性
/原来的b = 100,包装类对象的不变性,因为传进来的这个副本地址,因为new Byte(101),所以原来的b = 100。System.out.println("改变前的元素c[0] " + c[0]);System.out.println("改变后的元素c[0] " + c[0]);System.out.println("改变前的元素b " + b);System.out.println("改变后的元素a " + a);System.out.println("改变后的元素b " + b);
2026-01-05 21:48:12
334
原创 深浅拷贝--Java
/ 3. 引用类型 List:原对象添加"男生",拷贝对象也包含该元素(共享堆对象)System.out.println("原对象:" + originalUser);// 2. 引用类型 Hobby:原对象修改为足球,拷贝对象也变为足球(共享堆对象)System.out.println("拷贝对象:" + cloneUser);// 1. 基本类型 id:原对象修改为 2,拷贝对象仍为 1(互不影响)originalUser.getTags().add("男生");// 1. 创建原对象。
2026-01-04 22:48:06
289
原创 为什么一文件只能有一个类是公共的,并且要与文件名一致
这个规则是 Java 为了简化类的定位和加载流程而制定的语法约束,本质是让 “文件名” 和 “公共类” 一一对应,避免编译 / 运行时的混乱。
2025-12-30 18:43:16
153
原创 java中的Math.Radom拓展
注意:(int)(Math.random * (b - a) + a),不带括号的话,(int)Math.random() == 0。
2025-12-27 20:21:38
196
原创 [数据结构和算法]寻找第一个缺失的正整数
/如果是负数就不管它,如果是正数且小于n就取余,因为如果大于了n,那么我们要求的这个没出现过的最小正数就不可能是它。// 所有1~n都存在,输出n+1(根据题意调整)// 寻找第一个未出现的数。
2025-05-13 18:27:04
278
原创 [人机交互]以用户为中心的交互设计
•理解和指定产品的使用上下文,并用于指导设计•用户参与式开发•参与评估研究(第十十四章)•参与设计过程:用户作为合作设计人员。
2025-05-08 15:37:17
418
原创 [人机交互]设计,原型建立和构造
(原型是最终产品的一些关键描述,以牺牲另外一些特征为代价来换取开发所需要的资源。-对产品概念的形象化和具体化,是设计师构想的体现。-不是产品-是产品的一种近似或受限表示-作用:用户可以通过与之交互来探索其适用(有用,可用)性¡既可表示用户对系统的理解,也可是设计者对系统的设计¡即从用户的角度,采用他们的概念描述系统界面的设计¡旨在在用户和设计者之间建立交流的可能性。
2025-05-08 15:29:53
1142
原创 [人机交互]识别需要和建立需求
需求是有关目标的陈述或者规约。(需求应该描述系统做什么,但不是系统怎么做陈述应该尽可能具体,明确,无二义性。需求分析是解释已知需求,分析系统的数据与行为,指定系统规约的过程。情节是一种非叙事性的描述(又叫做用户故事◦内容描述具体行为、活动或任务◦用户语言描述◦文字、草图、录像和录音剪辑等情节示例(在线购物APP)对情节进行抽象。用例(Use Case) 是对情节(Scenario) 的抽象和泛化,它描述了系统如何与用户交互以实现特定目标。
2025-05-08 00:55:23
1431
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅