
Java学习笔记——基础知识
文章平均质量分 89
记录 Java 学习过程中的一些重要概念,类与关键字,相似方法的区别等等
TheManba
You can do anything you want to, if you really want it.
展开
-
Java 泛型的理解
Java 泛型是 JDK5 引入的一个新特性,泛型提供了编译时类型安全检测机制,使得程序员能在编译期检测到非法的数据类型。泛型的格式:<数据类型>泛型的本质是参数化类型,就是给类型指定一个参数,使用的时候在指定参数具体的值。比如// 创建一个String类型的list// 创建一个Integer类型的list泛型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。泛型的数据类型只能填写引用数据类型,不可以使用基本数据类型;指定泛型的具体类型之后,可以传入该类类型或其子类类型的对象。原创 2024-08-31 10:47:42 · 784 阅读 · 1 评论 -
Java 注解和反射
注解是 JDK 5.0 引入的新技术。注解是不是程序本身,但可以对程序做出解释;可以被其他程序(比如编译器)读取。注解是以 “@注解名” 在代码中存在,还可以添加一些参数,例如 @SuppressWarnings(value=“ubchecked”)。可以加在 package、class、method、field 等上面,相当于给他们添加额外的信息;我么可以通过反射机制编程实现对这些元数据的访问。使用@interface自定义注解时,自动继承了接口。@interface用来声明一个注解;原创 2024-05-22 23:24:01 · 901 阅读 · 1 评论 -
字符串 - 正则表达式
文章目录1、不可变 String2、“+” 和 StringBuilder 类(字符串变量)1、不可变 StringString 对象是不可变的。String 类中每一个看起来会修改 String 值的方法,实际上都是创建了一个全新的 String 对象,以包含修改后的字符串内容,而最初的 String 对象丝毫未动。下图为对字符串进行操作时内存的变化:2、“+” 和 StringBuilder 类(字符串变量)String 对象的不可变性会带来效率问题。为 String 对象重载的 “+” 操原创 2020-07-21 19:57:55 · 2995 阅读 · 0 评论 -
Java 语法糖
文章目录一、什么是语法糖?二、解语法糖三、Java 语法糖1、泛型与类型擦除示例一:示例二:2、switch 支持 String3、自动装箱与拆箱(1)自动装箱测试代码:(2)自动拆箱测试代码:4、foreach 循环5、内部类6、枚举一、什么是语法糖?语法糖,又称糖衣语法,是英国计算机科学家发明的一个术语,指在计算机语言中加入某种语法,这种语法对语言的功能并没有影响,但是方便了程序员的操作,...原创 2020-04-21 15:35:02 · 1482 阅读 · 0 评论 -
Java 中的重写与重载
1、重写(Override)重写发生在子类与父类之间。 子类重写父类的方法时:方法名和参数列表: 必须相同;返回类型: 要么返回类型相同,要么子类方法的返回类型是父类方法返回类型的子类;访问权限: 子类方法的访问修饰符要大于或者等于父类被重写方法的访问修饰符(public > protected > default > private);抛出异常时: 子类重写方法的抛...原创 2020-04-20 18:30:51 · 1173 阅读 · 0 评论 -
Java 异常处理机制
文章目录1、通过异常处理错误2、捕获异常(try、catch 关键字)2.1 try 块2.2 异常处理程序3、抛出异常(throw 关键字)4、异常说明(throws 关键字)5、Java 标准异常5.1 Java 异常类框架5.2 Java 异常分类6、创建自定义异常7、使用 finally 进行清理1、通过异常处理错误Java的基本理念是“结构不佳的代码不能运行”。发现错误的理想时机是...原创 2020-04-08 12:45:15 · 273 阅读 · 0 评论 -
Java 中的访问修饰符
Java 中的访问修饰符Java 面向对象的基本思想之一是封装细节并且公开接口,所以 Java 采用访问控制修饰符来控制类、方法以及变量的访问权限。访问修饰符分为四种级别:(1)public: 用 public 修饰的类、变量以及方法,包内和包外的任何类(包括子类和普通类)均可以访问;(2)protected: 用 protected 修饰的类、变量以及方法,包内的任何类及包外那些继承了该...原创 2020-04-06 08:41:09 · 227 阅读 · 0 评论 -
Java 的三大标准注解
Java 内置了三种标准注解,定义在 java.lang 中:@Override表示当前的方法定义将覆盖父类中的方法。如果写错了覆盖形式,编译器就会报错。@Deprecated表明不希望别人再使用它注解的元素(类、方法、变量等等)。如果程序员使用了它注解的元素,编译器就会报错。@Suppresswarnings关闭不当的编译器警告信息。但是不建议使用,因为程序员看不到编译器提示的警告,...原创 2020-04-05 10:05:28 · 236 阅读 · 0 评论 -
Java 的反射机制
文章目录一、什么是反射?二、反射的基本功能三、反射的使用1、通过 Class 类获取类对象2、通过 Constructor 类获取类的构造方法3、通过 Field 类获取成员变量4、通过 Method 类获取成员方法一、什么是反射?Java 的反射机制,就是在运行状态中,对于任意一个类,都能够知道它的所有属性和方法;对于任意一个对象,都能够调用它的任意一个属性和方法;这种动态获取信息...原创 2020-04-04 21:06:28 · 166 阅读 · 0 评论 -
Math 类四个常用方法 round、floor、ceil 和 rint 的区分
可以用 y 轴上的数(正数在上,负数在下)去理解向上取整和向下取整。1、Math.round(double a)round 方法,就是我们通常说的“四舍五入”,但这是对于正数来讲的。如果参数为负数时,就不太好理解。round 函数源码的计算过程是给参数加 0.5 然后向下取整。测试:System.out.println(Math.round(3.2));// 3System.out.pr...原创 2020-04-03 15:44:39 · 751 阅读 · 0 评论 -
Java 中 == 和 equals() 的区别
Java 中 == 和 equals 的区别如果用 “==” 比较基本数据类型的变量(byte,short,char,int,long,float,double,boolean),则直接比较其存储的 “值”是否相等(基本数据类型是不能用 equals 方法的);如果用 “==” 比较引用数据类型的变量,则比较的是变量所指向的对象的地址。如果是同一个 new 出来的对象进行比较,结果为 tru...原创 2020-04-03 14:19:01 · 123 阅读 · 0 评论 -
Java 中 & 和 && 的区别
& ——按位与& 既是位运算符也是逻辑运算符;& 的两侧是 int 型时,& 作为位运算符,先把运算符两侧的数转化为二进制数再进行按位与运算;& 的两侧是布尔表达式时,& 作为逻辑运算符。& 结果为真的条件是两侧表达式都为真,但是即使我们判断出左侧表达式的值为 false,程序还会继续执行,去判断右侧的表达式值的真假;&&...原创 2020-04-03 13:41:02 · 205 阅读 · 0 评论 -
Java 中的字节(Byte)和位(Bit)以及基本数据类型各占多少字节
一、字节(Byte)和位(Bit)1、Java 中的字节容量关系1 GB = 1024 MB,GB:千兆1 MB = 1024 KB,MB:兆1 KB = 1024 B,KB:千字节,B 是 Byte 的缩写,即字节。2、字节(Byte)和位(Bit)的关系(1)Bit——Binary Digit(二进制数位)的缩写,叫作“位”或“比特”,是计算机运算的基础。Bit 代表二进制数位,取...原创 2020-03-19 17:44:17 · 24654 阅读 · 0 评论 -
配置 Java 环境变量(JDK 和 JRE 的区别)
一、Java 环境变量1、PATH 变量——指定命令搜索路径在 shell 下面执行命令时,它会到 PATH 变量所指定的路径中查看是否能找到相应的命令程序。我们需要把 jdk 安装目录下的 bin 目录增加到现有的 PATH 变量中,bin 目录中包含常用的可执行文件有javac/java/javadoc等,设置好 PATH 变量后,就可以在任何目录下执行 javac/java 等命令,否则...原创 2020-02-22 10:34:43 · 984 阅读 · 1 评论 -
Java 中的 static 关键字和 final 关键字
内容来自《java 编程思想》。1、static 关键字“static 方法就是没有 this 的方法。在 static 方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用 static 方法。这实际上正是 static 方法的主要用途”。static 关键字的基本作用,一句话来描述就是:方便在没有创建对象的情况下来进行调用(方法/变量)。(...原创 2020-02-22 09:47:56 · 141 阅读 · 0 评论 -
位运算
一、进制表示1、进制进制是一种记数方式 ,可以用有限的数字符号代表所有的数值。由特定的数值组成。2、进制的表现形式二进制: 由 0 和 1 两个数字组成,都是以 0b 开始;八进制: 由 0~7 数字组成,为了区分于其他进制的数字,都是以 0 开始;十进制: 都是以 0~9 这九个数字组成,不能以 0 开头;十六进制:由 0 ~ 9 和 A~ F 组成,为了区分于其他进制的数字,...原创 2020-02-21 17:46:24 · 1094 阅读 · 0 评论 -
Java 中的 break、continue 和 return 的区别
break——跳出当前循环(用于选择结构或循环结构)使用 break 语句的目的是让程序立刻跳出当前循环。注意:如果是嵌套循环,且 break 语句是在最里面的那个循环,那么程序执行到这个 break 语句后跳出的是最里面这个的循环。(1)在循环的代码块里,break 语句与 if 语句结合使用,当某个特定条件满足时,程序就立刻跳出这个循环。示例如下:for (int i = 0; i &...原创 2020-02-17 17:49:42 · 239 阅读 · 0 评论 -
Java 中的 switch 语句
一、switch基础语法switch(表达式){ case 表达式常量1: 语句1; break; case 表达式常量2: 语句2; break; ...... case 表达式常量n: 语句n; break; [default:语句n+1;] }其中,一个 case 表达式常量称为标号,代表一个 case 分支的入口。switch 语句在运行时首先计算 swi...原创 2020-02-15 18:06:36 · 10336 阅读 · 2 评论 -
Java 中 newInstance() 和 new 的区别
Class类下的 newInstance() 和 new 有什么区别呢?首先,newInstance( ) 是一个方法,而 new 是一个关键字;其次,Class 下的 newInstance() 的使用有局限,因为它生成对象只能调用无参构造函数,而使用 new 关键字生成对象没有这个限制。...原创 2020-02-15 17:20:49 · 156 阅读 · 0 评论 -
Comparable 接口和 Comparator 接口的区别及 sort()方法的使用
一、概述Java 提供的 Comparable 和 Comparator 接口都是为我们解决比较两个对象的问题,都能实现数组和集合的排序。两者也有所区别:Comparable 接口位于包 java.lang 下;Comparator 接口位于包 java.util 下。Comparable 接口本身支持自比较,可以直接调用,是内部定义的排序;Comparator 接口要在一个独立的类中实...原创 2020-02-20 10:14:36 · 416 阅读 · 0 评论 -
接口与抽象类的区别
1、抽象类(1)抽象类的方法不一定全部都是抽象的方法,有些方法是可以自己先实现,之后子类直接使用就好。也就是说,其实一个抽象类可以完全就没有抽象方法,就只有在类名前面加上一个abstract 就好。 但这样没什么实际性的必要。(2)抽象类不能创建实例对象,但是可以有自己的构造方法。这两者看上去似乎有些矛盾,但是其实也是合理的。因为抽象类是可以有自己的成员变量的,之后子类继承之后,还得调用父类的...原创 2020-02-15 17:27:34 · 114 阅读 · 0 评论