Java反射(Reflection)
Java 反射(Reflection)Java 反射(Reflection)是一个强大的特性,它允许程序在运行时查询、访问和修改类、接口、字段和方法的信息。反射提供了一种动态地操作类的能力,这在很多框架和库中被广泛使用,例如Spring框架的依赖注入。反射 APIJava 的反射 API 提供了一系列的类和接口来操作 Class 对象。主要的类包括:java.lang.Class:表示类的对象。提供了方法来获取类的字段、方法、构造函数等。java.lang.reflect.Field:表示类的字段(属性)。提供了访问和修改字段的能力。java.lang.reflect.Method:表示类的方法。提供了调用方法的能力。java.lang.reflect.Constructor:表示类的构造函数。提供了创建对象的能力。工作流程获取 Class 对象:首先获取目标类的 Class 对象。获取成员信息:通过 Class 对象,可以获取类的字段、方法、构造函数等信息。操作成员:通过反射 API 可以读取和修改字段的值、调用方法以及创建对象。 以下是 Java...
Java包(package)
Java 包(package)为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。包的作用1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。 包语句的语法格式为: package pkg1[.pkg2[.pkg3…]]; 例如,一个Something.java 文件它的内容 package net.java.util;public class Something{ …} 那么它的路径应该是 net/java/util/Something.java 这样保存的。 package(包)...
Java修饰符
Java 修饰符Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符非访问修饰符 修饰符用来定义类、方法或者变量,通常放在语句的最前端。我们通过下面的例子来说明: public class ClassName {// …}private boolean myFlag;static final double weeks = 9.5;protected static final int BOXWIDTH = 42;public static void main(String[] arguments) {// 方法体} 访问控制修饰符 Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。 default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)public : 对所有类可见。使用对象:类、接口、变量、方法protected :...
Javaswitchcase语句
Java switch case 语句 switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。语法switch case 语句语法格式如下: switch(expression){case value : //语句break; //可选case value : //语句break; //可选//你可以有任意数量的case语句default : //可选//语句} switch case 语句有如下规则: switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。case...
JavaString类
Java String 类 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。 创建字符串创建字符串最简单的方式如下: String str = “Runoob”; 在代码中遇到字符串常量时,这里的值是 “Runoob”,编译器会使用该值创建一个 String 对象。和其它对象一样,可以使用关键字和构造方法来创建 String 对象。用构造函数创建字符串: String str2=new String(“Runoob”); String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上: String s1 = “Runoob”; // String 直接创建String s2 = “Runoob”; // String 直接创建String s3 = s1; // 相同引用String s4...
JavaStringBuffer和StringBuilder类
Java StringBuffer 和 StringBuilder 类 当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。 在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。实例 public class RunoobTest{public static void main(String[] args){StringBuilder sb = new...
JavaObject类
Java Object 类Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法。 Object 类位于 java.lang 包中,编译时会自动导入,我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 Object 的子类。Object 类可以显式继承,也可以隐式继承,以下两种方式是一样的:显式继承:public class Runoob extends Object{ }隐式继承:public class Runoob { }类的构造函数 序号构造方法 & 描述 1 Object()构造一个新对象。 类的方法 序号方法 & 描述 1protected Object clone()创建并返回一个对象的拷贝 2boolean equals(Object obj)比较两个对象是否相等 3protected void finalize()当 GC (垃圾回收器)确定不存在对该对象的有更多引用时,由对象的垃圾回收器调用此方法。 4Class<?>...
JavaNumber&Math类
Java Number & Math 类一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double 等。 实例 int a = 5000;float b = 13.65f;byte c = 0x4a; 然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java 语言为每一个内置数据类型提供了对应的包装类。所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类 Number 的子类。 包装类 基本数据类型 Boolean boolean Byte byteShort shortInteger intLong longCharacter charFloat floatDouble double 这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number...
JavaMySQL连接
Java MySQL 连接 本章节我们为大家介绍 Java 如何使用 使用 JDBC 连接 MySQL 数据库。Java 连接 MySQL 需要驱动包,最新版下载地址为:http://dev.mysql.com/downloads/connector/j/,解压后得到 jar 库文件,然后在对应的项目中导入该库文件。 你可以下载本站提供的 jar 包:mysql-connector-java-5.1.39-bin.jar本实例使用的是 Eclipse,导入 jar 包: MySQL 8.0 以上版本的数据库连接有所不同: 1、MySQL 8.0 以上版本驱动包版本 mysql-connector-java-8.0.16.jar。2、com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver。MySQL 8.0 以上版本不需要建立 SSL 连接的,需要显示关闭。allowPublicKeyRetrieval=true 允许客户端从服务器获取公钥。 最后还需要设置...
JavaLinkedList
Java LinkedList Java 集合框架链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。链表可分为单向链表和双向链表。一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的链接。 一个双向链表有三个整数值: 数值、向后的节点链接、向前的节点链接。 Java LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。与 ArrayList 相比,LinkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低。 以下情况使用 ArrayList : 频繁访问列表中的某一个元素。只需要在列表末尾进行添加和删除元素操作。以下情况使用 LinkedList : 你需要通过循环迭代来访问列表中的某些元素。需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。LinkedList 继承了 AbstractSequentialList 类。LinkedList 实现了 Queue 接口,可作为队列使用。LinkedList 实现了 List...