Java基础
文章平均质量分 71
我的Java学习过程,欢迎指导
Ttang23
此路不通还有桥 没有桥还有船 没有船我还会游泳
展开
-
Java基础——包装器和自动装箱&参数数量可变&枚举类
自动装箱规范要求 boolean、byte、char 127, 介于 -128 ~ 127 之间的 short 和 int 被包装到固定的对象中。返回用 s 表示的整型数值进行初始化后的一个新 Integer 对象, 给定字符串表示的是十 进制的整数(第一种方法,) 或者是 radix 参数进制的整数(第二种方法)返回字符串 s 表示的整型数值, 给定字符串表示的是十进制的整数(第一种方法,) 或者是 radix 参数进制的整数(第二种方法。返回数值 i 的基于给定 radix 参数进制的表示。原创 2024-12-04 13:32:30 · 748 阅读 · 0 评论 -
Java基础——抽象类
抽象类就是这一抽象过程在面向对象编程中的体现。原创 2024-11-20 17:16:44 · 710 阅读 · 0 评论 -
Java基础——泛型(2) # Integer-128陷阱
在上一篇博客里解释了什么是泛型的定义,本篇笔记来更进一步的介绍泛型的内容。Java基础——泛型定义是Java编程中的一个常见现象,主要涉及Integer类型的自动装箱、拆箱以及对象比较。原创 2024-11-29 19:25:32 · 749 阅读 · 0 评论 -
Java基础——类型转化(强制转化)
显式类型转换发生在程序员需要将一个较大的数据类型转换为较小的数据类型时,或者在不兼容的类型之间进行转换时。指的是将父类类型的对象引用强制转换为子类类型的对象引用。这种转换是有风险的,只有在确保父类对象实际指向的是子类实例时,才能安全地进行。隐式类型转换发生在较小的数据类型被赋值给较大的数据类型时,Java编译器会自动处理这种转换,而不需要程序员显式地指定。向下转型常用于多态性场景中,当你想调用子类特有的方法或访问子类特有的属性时,就需要将父类引用转换为子类引用。(2)显式类型转换(强制类型转换)原创 2024-11-20 16:49:14 · 695 阅读 · 0 评论 -
Java基础——泛型
泛型(Generics)是一种在编程时定义函数、类或接口时不具体指定将要操作的数据类型的方法。通过使用泛型,可以编写出更加通用、灵活且类型安全的代码。泛型允许在编译时进行类型检查,从而减少运行时错误,并提高了代码的可重用性和可读性。泛型就好比是给一个标签,就拿数组的泛型举例来说,我们把数组比作一个药瓶子,我们药瓶子贴上了什么标签,就放什么药,如果不管什么药都放在一个药瓶子里,那不得出大事吗?同样容器写上什么泛型,就存放什么数据;原创 2024-11-25 12:05:36 · 1279 阅读 · 0 评论 -
Java基础——泛型(3)#HashMap泛型
也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。特别是它不保证顺序会随着时间的推移保持不变。如果您需要保持插入顺序,请使用。HashMap 最早出现在 JDK 1.2中,底层基于散列。(2)jdk8中的HashMap基于数组+链表+红黑树实现。(1)是一个key-value的映射容器,key不重复。(5)非线程安全,多线程环境下可能存在问题。(3)不保证键值的顺序。输出的顺序可能与插入的顺序不同,HashMap 本身无序。原创 2024-11-29 19:55:56 · 775 阅读 · 0 评论 -
Java基础——预定义类/自定义类&封装&什么是Final类型
例如:Math类、Date类、ArrayList类。这些都是java经典的类,称为预定义类(预定义类是指由编程语言的标准库或第三方库已经定义好的类。)与之相对应的是用户自定义类i<value;i++) {}else {=1) {效果图如下:一个class类文件中可以有多个类,但是只能有一个public类型的。//一个文件里可以有多个类,但是只能有一个类是publicname=n;salary=s;原创 2024-11-14 21:52:42 · 579 阅读 · 0 评论 -
Java基础——继承和多态
继承是面向对象编程中的一种机制,它允许一个类继承另一个类的属性和方法。通过这种方式,子类可以复用基类的代码,避免重复编写相同的代码。其中——父类又叫超类、基类。子类又叫派生类。原创 2024-11-18 13:33:22 · 989 阅读 · 0 评论 -
Java基础——构造器&对象初始化块
方法的重载(Method Overloading)是面向对象编程中的一个重要概念,它允许在同一个类中定义多个同名的方法,但这些方法的参数列表(参数的数量、类型或顺序)必须不同。第一个对象产生的时候触发的,且仅由类的第一个对象触发 .静态的初始化是在第一个对象产生的时候触发的,且仅由类的第一个对象触发。我们看下面的例子,静态代码块的优先级>代码块和构造方法,当优先级相同时,按顺序执行。如下图,等号左边的为引用传递,等号右边的为值传递.换句话说,m1方法中如何写,上图的x1也不被影响。原创 2024-11-17 09:02:17 · 411 阅读 · 0 评论 -
Java——认识多线程
等CPU空闲后再执行,在操作系统的任务调度中,和人交互的进程优先级很高。每个线程是程序的一个执行单元,它包含了一系列的指令,这些指令在程序的上下文中被顺序执行。多线程技术允许程序并发地执行多个任务,从而提高了程序的执行效率和响应速度。并发(Concurrency)是指在计算机系统中,能够同时执行多个任务或操作的能力。在共享的变量中,基本类型不能更改,引用类型相当于被final修饰的变量——不可以第二次改变指向。线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。原创 2024-11-12 16:40:50 · 243 阅读 · 0 评论 -
Java基础——循环&switch&大数值&更改器访问器&深浅拷贝
一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。在 Java 中,任何对象变量的值都是对存储在另外一个地方的一个对象的引用。这输出的是他的类型和内存地址。那我们再看一个例子,我们为flag3设置一个只读操作。当我们在Person类里重写了toString时,再次调用toString时,就会调用我们自己写的方法。将普通的数值转换为大数值。但遗憾的是,我们不能使用人们熟悉的算术运算符(如加号。类名引用的是静态方法,通过对象名调用的是非静态方法。因为flag2是基本类型,它的调用默认就是深拷贝。原创 2024-11-10 23:50:09 · 651 阅读 · 0 评论 -
Java数据结构——数组的构建、扩容、插入、删除
package 数据结构;int size=0;//记录当前数组有效数据的个数//记录数组容量//因数 1.5//插入//扩容——强制类型转换//创建一个新数组//循环遍历,把原数组存入新数组中i++) {arr=brr;//插入size++;//当在类内写了toString方法时,会优先调用自己的方法//边界条件判定,取sizei原创 2024-11-03 22:44:18 · 561 阅读 · 0 评论 -
Java基础——类和对象的定义&链表的创建,输出
创建Java程序必须创建一个类class..java程序需要经过javac指令将文件翻译为.class字节码文件,再通过java指令将其调用。此时内存为正在运行的Java程序开辟内存空间。在内存为Java开辟的空间中,其具体主要结构为:注意:默认任何一个类当中都有一个不显示的无参构造器。但是一旦你显示的创建出构造器,那那个不显示的构造器就会被覆盖。原创 2024-11-09 23:59:18 · 597 阅读 · 0 评论 -
Java基础(4)——构建字符串(干货)
StringBuilder就是这样,它默认有16字节的缓冲区存储空间,当然,这个空间的大小也可以自己设置。如果想要获取10000B大小的数据,要向内存申请一万次才能得到全部数据单元,所以操作系统为了提高效率,,只能不断开辟新的内存页,前4096次每次申请一个内存页后4097~8192一次申请两个内存页……一个内存页只有一个总地址(开头),在一个内存页中只能储存一个变量,其他的是找不到的。,数组默认不区分类型,但是在底层被c语言翻译后还是被区分为不同类型的语言分页储存,所以弱类型语言对内存的消耗很大。原创 2024-10-29 23:27:34 · 341 阅读 · 0 评论 -
Java基础——代码运行的内存图
包括所有高级语言,在内存中都会转为c语言。因为计算机底层的硬件驱动都为c语言,操作系统为了方便执行,所以用c语言。我们的Java程序在硬盘里经过JDK(javac)翻译为.class文件。,数组分为:堆区,栈区,方法区,程序计数器,本地方法栈几个部分。进程在内存中独占一块区域,没有交叉互不干扰。原创 2024-11-02 23:03:25 · 266 阅读 · 0 评论 -
Java基础(3):运算符,字符串,输入输出
Java API是一个庞大的类库集合,包含了大量的类、方法和接口,供开发者使用。开发者可以直接使用Java API提供的类和方法,无需重新编写这些功能的代码,从而提高开发效率。(在Java中,如果一块内存数据没有被任何引用,除了string类型,Java会自动回收这一块区域。replace替换,split分割,indexOf统计数量,substring(x,y),截取字符串x到y之间。如果返回的数都为0,那么这一位就是0,如果返回的是2^(m-1),那么这一位就是1.0+1=1,1+0=1。原创 2024-10-27 23:20:10 · 703 阅读 · 0 评论 -
Java基础(2)
上篇文章说到了char类型,每个字母或符号在本质上是一个图形。输入法的原理也就是通过用户输入字母即获取这个字母的编码从而找到其对应的图形(也就是字)。5.final防止指令重排序,遏制流水线优化,保障多线程并发情境下的可见性。对于Unicode编码,整套的叫做编码,单个的某个字符的编码值叫做。2.final修饰的引用类型不可以二次改变指向。1.final修饰的基本类型不可以第二次赋值。4.final修饰的方法不可以被重写。3.final修饰的类不可以被继承。自身等于(自身++)或(自身--)是。原创 2024-10-17 00:00:49 · 510 阅读 · 0 评论 -
Java基础(1)
int和float数学信息相同都是32位,当数据量较小时float精度更高,但数据量较大时,float丧失的位数增多,精度降低,int的精度更高。小驼峰:名字由多个单词组成,第一个单词以小写字母开始,第二个单词的首字母大写——变量名,方法名,文件夹名 例如:“firstName”其中二者的范围分别是x(0~255),y(0~2^23-1)。int: 32bit (-2^32~(2^32-1)——(-超过20亿~超过20亿)的基础上,重新定义了一套新的语言系统,这就是Java的前身——。原创 2024-10-14 11:09:09 · 1040 阅读 · 0 评论