Java基础学习
文章平均质量分 72
借鉴《Java核心技术卷》,加以自身学习,旨在分享学习成果,互相探讨互相学习
Iron_Sp-man
广度学习,深度学习
展开
-
Java学习(基本程序设计)——第一个Hello,World
此前需要将Java环境配置好才能正常编译运行Java程序1.新建Java文件 文件后缀名改为.java 系统不显示文件名需要手动打开 2.编写代码public class Hello { public static void main(String[] args) { System.out.println("Hello,World!"); }}3.代码解析 关键字public:访问修饰符(access modifier),用于控制...原创 2021-08-29 18:02:13 · 181 阅读 · 0 评论 -
Java学习(基本程序设计)——注释、标识符,关键字
注释 单行注释: //这里是单行注释 多行注释: /*这里是多行注释*/ 文档注释(可加参数): /** * @description hello * @Author Iron_S-M */ 标识符 类名,变量名,方法名都称为标识符 标识符命名规范 所有标识符都应该以字母,美元符($),下划线(_)开始 首字母之后可以是字母,美元符($),下划线(_)或数字的任何字符组合 不能使用关键字作为标识符 标原创 2021-08-30 16:49:32 · 87 阅读 · 0 评论 -
Java学习(基本程序设计)——变量,常量
变量声明变量 变量都有一个类型(type),在声明变量时应该先指定变量的类型,然后是变量名 每个声明以分号结尾 变量命名规则: 变量名必须以字母开头,并且由字母或者数字构成的序列 变量名每个字符应该有意义,做到见名知意 变量名大小写敏感 int number1;int Number1;//这是两个不同的变量 变量名的长度基本没有限制 不能使用Java保留字作为变量名 不提倡在一行中声明多个变量(影响可读性) 变量原创 2021-09-02 23:22:03 · 117 阅读 · 0 评论 -
Java学习(基本程序设计)——数据类型,数据类型转换
Java数据类型分类基本数据类型数值类型数值类型 byte类型占一个字节范围:-128~127 short类型占两个字节范围:-32768~32767 byte和short主要用于特定的应用场合,例如底层文件的处理或者存储空间很宝贵时的大数组 int类型占四个字节范围:-2147483648~2147483647(刚超过21亿) 在Java中大数之间常用下划线_分割,不会对输出有影响(java编辑器会去除这些下划线) ...原创 2021-09-01 02:08:07 · 150 阅读 · 0 评论 -
Java学习(基本程序设计)——运算符与运算符优先级
Java语言运算符 算术运算符:+,-,*,/,%,++,-- 赋值运算符:= 关系运算符:>, < , >= , <= , == , !=,instanceof 逻辑运算符:&&,||, ! 位运算符:&,|,^,~,>>,<<,>>> 条件运算符:?: 扩展赋值运算符:+=,-=,*=,/= 算术运算符 注意点: 当参与/运算的两个原创 2021-09-08 11:14:06 · 297 阅读 · 0 评论 -
Java学习(基本程序设计)——字符串
字符串 java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类,String 每个用双引号括起来的字符串都是String类的一个实例 子串 String 类的substring方法可以从一个较大的字符串中提取出一个字串 substring的第二个参数是不想复制的第一个位置 对于substring(a,b),很容易计算出字串的长度为b-a 拼接 Java语言允许用+号进行拼接 字符串和字符串进行拼接:...原创 2021-09-13 23:44:05 · 147 阅读 · 0 评论 -
Java学习(对象与类)——关于包
为什么使用包? 使用包将类组织在一个集合中 包名 使用包的原因: 借助包可以方便的组织自己的代码,并将自己的代码与别人提供的代码库分开管理 使用包可以确保类名的一致 假若两个程序员不约而同地都建立了一个Teacher类,那么,将这些类放在不同的包中就不会产生冲突 为了保证包名的绝对唯一性,要用一个逆序的因特网域名来作为包名com.learnjava,在追加一个工程名oop,如com.learnjava.oop,在把..原创 2021-10-14 11:07:26 · 297 阅读 · 0 评论 -
Java学习(基本程序设计)——顺序结构,循环结构
顺序结构 Java的基本结构就是顺序结构,除非特别指明,否则就按顺序一句一句执行 顺序结构是最简单的算法结构 If选择结构If单选择结构 语法 if(布尔表达式){ //如果布尔表达式为true将执行的操作 } If双选择结构 语法 if(布尔表达式){ //如果布尔表达式为true将执行的操作 }else{ //如果表达式为false将执行的操作} If多选择结构 语法 if(布尔表达式1){ //如果布尔...原创 2021-09-24 13:02:17 · 171 阅读 · 0 评论 -
Java学习(基本程序设计)——数组
数组的声明与创建 数组的声明,创建: 在声明数组变量时,需要指出数组类型(数组元素类型后紧跟[])和数组变量的名字 int[] a; 这条语句只声明了变量a,并没有将a初始化为一个真正的数组,应该用new操作符创建数组 a=new int[10]; 这条语句声明并初始化了一个可以存储10个整数的数组 数组长度不要求是常量 一旦创建了数组,就不能再改变它的长度,如果程序运行中需要经常扩充数组的大小,就应该使用另一种数据结构——数组列表(arr原创 2021-10-08 16:16:13 · 82 阅读 · 0 评论 -
Java学习(基本程序设计)——输入与输出
读取输入标准输出流:System.out.println();标准输入流: 想要通过控制台输入,需要先构造一个与“标准输入流”System.in关联的Scanner对象 Scanner in=new Scanner(System.in); nextLine方法将读取一行输入: 想要读取一个单词可以调用next方法 读取一个整数可以用nextInt方法(读取一个单词) 与此类似,想要读取下一个浮点数用nextDouble ...原创 2021-09-17 22:57:19 · 391 阅读 · 0 评论 -
Java学习(基本程序设计)——数组案例(附加完整代码)
数组案例:冒泡排序 什么是冒泡排序? 重复的走过每个元素列(可通过代码减少不必要的比较),依次比较每个元素列,按从小到大的顺序(若前面一个数大于后面一个数,交换两个数的位置),重复此操作,直到没有元素需要交换 主函数排序方法结果:数组案例:稀疏数组 为什么要用稀疏数组? 当一个数组中大部分元素为0时,或者为同一值的数组可以使用稀疏数组来保存数组 处理方式: 记录数组有几行几列,有多少个有效值 ...原创 2021-10-10 14:11:50 · 301 阅读 · 0 评论 -
Java学习(对象与类)——面向对象设计概述
什么是面向对象 思想:分类的思维模式,思考问题首先会思考解决问题需要哪些分类,然后对这些分类进行单独思考。最后对某个分类的细节进行面向过程的思考 对于复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要用面向对象的思路来分析整个系统,但是具体到微观操作,仍需要用面向过程的思路去处理 面向对象编程(Object-Oriented programming,OOP) 面向对象编程的本质:以类的方式组织代码,以对象组织(封装)数据 三大特性: 封装原创 2021-10-10 16:30:51 · 152 阅读 · 0 评论 -
Java学习(对象与类)——类的定义(字段,构造器,方法)详细介绍
什么是主力类? 主力类(workhorse class)是复杂应用程序所需的类,通常这些类没有main方法,却有着自己的实例字段与实例方法 想要构建一个完整的程序,就需要多个主力类,以及一个带有main方法的类 定义类 类最简单的定义形式: class ClassName{ field1;//实例字段1 field2;//实例字段2 .......... constructor1;//构造器1 constructo...原创 2021-10-13 00:30:03 · 1001 阅读 · 0 评论 -
Java学习(对象与类)——构造对象
构造对象 要想使用对象,必须先创建对象,并指定其初始状态,然后对对象应用方法 在Java中,使用构造器(或者构造函数)构造新实例,构造器是一种特殊方法,用来构造并初始化对象 //学生类public class Student {} 构造器的名字应该与类名相同,因此Student类的构造器名为Student。想要构造一个Student对象,需要在构造器前面加new操作符 new Student(); 这个表达式构造了一个新对象 像这样构造的对原创 2021-10-13 19:32:34 · 1613 阅读 · 0 评论 -
Java学习(对象与类)——文档注释,生成JavaDoc文件
注释的插入 javadoc实用工具从下面几项中抽取信息 模块 包 公共类和接口 公共的和受保护的字段 公共的和受保护的构造器及方法 每个文档注释/**.......*/包含标记,以及之后紧跟着的自由格式文本 标记以@开头,例如@since,@param 自由格式文本的第一句话应该是一个概要性的句子 javadoc将自动将这些概要句子抽取出来生成概要页 在自原创 2021-10-14 20:23:44 · 465 阅读 · 0 评论 -
Java学习(对象与类)——类的设计技巧
写在前面:应用以下这些技巧可以使你设计的类更能得到专业OOP圈子的认可1.一定要保证数据私有 不要破坏封装性,有时候需要编写一个访问器方法或者修改器方法,但最好还是保持实例字段的私有性(private) 2.一定要对数据初始化 java不会为你初始化局部变量,但会对对象的实例字段进行初始化,最好不要依赖系统的默认值,而是显式的初始化所有的数据,可以提供默认值,也可以在所有的构造器中提供默认值。 3.不要再类中使用过多的基本类型 再这里说的是要用其他的类替换使用多个相关的基本类型原创 2021-10-14 22:02:14 · 263 阅读 · 0 评论 -
Java学习(继承)——类,超类,子类(一)
目录定义子类覆盖方法(方法重写)子类构造器继承层次多态 为什么引入继承? 假若现在有一个员工类Employee,在这里面的员工有普通职员,有经理,他们都领薪水,不过薪资待遇有一些不同,普通职员的工资组成只有基本工资,但是经理既有普通工资也有项目奖金,这种情况下,就需要用到继承。 因为经理定义了一个新类Manager,并增加了一些新功能。但可以拥有Employee类中已经编写的代码,并保留了Employee类的所有字段 定义子类Manager类原创 2021-10-19 14:43:43 · 2454 阅读 · 0 评论 -
Java学习(继承)——类,超类,子类(二)
目录理解方法调用阻止继承:final类和方法强制类型转换抽象类受保护访问理解方法调用 假设要调用x.(args),隐式参数为类C的一个对象。下面时调用过程的详细描述 编译器查看对象的声明类型和方法名 接下来编译器要确定方法调用中提供的参数类型。因为可能存在多个方法方法名一样,但是参数不一样,编译器需要根据参数时字符串型还是其他类型,来选择正确的方法来调用 如果是private方法,static方法,final方法或者构造器,那么编译器将原创 2021-10-19 21:27:58 · 206 阅读 · 0 评论 -
Java学习(继承)——Object类:所有类的超类
Object类型的变量 可以使用Object类型的变量引用任何类型的对象 Object obj=new Employee(); 但是Object类型的变量只是一个作为各种值的一个泛型容器。如果想要对其中的值进行具体的操作,还需要清除对象的原始类型并加以强制转换: Employee e=(Employee) obj; 这时可以对·E进行一系列的操作 在Java中,只有基本类型(数值,字符,布尔类型的值)不是对象 像所有的数组类型,不管是对象数组还原创 2021-10-25 17:04:46 · 475 阅读 · 0 评论 -
Java学习(继承)——泛型数组列表
目录声明数组列表访问数组列表元素类型化与原始数组列表的兼容性 泛型数组列表的引入 在别的语言里面,通常需要在编译时就确定数组的大小,这样的情况会让我们很为难,有时候一个员工数组里面可能只有一个人,但是这个数组的大小是100,这无疑浪费了存储空间,有时这个数组的大小只有100,但是如果有一个150人的大型部门就很难办了。 但在Java中,情况就好多了,它允许在运行时确定数组的大小 在Java中最简单的方法就是使用Java的另一个类ArrayList。A原创 2021-10-25 21:48:40 · 362 阅读 · 0 评论 -
Java学习(继承)——对象包装器,自动开/装箱,参数数量可变,枚举类
对象包装器与自动装箱 有时候需要将int这样的基本类型转换为对象。所有的基本类型都有着与之对应的类,像Integer类对应着基本类型int。通常这些类称为包装器 这些包装器有显而易见的名字,Integer,Long,Double,Float,Short,Byte,Character,Boolean(前留个类派生于公共的超类Number) 包装器类是不可变的,即一旦构造了包装器,就不允许更改包装在其中的值。 同时包装器类还是final,因此不能派生它们的子类 假设原创 2021-10-26 15:54:50 · 188 阅读 · 0 评论 -
Java学习(继承)——继承的设计技巧
1.将公共操作和字段放在超类中 就是将名字字段放在Person字段中,而没有把他重复的放在Employee和Student类中 2.不要使用受保护字段 protected机制并不能带来更多的保护 子类集合时无限制的,任何一个人都能够派生出这个类的子类,从而访问protected实例字段,从而破坏了封装性 在Java中,在同一个包的所有类都能访问受保护字段,而不需要知道是否是这个类的子类。 3.使用继承实现“is-a”关系 使用继承很容易达到节省代码的原创 2021-10-26 19:51:17 · 341 阅读 · 0 评论 -
Java学习——接口
接口的概念 什么是接口? 接口就是一种公共的规范标准,只要符合标准,大家都能使用 Java的接口更多的体现的是对行为的抽象 接口不是类 接口的定义 接口的定义用关键字interface public interface Compareble{ ...} 接口的属性(特点) 接口绝不会有实例字段 接口只有方法的定义,方法的实现交给实现接口的类 接口本身就是一个抽象的内容,不能被实例化.原创 2021-11-01 22:49:41 · 350 阅读 · 0 评论 -
Java学习——内部类
什么是内部类? 内部类就是在一个类中定义另一个类,像在类A的内部定义一个类B,类B就称为内部类 内部类格式 创建内部类的格式: public class 类名{ 修饰符 class 类名{ }}内部类的访问特点 内部类能直接访问外部类的成员,甚至是私有成员 外部类访问内部类必须要创建对象 成员内部类 在外部类的成员位置的内部类称为成员内部类 外界创建成员内部类的格式: 外部类名.内部类名 对象名=外部类对象.内部类对象...原创 2021-11-16 15:30:44 · 961 阅读 · 0 评论 -
Java学习——异常
Java异常机制原创 2021-11-19 10:30:02 · 330 阅读 · 0 评论 -
Java学习———使用异常的技巧
Java的使用异常技巧原创 2021-11-19 13:33:06 · 348 阅读 · 0 评论 -
Java学习———泛型程序设计
为什么要用泛型程序设计 泛型程序设计意味着编写的代码可以对多种不同类型的对象重用。 例如,你并不想为收集String和File对象编写不同的类。实际上也不需要这样做,因为一个ArrayList类就能收集任何类的对象。这就是泛型程序设计的一个例子。 类型参数的好处 泛型提供了一个更好地解决方案,类型参数。ArrayList类有一个类型参数用来指示元素的类型。 Var a=new ArrayList<String>(); 这使得代码具有更好地可读性。人们一看就知道原创 2021-11-29 14:04:33 · 655 阅读 · 0 评论 -
Java学习——集合的使用(一)
集合体系结构 单列集合Collection(泛型接口) 可重复集合List(继承了Collection的子接口) ArrayList(实现了List接口的泛型类) LinkedList(实现了List接口的泛型类) 不可重复集合Set(继承了Collection的子接口) HashSet(实现了Set接口的泛型类) TreeSet(实现了Set接口的泛型类) 双列集合Map原创 2021-11-29 14:16:19 · 263 阅读 · 0 评论 -
Java学习——集合的使用(二)
List集合 List概述 它是一个有序集合(序列)用户可以精准的控制每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素 与Set集合不同,列表允许出现重复的数组 List特点 有序:存储的和取出的元素顺序一致 可重复:存储的元素可以重复 List特有方法 add(int index,E e):将指定的元素插入到列表的指定位置 若超过现有的数组长度,则报错,插入后,插入位置之后原创 2021-11-29 14:21:36 · 248 阅读 · 0 评论 -
Java学习——集合的使用(三)
Set集合 set集合特点: 不包含重复元素的集合 没有带索引的方法,所以不能使用for循环遍历 创建集合对象,使用Set接口的泛型实现类HashSet HashSet对迭代的顺序不做任何保证(例如,添加的顺序时1,2,3输出可能是2,3,1) 关于哈希值 哈希值是JDK根据对象的地址或者字符串或者数字,算出来的int类型的数值 Object类中有一个方法,hashCode(),可以获取对象的哈希值 has原创 2021-11-29 14:26:04 · 436 阅读 · 0 评论 -
Java学习——集合的使用(四)
Map集合 Interface Map<K,V> K:键的类型 V:值的类型 将键映射到值得对象,不能包含重复的键,每个键最多映射到一个值 HashMap能将键值对设置为null类型HashTable不能将键值对设置为null类型 Map集合得基本功能 put方法:添加元素,若元素存在,则修改元素得值 remove方法:移除键值对 clear方法:从此映射中删除所有映射 Size方法:返回键值对的数量原创 2021-11-29 14:29:26 · 132 阅读 · 0 评论 -
Java学习——集合的使用(五)
Comparable此接口对实现它的每个类的对象强加一个总排序。 这种排序被称为类的自然顺序 ,类的compareto方法被称为其自然比较方法 自然排序Compareable的使用 用TreeSet集合存储自定义的对象,无参构造方法使用的是自然排序对元素进行排序的。 自然排序,就是让元素所属的类实现Compareable接口,重写compareTo(T o)方法 重写方法时,一定要注意排序规则必须按照要求的主要条件和次要条件来写。 案例:存原创 2021-11-29 14:35:31 · 175 阅读 · 0 评论 -
Java学习——集合的使用(六)
Collections类 概述 public class Collections extends Object Collections是针对集合操作的工具类 Collections类的常用方法 public static <T extends Comparable<? super T>> void sort(List <T> list):将指定的列表按照升序进行排列 public static void reverse(Lis原创 2021-11-29 14:38:01 · 239 阅读 · 0 评论 -
Java学习7--IO
java学习——IO原创 2022-06-07 21:37:25 · 234 阅读 · 1 评论 -
Java学习——File类
Java学习——File类原创 2022-06-06 11:54:13 · 287 阅读 · 0 评论 -
常用类-Arrays类
【代码】常用类-Arrays类。原创 2024-04-07 17:00:06 · 421 阅读 · 0 评论 -
常用类-String类
常用类-String类原创 2024-04-07 17:01:23 · 257 阅读 · 0 评论 -
常用类-StringBuilder类
常用类-StringBuilder类原创 2024-04-07 17:02:04 · 300 阅读 · 0 评论 -
常用类-Math类
常用类-Math类原创 2024-04-07 17:05:06 · 312 阅读 · 0 评论 -
常用类-BigDecimal类
常用类-BigDecimal类原创 2024-04-07 17:03:39 · 319 阅读 · 0 评论