自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 收藏
  • 关注

原创 Java Return

【代码】Java Return。

2024-06-02 16:07:08 90

原创 java 可变长度参数

/ false,默认会调用 valueOf(),range [-128, 127]定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。优点:提高软件系统的可复用性及可维护性。用抽象构建框架,用实现扩展细节。

2024-03-14 21:48:40 174

原创 Java 注解2

通过 @Retention 注解设置注解的生命周期,包括 SOURCE(仅保留在源代码中)、CLASS(保留在编译后的字节码文件中)和RUNTIME(保留在运行时,可以通过反射获取)。6、如果一个注解当中有属性,那么在使用该注解的时候必须给属性赋值,除非该属性使用 default 指定了默认值。7、如果一个注解的属性的名字是 value,并且只有一个属性的话,在使用的时候,该属性名可以省略。8、如果一个注解当中有属性,一个注解的属性的名字是 value,并且有多个属性,

2024-03-14 21:19:29 405

原创 java 注解1

如果一个注解当中有属性,那么在使用该注解的时候必须给属性赋值,除非该属性使用 default 指定了默认值。这个注解只能出现在类上面,当这个类上有这个注解的时候,要求这个类中必须有一个 int 类上的 id 属性。如果一个注解的属性的名字是 value,并且只有一个属性的话,在使用的时候,该属性名可以省略。第二:注解可以出现在类上、属性上、方法上、变量上等. . . . .注解还可以出现在注解类型上。// 元注解(因为这个注解是注解的注解,就是放在注解上的注解)用来标注“注解类型”的“注解”,称为元注解。

2024-03-09 22:03:42 347

原创 Java 反射机制 和 绑定属性资源文件

例:“java.lang.String”,"java.util.Date"等。例:“java.lang.String”,"java.util.Date"等。java.lang.reflect.Field:代表字节码中的属性字节码。java.lang.reflect.Constructor:代表字节码中的构造方法字节码。要操作一个类的字节码,需要首先获取到这个类的字节码,怎么获取 java.lang.Class 实例?java.lang.reflect.Method:代表字节码中的方法字节码。

2024-03-07 22:13:08 551

原创 java 关于 JDK 中自带的类加载器

通过类加载器加载,看到以上代码类加载器会找 String.class 文件,找到就加载,扩展类加载器(母加载器,同父加载器一起被称为双亲委派机制):ext/*.jar。如果都加载不到,才会考虑从应用类加载器中加载。代码在开始执行之前,会将所需要类全部加载到 JVM 当中。“父”无法加载到,再从扩展类加载器中加载,这个称为“母”。4、java中为了保证类加载的安全,使用了双亲委派机制。优先从启动类加载器中加载,这个称为“父”。启动类加载器(父加载器):rt.jar。应用类加载器:classpath。

2024-03-07 21:59:35 199

原创 java 关于 Object 类中的 wait 和 notify 方法。(生产者和消费者模式!)

第一:wait 和 notify 方法不是线程对象的方法,是 java 中任何一个 java 对象都有的方法,因为这两个方法是 Object 类中自带的。方法的调用,会让“当前线程(正在 o 对象上活动的线程)”进入等待状态。4、关于 Object 类中的 wait 和 notify 方法。表示:让正在 o 对象上活动的线程进入等待状态,无期限等待,直到被唤醒为止。wait 方法和 notify 方法不是通过线程对象调用的。表示:唤醒正在 o 对象上等待的线程。// 创建一个仓库对象,共享的。

2024-03-04 22:09:10 541

原创 Java 定时器

/ 守护线程的方式,public Timer(boolean isDaemon) {this(“Timer-” + serialNumber(), isDaemon);// 匿名内部类的方式实现使用定时器指定定时任务;//t.schedule(定时任务, 第一次执行时间, 间隔多久执行一次);//t.schedule(定时任务, 第一次执行时间, 间隔多久执行一次);* 即使是死循环,由于该线程是守护着,当用户线程结束,守护线程自动终止。// 守护线程的方式创建定时器指定定时任务。// 创建定时器对象。

2024-03-03 22:28:16 858

原创 Java 多线程2

刚开始时,只有主线程在使用 CPU 的执行权,其它线程还没有被创建,Java 代码是自上而下执行的,所以优先执行主线程。刚开始时,只有主线程在使用 CPU 的执行权,其它线程还没有被创建,Java 代码是自上而下执行的,所以优先执行主线程。实现线程的第二种方式:编写一个类,实现 java.lang.Runnable 接口,实现 run 方法,放入 Thread 的构造器中。实现线程的第一种方式:编写一个类,直接继承 java.lang.Thread,重写 run 方法。run和 main是平级的。

2024-03-02 21:41:10 762

原创 Java 多线程1

3、假设 t1 已经占有这把锁,此时 t2 也遇到 synchronized 关键字,也会去占有后面共享对象的这把锁,结果这把锁被 t1 占有,t2 只能在同步代码块外面等待 t1 的结束,直到 t1 把同步代码块执行结束了,t1 会归还这把锁,此时 t2 终于等到这把锁,然后。不能是其他的对象了。2、假设 t1 先执行了,遇到了 synchronized,这个时候自动找:“后面共享对象”的对象锁,找到之后,并占有这把锁,如果共享的对象就是 this,并且需要同步的代码块就是整个方法体,建议使用这种方式。

2024-02-27 21:34:14 584

原创 非常好的一个设计理念 和 .properties 与 yml(yaml)的区别

非常好的一个设计理念:以后经常改变的数据,可以单独写到一个文件中,使用程序动态读取。将来只需要修改这个文件的内容,java 代码不需要改动,不需要重新编译,服务器也不需要重启。就可以拿到动态的信息。在属性配置文件中“#”是注释。属性配置文件的 key 重复的话,value 会自动覆盖!

2024-02-23 21:17:45 437

原创 java 集合图

2024-02-22 22:05:46 87

原创 Java 序列化

Serializable 这个标志接口是给 java 虚拟机参考的,java 虚拟机看到这个接口之后,会为该类自动生成一个序列化版本号。因为只要修改,必然会重新编译,此时会生成全新的序列化版本号,这个时候 java 虚拟机会人为这是一个全新的类。起到标识的作用,标志的作用,java 虚拟机看到这个类实现了这个接口,可能会对这个类进行特殊待遇。都有默认的序列化版本号,他们的序列化版本号不一样,所以区分开(这是自动生成序列化版本的好处)。这种自动生成的序列化版本号缺点是:一旦代码确定之后,不能进行后续的修改。

2024-02-22 21:35:17 447

原创 二进制、十进制、八进制、十六进制 各代表的英文字母是什么

原文链接:https://blog.csdn.net/londa/article/details/95042482。版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。分类专栏: 其它 文章标签: 二进制、十进制、八进制、十六进制 英文和缩写。二进制、十进制、八进制、十六进制 各代表的英文字母是什么。十六进制为Hexadecimal,简写为H。十进制为Decimal,简写为D。二进制是Binary,简写为B。八进制是Octal,简写为O。

2024-02-22 21:09:07 1111

原创 java 写入写出 zip

/ 创建一个ZipOutputStream对象,用于将文件写入zip文件。// 读取zip文件中的文件。从 zip 文件中读取文件。将文件压缩到 zip 中。

2024-02-21 22:56:38 880

原创 Java IO流

1 Byte = 8 bit 【1个字节 = 8个比特位】1个比特位就是一个1或者一个0,1个比特位就是一个二进制位:1/0,即1或0。调用流对象的哪个方法是读,哪个方法是写。掌握 java 中提供了哪些流,每个流的特点是什么,每个流对象上的常用方法有哪些?使用以上的字节流拷贝文件的时候,文件类型随意,万能的。当一个流的构造方法中需要一个流的时候,这个被传进来的流叫做:节点流。1、文件字节输入流,万能的,任何类型的文件都可以采用这个流来读。外部负责包装的这个流,叫做:包装流,还有一个名字叫做:处理流。

2024-02-04 22:05:38 635

原创 Java 集合

重点:通过讲解可以得出 HashMap 集合的 key,会先后调用两个方法,一个方法是 haseCode(),一个 equals(),那么这两个方法都要重新编写。Properties 是线程安全的,因为继承 Hashtable,另外 Properties 存储元素的时候也是采用 key 和 value 的形式存储,Vector 集合是线程安全的。Hashtable 集合底层也是哈希表数据结构,是线程安全的,其中所有的方法都带有 synchronized 关键字,效率较低,(效率较低,使用较少。

2024-02-03 22:03:24 507

原创 什么是UML?有什么用?

UML 是 Unified Model Language的缩写,中文是统一建模语言,是由一整套图表组成的标准化建模语言。一般画 UML 图的都是软件架构师或者说是系统分析师,这些级别的人员使用的。在 java 软件开发当中,软件分析师/设计师负责设计类,java 软件开发人员必须要能看懂。这个图纸画完,只要是搞建筑的都能看懂,因为这个图纸上标注的这些符号都是一种”标准的语言“。UML 不是只有 Java 中使用,只要是面向对象的编程语言,都有 UML。UML 是一种统一建模语言,一种图标式语言(画图的)

2024-01-21 21:12:40 660

原创 关于 Java 中的 enum 枚举

思考:返回 true 和 false 表示两种情况,但是在以后的开发中,有可能遇到一个方法的执行结果可能包括三种情况,四种情况,五种情况不等,但是每一个都是可以数清楚的,一枚一枚都是可以列举出来的。结果超过两种并且还是可以一枚一枚列举出来的,建议使用枚举类型。1、枚举是一种引用数据类型,枚举编译之后也是生成 class 文件。4、枚举:一枚一枚可以列举出来的,才建议使用枚举类型。枚举值1, 枚举值2, 枚举值3, , , , ,例如:颜色、四季、星期等都可以使用枚举类型。2、枚举类型怎么定义,语法是?

2024-01-19 22:07:03 346

原创 java 中的 BigDecimal

数字格式有哪些?

2024-01-19 21:59:24 346

原创 Java 简单总结一下 System 类的相关属性和方法

System.out.println [println() 方法不是System类的,是PrintStream类的方法。System.currentTimeMillis() 获取自1970年1月1日到系统当前时间的总毫秒数。System.out [out是System类的静态变量]System.gc() 建议启动垃圾回收器。System.exit(0) 退出JVM。

2024-01-17 21:36:51 358

原创 关于 java 中的异常

算术异常 java.lang.ArithmeticException(/by zero)找不到此元素异常 java.util.NoSuchElementException。不支持序列化异常 java.io.NotSerializableException。序列化版本号不一致异常 java.io.InvalidClassException。数组下标越界异常 ArrayIndexOutOfBoundsException。解析异常 java.text.ParseException(现在见到日期)

2024-01-17 21:32:00 390

原创 java 中 8 种基本数据类型与它的包装

1、java中为8种基本数据类型又对应准备了 8 种包装类型。8 种包装类属于引用数据类型,父类是Object。2、思考:为什么要再提供8中包装类呢?因为 8 种基本数据类型不够用。所以 SUN 又提供对应的 8 种包装类型。有可能有这种需求:调用 doSome() 方法的时候需要传一个数字进去。但是数字属于基本数据类型,而 doSome() 方法参数的类型是 Object。可见 doSome() 方法无法接收基本数据类型的数字。那么怎么办呢?可以传一个数字对应的包装类进去。

2024-01-16 22:18:19 340

原创 关于 Java JDK 中内置的一个类:java.lang.String

StringBuilder中的方法都没有:sychronized关键字修饰,表示StringBuilder在多线程环境下运行是不安全的。4、在JDK当中双引号括起来的字符串,例如:“abc”, “def” 都是直接存储在“方法区”的“字符串常量池”当中的。3、java 中规定,双引号括起来的字符串,是不可变的,也就是说 “abc” 自出生到最终死亡,不可变,不建议使用 “+”连接字符串的方式,这样做会给java的方法区字符串常量池带来很大的压力。对于直接声明的字符串,形如:String x = “”;

2024-01-15 22:10:58 457

原创 Java 数组常见的排序和查找算法

1、每一次循环结束之后,都要找出最大的数据,放到参与比较的这堆数据的最右边。2、核心:拿着左边的数字和右边的数字比对,当左边>右边的时候,交换位置。2,3,7,6,8(虽然不需要交换位置:但是3 和7 还需要比较一次。2,3,6,7,8(虽然不需要交换位置:但是7 和8 还需要比较一次。(没有排序的数据是无法查找的。二分法查找的终止条件:一直折半,直到中间的那个元素恰好是被查找的元素。2,3,7,6,8(3和2比较,2<3,所以2和3交换位置)(5 + 9) / 2 --> 7(中间元素的下标)

2024-01-13 21:35:26 596

原创 Java 数组

5、数组当中如果存储的是“java对象”的话,实际上存储的是对象的“引用(内存地址)”,数组中不能直接存储 java 对象。10、数组在内存方面存储的时候,数组中的元素内存地址(存储的每一个元素都是有规则的挨着排列的)是连续的。第一:由于为了保证数组中每个元素的内存地址连续,所以在数组上随机删除或者增加元素的时候,效率较低,可以在创建数组对象的时候预估计以下多长合适,最好预估准确,这样可以减少数组的扩容次数。8、所有的数组对象都有 length 属性(java 自带的),用来获取数组中元素的个数。

2024-01-12 22:02:12 392

原创 java 匿名内部类

/ 该类在类的内部,所以称为内部类。由于前面有 static,所以称为“静态内部类”4、匿名内部类是局部内部类的一种,因为这个类没有名字,所以叫做匿名内部类。5、学习匿名内部类主要是让大家以后在阅读别人代码的时候,能够理解。3、使用内部类编写的代码,可读型很差。内部类:在类的内部又定义了一个新的类,被称为内部类。// 负责计算的接口,接口有构造方法但不能实例化。缺点2:类没有名字,以后想重复使用,不能用。静态内部类:类似于静态变量。实例内部类:类似于实例变量。局部内部类:类似于局部变量。

2024-01-11 21:27:55 326

原创 Java 关于 Object 类中的 finalize() 和 hashCode() 方法

2、finalize() 方法只有一个方法体,里面没有代码,而且这个方法是 protected 修饰的。java 中的垃圾回收器不是轻易启动的,垃圾太少,或者时间没到,种种条件下,有可能启动,也有可能不启动。5、finalize() 方法实际上是 SUN 公司为 java 程序员准备的一个时机,垃圾销毁时机。当一个 java 对象即将被垃圾回收器回收的时候,垃圾回收器负责调用 finalize() 方法。这个时机是垃圾回收时机。3、这个方法不需要程序员手动调用,JVM 的垃圾回收器负责调用这个方法。

2024-01-11 21:21:12 427

原创 什么是API? 和 JavaSE, EE, ME的缩写

整个 JDK 的类库就是一个 javase 的API。每一个API都会配置一套API帮助文档。JavaEE Java企业版,Java Platform Enterprise Edition。JavaSE Java标准版,Java Platform,Standard Edition。(一般每一份API都对应一份API帮助文档。JavaME Java微型版,Java Platform,Micro Edition。Application Program Interface 应用程序编程接口。

2024-01-10 22:15:32 348

原创 java 中类库的根类 Object 与 toString() 和 equals() 方法

java 语言当中的字符串 String 有没有重写 toString() 方法,有没有重写 equals() 方法?以后所有类的 equals 方法也需要重写,因为 Object 中的 equals 方法比较的是两个对象的内存地址,”判断的是两个 java 对象的内存地址,我们应该判断两个 java 对象的内容是否相等。3、我们需要研究一下 Object 类给的这个默认的 equals 方法够不够用!以后判断两个字符串是否相等,最好不要使用 ==,要调用字符串对象的 equals 方法。

2024-01-10 22:13:41 965

原创 Java 访问控制权限

protected 表示只能在本类、同包、子类中访问。public 表示公开的,在任何位置都可以访问。private 表示私有的,只能在本类中访问。以上的4个访问控制权限:控制的范围是什么?默认 表示只能在本类,以及同包下访问。protected 受保护。访问控制权限有哪些?private 私有。

2024-01-09 21:02:25 449

原创 关于 java 语言中的 package 和 import 机制

/ 这个效率不低,因为编译器在编译的时候,会自动把 * 变成具体的类名。类名是:com.bjpowernode.javase.chapter17.HelloWorld。不同功能的类分别存放在不同的包下。(按照功能划分的,不同的软件包具有不同的功能。包机制的作用是为了方便程序的管理。注意:pacakge 语句只允许出现在java源代码的第一行。补充:以后说类名的时候,如果带着包名描述,表示完整类名。第一:package 出现在 java 源文件第一行。java.util.Scanner 完整类名。

2024-01-09 21:00:33 616

原创 Java 抽象类和接口以及抽象类和接口的区别

面向抽象编程,不要面向具体编程,降低程序的耦合度,提高程序的扩展力。对于计算机来说,一个机箱上有多个接口,一个接口是接键盘的,一个接口是接鼠标的,一个接口是接电源的,”结尾的,但他们都不是抽象方法,2、当一个非抽象的类实现接口时,必须将接口中所有的抽象方法全部实现(覆盖、重写)。接口 A 和接口 B 虽然没有继承关系,但是写代码的时候,可以互转。10、重要结论:一个非抽象的类继承抽象类,必须将抽象类中的抽象方法实现了。这是 java 语法上强行规定的,必须的,不然 java 编译器就会报错。

2024-01-07 21:54:03 919

原创 IntelliJ IDEA 常用命令

5、idea 中退出任何窗口,都可以使用 esc 键。光标移到单词下面之后,按 ctrl 键,出现下划线,点击跳转。3、注意:IDEA 是自动保存的,不需要 ctrl + s。光标移到某个单词的下面,这个单词可能是:方法名、变量名。15、idea 中怎么定位方法/属性/变量?16、idea 中复制一行:ctrl + d。多行注释:ctrl + shift + /4、左边窗口中的列表怎么展开?13、提示方法的参数:ctrl + p。alt +1(打开,关闭)单行注释:ctrl +/代码上右键–>run。

2024-01-06 20:13:45 533

原创 Java中 super 和 this 对比着学习

在父和子中有同名的属性,或者说有相同的方法,如果此时现在子类中访问父中的数据,必须使用“super.”加以区分。this() 只能出现在构造方法第一行,通过当前的构造方法去调用“本类”中其它的构造方法,目的是:代码复用。2、注意:在构造方法执行过程中一连串调用了父类的构造方法,父类的构造方法又继续向下调用它的父类的。super() 只能出现在构造方法第一行,通过当前的构造方法去调用“父类”中的构造方法,super 不是引用。父中有,子中又有,如果想在子中访问“父类的特征”,super. 不能省略。

2024-01-05 22:18:44 373

原创 java 方法覆盖和静态方法存在方法覆盖吗?

编译的时候 move() 方法是 Animal 的。运行的时候自动调用到子类重写 move() 方法上。方法覆盖只是针对于“实例方法”,“静态方法覆盖”没有意义。(这是因为方法覆盖通常和多态联系在一块。没有多态机制,方法覆盖也可以没有,如果父类的方法无法满足子类业务需求的时候,所以,一般情况下,我们会说静态方法“不存在”方法覆盖。不探讨静态方法的覆盖。1、方法覆盖需要和多态机制联合起来使用才有意义。假设没有多态机制,只有方法覆盖,你觉得有意义吗?没有多态机制的话,方法覆盖可有可无。方法覆盖和多态不能分开。

2024-01-05 21:48:22 427

原创 Java 面向对象的三大特征之继承和多态

(5)java 中的类没有显示的继承任何类,则默认继承 Object 类,Object 类是 java 语言提供的根类,(2)java中的继承只支持单继承,不支持多继承,C++ 中支持多继承,这也是 java 体现简单性的一点,换句话说,假设以后的开发中有一个 A 类,有一个 B 类,A 类和 B 类确实也有重复的代码,那么它们两个之间就可以继承吗?Object 是所有类的超类,类体系结构中的根。当子类对父类继承过来的方法进行“方法覆盖”之后,子类对象调用该方法的时候,一定执行覆盖之后的方法。

2024-01-04 21:52:58 839

原创 Java 面向对象的三大特征之封装

1、static 修饰的统一都是静态的,都是类相关的,不需要 new 对象。另外封装了之后,对于我们使用者来说,我们是看不见内部的复杂结构的,我们也不需要关心内部有多么复杂,一个类体当中的数据,假设封装之后,对于代码的调用人员来说,不需要关心代码的复杂实现,注意:只要是方法,不管是静态方法、实例方法、构造方法,它们在运行的时候都是需要压栈。如果这个类型的所有对象的某个属性值都是一样的,不建议定义为实例变量,浪费内存空间。2、当一个属性是类级别的属性,所有对象的这个属性的值是一样的,建议定义为静态变量。

2024-01-03 22:11:16 1029

原创 java 构造方法

(1)当一个类中没有提供任何构造方法,系统默认提供一个无参数的构造方法。2、当一个类没有提供任何构造方法,系统会默认提供一个无参数的构造方法。实际变量没有手动赋值的时候,实际上系统会默认赋值,那么这个默认赋值操作是在什么时机进行的?构造方法是一个比较特殊的方法,通过构造方法可以完成对象的创建,以及实例变量的初始化。(2)当一个类中手动的提供了构造方法,那么系统将不再默认提供无参数构造方法。实例变量是在构造方法执行的过程中完成初始化的,完成赋值的。(3)无参数构造方法,和有参数的构造方法都可以调用。

2024-01-02 22:14:26 399

原创 java 类和对象的概念

java中规定:参数传递的时候,和类型无关,不管是基本数据类型还是引用数据类型统一都是将盒子中保存的那个“值”复制一份,传递下去。类实际上在现实世界当中是不存在的,是一个抽象的概念,是一个模板,是我们人类大脑进行思考、总结、抽象的一个结果。不管你是基本数据类型,还是引用数据类型,实际上在传递的时候都是将变量中保存的那个“值”复制一份,传过去。引用是:但凡是变量,并且该变量中保存的内存地址指向了堆内存当中的对象的都是引用。第二:画图的时候,图上的图形应该有先后顺序,先画什么,再画什么,必须是有顺序的。

2024-01-02 21:51:56 549

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除