Java
文章平均质量分 61
Java学习
Listener-1379
全栈工程师
展开
-
【Java高级】利用反射机制获取类的所有信息
对象的getModifiers(),会返回一个数字,该数字代表一个修饰符,我们可以将该数字作为参数传给Modifier.toString(),这个方法会返回修饰符的字符串形式。普通方法与构造方法类似,只是名字由constructor换成method。而且普通方法多了返回值类型。我们知道反射机制能帮助 我们操作字节码文件,所以如下将总结一些相关的方法去一一获取类的相关信息。注意小标题与方法的对应。一个User类足以。原创 2024-03-24 01:03:09 · 1095 阅读 · 0 评论 -
【Java高级】动态绑定机制
当调用对象的方法时,该方法会和该对象的内存地址/运行绑定。当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用。原创 2023-03-29 11:21:19 · 63 阅读 · 0 评论 -
【Java高级】多线程基础
什么时候数据在多线程并发的环境下存在安全问题?条件1:多线程并发条件2:有共享数据条件3:有共享数据的修改问题解决方案:线程同步机制异步编程模型 vs 同步编程模型。原创 2023-03-21 09:27:50 · 355 阅读 · 0 评论 -
【JAVASE】注解
Java中注解详解以及实际开发中的作用。原创 2023-03-02 21:51:37 · 290 阅读 · 0 评论 -
【JavaSE】集合(Map)
java的Map集合原创 2023-03-01 14:04:27 · 216 阅读 · 0 评论 -
【JavaSE】集合(Collection类)
Collection集合,包括List,Set,以及它们的实现类ArralList, LinkList, Vector, HashSet, TreeSet原创 2023-02-27 18:17:43 · 545 阅读 · 0 评论 -
【JavaSE】复习(进阶)
java进阶知识原创 2023-02-26 10:36:55 · 855 阅读 · 0 评论 -
【JavaSE】复习(基础)
JavaSE基础复习原创 2023-02-24 13:14:22 · 422 阅读 · 0 评论 -
【Java高级】反射(下)
文章目录1.获取Field1.获取Field原创 2021-08-28 22:47:23 · 96 阅读 · 0 评论 -
【Java高级】反射(上)
文章目录1.反射机制的作用2.反射机制的相关类3.获取Class的三种方式4.通过反射实例化对象5.通过读属性文件实例化对象6.使用forName只让静态代码块执行1.反射机制的作用通过java语言中的反射机制可以操作(读或者修改)字节码文件。通过反射机制可以操作代码片段(class文件)。2.反射机制的相关类(1)所在包:java.lang.reflect(2)相关类:java.lang.Class: 代表整个字节码,代表一个类型。代表一个类型。java.lang.reflect.Met原创 2021-08-26 11:40:24 · 250 阅读 · 0 评论 -
【Java高级】泛型
文章目录一.泛型介绍二.例子三.引入泛型四.泛型优缺点五.类型自动推断六.泛型方法七.泛型类八.泛型接口九.边界限定一.泛型介绍(1) 是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。(2)泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。二.例子我们这里有一个案例,我们创建一个集合,然后将new出来的不同对象放到同一个集合当中。我们注意到(1)行的obj只能是Object类型。所以我们如果想要调用Animal或者C原创 2021-07-07 17:09:29 · 79 阅读 · 0 评论 -
【JAVA高级】集合框架(二.Map)
文章目录一.Map概述二.Map框架三.小结一.Map概述Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。二.Map框架(1)key和value都是存储java对象的引用。(2)key的特点是无需不可重复。(3)Map集合的key与Set集合存储结构相同。HashMap底层采用哈希表这种数据结构,非线程安全。Hashtable底层也是采用哈希表,线程安全,但效率低。Properties原创 2021-07-05 00:08:35 · 275 阅读 · 0 评论 -
【JAVA高级】集合框架(一.collection)
文章目录一.集合概述二.集合框架初步三.Iterator四.实现类初步一.集合概述集合是一个容器,存储的是对象的引用,通俗来说存储的是对象的地址。Java中不同的集合底层对应不同的数据结构,就好比不同仓库的架子摆放的位置不同,存储东西的方式也不同。集合也可以看做一种对象。比如:new ArrayList 创建一个集合,底层是数组new LinkList 创建一个集合,底层是链表new TreeSet 创建一个集合,底层是二叉树二.集合框架初步集合的所有方法都在Java.lang包之下。原创 2021-07-05 00:08:21 · 132 阅读 · 0 评论 -
【java高级】java.io.OutputStream
文章目录一.概述二.FileOutStream一.概述和java.io.InputStream相反,java.io.OutStream是java标准库提供的最基本的输出流,它是一个抽象类,是所有输出流的超类。其中有一个write()方法,会写入输出流的下一个字节,写入int值(0~255)。二.FileOutStream与FileInputStream类似,这里只是简单说明一下区别。package com.sdnu.project1;import java.io.FileOutputStream原创 2021-05-24 21:25:04 · 520 阅读 · 0 评论 -
【java高级】java.io.InputStream
FileInputStream概述我们通过查看FileInputStream的官方文档,我们主要看第三个构造函数。主要看一下read()函数。package com.sdnu.project1;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;/** * @author Beyong * @Description FileInputStream原创 2021-05-24 20:37:34 · 1401 阅读 · 1 评论 -
【java高级】万字超详解异常
文章目录一.异常概述二.Java中异常以类和对象的形式存在三.异常的继承四.编译时异常及运行时异常的区别五.异常的两种解决方案一.异常概述我们先看一个简单的demo.package com.sdnu.project1;import javax.xml.bind.SchemaOutputResolver;/** * @author Beyong * @Description Exception * @date 2021/05/22 10:18 */public class Demo1原创 2021-05-23 09:42:27 · 109 阅读 · 1 评论 -
【Java高级】深入浅出谈Object类
文章目录一.什么是Object类二.Object的特点三.Object一.什么是Object类Object是java中每一个类的“始祖”,每一个类都是由它扩展而来的。就像我们常说我们人类的祖先是亚当,夏娃,那就是我们都是由亚当夏娃衍生而来的。在Java中,只有基本数据类型不是对象,其他类型都是对象,都扩展了Object类。二.Object的特点Object类位于java.lang包中,因为java.lang包在编译时自动导入,所以我们的Object类也会自动导入。Object有两原创 2021-05-08 23:34:52 · 925 阅读 · 1 评论 -
Java---包(package)详解(包含各种编译运行问题)
文章目录一.包的简介二语法三.命名规范四.编译运行方法一一.包的简介Java中为了更加方便地对类进行管理,(比如将不同功能的类放到不同软件包当中,相似功能的类放到相同的包当中,便于查找等)提供了包机制。二语法package pkg1[.pkg2[.pkg3…]];三.命名规范1.公司域名倒序+项目名+模块名+功能名(防止出现重名,因为域名具有唯一性)2.全部都要小写。四.编译运行方法一编译前hello World的源程序:package chapter1;publ原创 2021-04-23 23:16:25 · 1540 阅读 · 0 评论 -
JavaSE进阶:抽象类
文章目录一.定义二.代码示例一.定义概述:抽象类是在类的基础之上进行抽象,但是抽象类不能实例化对象,因为类是不存在的。抽象类的语法定义为:[修饰符列表] abstract class 类名{【类体】}抽象类属于的数据类型:引用数据类型二.代码示例1.抽象类不能实例化对象public class Test3 { public static void main(String args[]) { Account p1 = new Account();原创 2021-03-11 12:34:37 · 117 阅读 · 0 评论 -
JavaSE进阶:final修饰符
文章目录一.final修饰的类无法继承一.final修饰的类无法继承示例:public class TestFinal { public static void main(String args[]) { }}final class TestA{ }class TesrB extends TestA{ }错误提示:The type TesrB cannot subclass the final class TestAfinal修饰的类为最终类,该类不能原创 2021-03-08 20:44:54 · 319 阅读 · 0 评论 -
Java学习:十四.super---内存分析
文章目录一.程序内存分析二.this和super指向同一变量三.子类型与父类型有相同变量四.子类调用父类一.程序内存分析public class SuperTest03 { public static void main(String[] args) { CreditAccount ca1 = new CreditAccount(); System.out.println(ca1.getActno() + "," + ca1.getBalance()); Credi原创 2021-02-20 20:23:04 · 207 阅读 · 0 评论 -
Java学习:十四.super初步
文章目录一.super和this二.综合案例一.super和this举例1:public class SuperTest01 { public static void main(String[] args) { new B(); }}class A{ public A(){ System.out.println("A的构造方法"); }}class B extends A{ public B() { System.out.println("B的构造方法"); }原创 2021-02-19 19:14:57 · 134 阅读 · 0 评论 -
Java学习:十三.方法覆盖和多态---多态在开发中的作用
首先,我们有一个主人类,它喜欢养狗,程序如下:public class Dog { public void eat() { System.out.println("狗爱啃骨头"); }}public class Master { public void feed(Dog d) { d.eat(); }}public class Test02 { public static void main(String[] args) { Ma原创 2021-02-18 15:34:47 · 90 阅读 · 0 评论 -
Java学习:十三.方法覆盖和多态---多态
文章目录一.向上转型和向下转型二.举例分析三.向下转型四.instanceof判断一.向上转型和向下转型其实,无论是向上转型还是向下转型,两个类型之间必须有继承关系。注意:向上转型:自动类型转换向下转型:强制类型转换,需要强制类型转换符二.举例分析public class Animal { public void move() { System.out.println("动物在移动"); }}public class Cat extends Animal{原创 2021-02-17 23:59:04 · 178 阅读 · 0 评论 -
Java学习:Error: A JNI error has occurred, please check your installation and try again
在使用cmd运行.class文件时发生错误:Error: A JNI error has occurred, please check your installation and try againException in thread “main” java.lang.UnsupportedClassVersionError: Test01 has been compiled by a more recent version of the Java Runtime (class file versio原创 2021-02-17 14:15:37 · 655 阅读 · 0 评论 -
Java学习:十三.方法覆盖和多态---方法覆盖
文章目录一.方法覆盖的概念二. 方法覆盖的规则一.方法覆盖的概念方法覆盖也叫做重写,重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变二. 方法覆盖的规则 参数列表与被重写方法的参数列表必须完全相同。 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类(java5 及更早版本返回类型要一样,java7 及更高版本可以不同)。 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为 public,那么在子类中重写该方法就原创 2021-02-16 13:17:14 · 226 阅读 · 0 评论 -
Java学习:十二.继承
文章目录一.继承的作用二.继承的相关特性三.继承格式四.继承类型一.继承的作用(1)子类继承父类。代码可以得到复用(2)有了继承,才有后面的方法覆盖和多态机制二.继承的相关特性(1)B类继承A类,则称A类为父类,超类,基类。B类为子类,派生类,扩展类。(2)Java中的继承只支持单继承,不支持多继承。(3)子类继承父类,除了构造方法和private修饰的变量,方法不能继承外,剩下的都可以继承。(5)如果某类不写继承了谁,则默认继承Object类。(4)提高了类之间的耦合性(继承的缺点,耦合原创 2021-02-15 19:41:37 · 78 阅读 · 0 评论 -
Java学习:十一.this和static---this的使用
文章目录一.使用this引用隐藏数据域二.使用this调用构造方法一.使用this引用隐藏数据域先来看一段程序:public class ThisTest03 { public static void main(String[] args) { Student s = new Student(); s.setNo(111); s.setName("张三"); System.out.println("学号:" + s.getNo());原创 2021-02-15 12:26:26 · 124 阅读 · 0 评论 -
Java学习:十一.this和static---this的内存结构
关键字this是指向调用对象自身。先来看一段程序public class ThisTest01 { public static void main(String[] args) { Customer c1 = new Customer("张三"); Customer c2 = new Customer("李四"); c1.shopping(); c2.shopping(); }}class Customer{ String name; p原创 2021-02-15 10:16:43 · 71 阅读 · 0 评论 -
Java学习:十一.this和static---实例代码块
一.语法格式{Java代码块1;Java代码块2;…}二.特点只要调用构造函数,必然在构造函数调用之前调用实例代码块。public class InstanceTest { public static void main(String[] args) { System.out.println("main begin"); new InstanceTest(); new InstanceTest("w"); new InstanceTest();原创 2021-02-15 09:23:48 · 73 阅读 · 1 评论 -
Java学习:十一.this和static---静态代码块
一.语法格式static{java语句;java语句;…}二.特点类加载时执行,并且只执行一次。那么静态代码块什么时候执行呢?下面来看一段代码:public class StaticTest { static { System.out.println("A"); } public static void main(String[] args) { //程序入口 System.out.println("B"); m1(); Stat原创 2021-02-15 01:23:23 · 154 阅读 · 0 评论 -
Java学习:十一.this和static---什么时候使用静态变量(内存分析)
先来看一段程序:public class StaticTest02 { public static void main(String args[]) { Chinese c1 = new Chinese("1231456456456456","张三","中国"); System.out.println(c1.name); System.out.println(c1.idCard); System.out.println(c1.country); C原创 2021-02-14 16:44:52 · 131 阅读 · 0 评论 -
Java学习:十一.this和static---static初步
文章目录一.概括二.局部变量三.类变量四.实例变量五.难点解析六.方法类型七.总结一.概括举例:public class Project4 { int i = 5; /*i是实例变量**/ static int k = 2; /*k是类变量**/ public static void main(String[] args) { Project4 a = new Project4(); int j = a.i; /*j在名为main的方法原创 2021-02-14 16:20:12 · 62 阅读 · 0 评论 -
Java学习:九.对象的创建和使用---属性是引用类型怎么访问
先来看下面的一段程序public class T{ A o1; public static void main(String[] args){ A a = new A(); B b = new B(); C c = new C(); D d = new D(); T t = new T(); c.o4 = d; b.o3 = c; a.o2 = b; t.o1 = a; S原创 2021-02-14 12:34:23 · 113 阅读 · 0 评论 -
Java学习:十.封装
文章目录一.封装的作用二.不封装的缺点三.使用关键字private进行封装四.set方法和get方法的封装一.封装的作用1.保护内部结构的安全2.屏蔽复杂,暴露简单二.不封装的缺点先来看一段程序public class Person { int age;}public class PersonTest { public static void main(String[] args) { Person p1 = new Person(); p1.age原创 2021-02-13 00:12:43 · 106 阅读 · 0 评论 -
Java学习:七.方法---方法执行时内存变化(手绘图)
先运行一下演示程序。public class MethodTestu08 { public static void main(String[] args) { System.out.println("main begin"); int x = 100; m1(x); System.out.println("main over"); } public static void m1(int i) { System.out.println原创 2021-02-12 16:14:42 · 119 阅读 · 0 评论 -
Java学习:九.对象的创建和使用---内存图(2)
先来运行下面的程序:public class Address { String city; String street; /**邮编*/ String zipcode;}public class User { int id; String username; Address addr;}public class Test { public static void main(String[] args) { /**家庭原创 2021-02-12 11:38:41 · 112 阅读 · 1 评论 -
Java学习:九.对象的创建和使用---空指针异常
错误原因:空指针异常实例程序:public class Project6 { int id;}public class Project5 { public static void main(String[] args) { Project6 student = new Project6(); System.out.println(student.id); System.out.println("----------1----------");原创 2021-02-11 18:31:40 · 276 阅读 · 0 评论 -
Java学习:九.对象的创建和使用---内存图(1)
先上代码:public class Student { int no; //1.学号 String name;//2.姓名 int age; //3.年龄 boolean sex;//4.性别 String addr;//5.地址}public class OOTest01 { public static void main(String[] args) { int i = 10;//1.创建局部变量i,并且给i赋初值10. System.ou原创 2021-02-09 19:38:14 · 69 阅读 · 0 评论 -
Java学习:四.数据类型---基本数据类型与引用数据类型
文章目录一.基本数据类型二.引用数据类型一.基本数据类型1)整数型: byte:1 short:2 int:4 long:82)浮点型: float:4 double:83)布尔型:boolean:14)字符型:char:2注:后面的数据代表所占的空间。单位:字节.表示范围:二.引用数据类型类接口数组字符串......原创 2021-02-09 16:32:01 · 76 阅读 · 0 评论