自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java Lambda 表达式

Lambda 表达式是 Java 8 提供的一种语法,主要用来替代匿名内部类,传递函数式接口代码。函数式接口:只有一个抽象方法的接口,还允许定义静态方法和默认方法。

2023-03-07 22:37:48 159

原创 Java 异常

异常是相对于 return 的一种退出机制,可以由系统触发,也可以由程序通过 throw 语句触发,异常可以通过 try/catch 语句进行捕获并处理,如果没有捕获,则会导致程序退出并输出异常栈信息。当发生异常时,Java 会启用异常处理机制,首先创建一个异常对象,然后异常处理机制会从当前方法开始查找看谁 “捕获” 了这个异常,当前方法没有就查看上一层,直到 main 方法,如果也没有,就使用默认机制,输出异常栈信息并退出。

2023-03-06 07:04:44 193

原创 Java MD5 工具类

MD5 的全称是 Message-Digest Algorithm 5(信息摘要算法),广泛应用在密码信息安全,后被证实无法防止碰撞,初步了解即可。

2023-03-06 07:04:07 911

原创 Java 系统和运行类

Runtime 类主要是关于 Java 应用程序的运行环境,每个 Java 应用程序只有一个 Runtime 实例。类定义了系统相关的属性和操作方法。使用原生方法实现,效率较高。error 标准错误输出流。

2023-03-06 07:03:29 188

原创 Java 枚举

*** 枚举使用 enum 这个关键字来定义// 值一般是大写的字母,多个值之间以逗号分隔 // 枚举值的定义需要放在最上面,枚举值写完之后,要以分号(;)结尾,然后才能写其他代码 SMALL(1 , "S" , "小号") , MEDIUM(2 , "M" , "中号") , LARGE(3 , "L" , "大号");return id;} }枚举可以包含抽象方法,如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。RED {

2023-03-06 07:02:24 75

原创 Java 国际化

表示特定的地理、政治和文化区域,需要 Locale 来执行任务的操作称为语言环境的敏感操作。属性文件(文件内容格式为 “key=value”),然后根据 Locale 环境进行解析。同一套程序代码可以在不同的语言环境下使用,比如中文、日文、英文环境。国际化的核心问题在于显示的语言,通常的做法是定义若干个。用于读取资源文件,读取时不需要加上文件类型后缀。动态的文本处理需要使用。

2023-03-06 07:01:21 770

原创 Java Math

Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。Math 的方法都被定义为 static 形式,通过 Math 类可以直接调用。

2023-03-06 07:01:06 51

原创 Java 8 的日期和时间API

Java 8 以前的日期和时间 API 设计有些不足,Java 8 引入了一套新的API,位于 java.time 包下。

2023-03-06 07:00:33 130

原创 Java Random

维护一个剩余总金额和总数量,分配时,如果数量等于1,直接返回总金额,如果大于1,则计算平均值,并设定随机最大值为平均值的两倍,然后取一个随机值,如果随机值小于0.01,则为0.01,这个随机值就是下一个的红包金额。以上面的例子来说,计算每个选项的累计概率值,首先计算总的权重,这里正好是100,每个选项的概率是70%、20%和10%,累计概率则分别是70%、90%和100%。编号是事先确定的,种子数是当场公证随机生成的,是公开的,随机算法是公开透明的,任何人都可以根据公开的种子数和编号验证中签的编号。

2023-03-06 07:00:03 67

原创 Java 日期和时间

日期和时间是一个比较复杂的概念,Java 8之前的设计有一些不足,业界有一个广泛使用的第三方类库 Joda-Time,Java 8受Joda-Time影响,重新设计了日期和时间API,新增了一个包java.time。虽然Java 8之前的API有一些不足,但依然是被大量使用的。

2023-03-06 06:58:24 1195

原创 Java 正则表达式

正则表达式是一串字符,描述了一个文本模式,可以方便地处理文本,包括查找、替换、切分等。正则表达式中的字符有两类:一类是普通字符,匹配字符本身;另一类是元字符,有特殊含义,元字符及其特殊含义构成了正则表达式的语法。

2023-03-06 06:57:40 320

原创 Java 字符串

使用字面量使用构造方法String name2 = new String("苏轼");

2023-03-05 11:37:49 159

原创 Java Cloneable

Object 将 clone 作为一个本地方法来实现。当执行 clone 的时候,会检查调用对象的类(或者父类)是否实现了。接口,以向 Object.clone() 方法指示该方法对该类的实例进行字段到字段复制是合法的。接口的实例上调用Object的clone方法会导致抛出异常。接口( Object 类不实现 Cloneable )。按照惯例,实现此接口的类应使用公共方法覆盖。

2023-03-05 11:25:48 165

原创 Java 包装类的二进制操作

Java内部采用UTF-16编码,char表示一个字符,但只能表示BMP中的字符,对于增补字符,需要使用两个char表示,一个表示高代理项,一个表示低代理项。所谓循环移位,是相对于普通的移位而言的,普通移位,比如左移2位,原来的最高两位就没有了,右边会补0,而如果是循环左移两位,则原来的最高两位会移到最右边。高效实现位翻转的基本思路是:首先交换相邻的单一位,然后以2位为一组,再交换相邻的位,接着是4位一组交换、然后是8位、16位,16位之后就完成了。令人费解的是负数,如果 distance 是 8,那。

2023-03-05 11:25:22 390

原创 Java 比较器

接口位于 java.lang 包下,对实现它的每个类的对象强加一个总排序,这种排序被称为类的自然顺序,compareTo 方法被称为其自然比较方法。:将此对象与指定的对象进行比较以获得顺序,返回负整数,零或正整数,表示此对象小于,等于或大于指定对象。接口位于 java.util 包下,此接口可以对对象集合施加总排序,可以将比较器传递给排序方法(:比较它的两个参数的顺序,返回负整数,零或正整数,表示第一个参数小于,等于或大于第二个参数。实现此接口的对象的列表(和数组)可以由。),以便精确控制排序顺序。

2023-03-05 11:25:15 191

原创 Java 包装类

Java 中有些类只能操作对象,因此 Java 的基本数据类型都有一个对应的包装类。

2023-03-05 11:24:51 230

原创 Java 根类 Object

是 Java 类层次结构中的根类,所有类都直接或间接实现了此类的方法。

2023-03-05 11:24:41 143

原创 Java 代码组织机制

类路径可以有多个,对于直接的 class 文件,路径是 class 文件的根目录;一般而言,同一个项目下的所有代码都有一个相同的包前缀,这个前缀是唯一的,不会与其他代码重名,在项目内部,根据不同目的再细分为子包,子包可能又会分为下一级子包,形成层次结构,内部实现一般位于比较底层的包。Java 运行时,会根据类的完全限定名寻找并加载类,寻找的方式就是在类路径中寻找,如果是 class 文件的根目录,则直接查看是否有对应的子目录及文件,如果是 jar 文件,则首先在内存中解压文件,然后再查看是否有对应的类。

2023-03-05 11:23:21 456

原创 Java 常用修饰符

修饰类表示抽象类,抽象类不能用来实例化对象,声明抽象类是为了将来对该类进行扩充。如果一个类包含抽象方法,那么该类一定要声明为抽象类。修饰方法表示抽象方法,抽象方法是一种没有任何实现的方法,该方法的具体实现由子类提供。

2023-03-05 11:22:31 469

原创 Java 内部类

一个类可以放在另一个类的内部,称为内部类,相对而言,包含它的类称为外部类。一般而言,内部类与包含它的外部类有比较密切的关系,与其他类关系不大,定义在类内部,可以实现对外部完全隐藏,从而有更好的封装性,代码实现上也往往更为简洁。不过,内部类只是 Java 编译器的概念,对于 Java 虚拟机而言是不知道内部类这回事的,内部类最后都会被编译为一个独立的类,生成一个独立的字节码文件。

2023-03-05 11:22:07 299

原创 Java 抽象类和接口

使用abstract关键字修饰类,通常会定义抽象方法(也可以没有抽象方法),有抽象方法的一定是抽象类。抽象方法是相对于具体方法而言的,具体方法有实现代码,而抽象方法只有声明,没有实现,表现为没有方法体。修饰符 abstract class 类名 {// 成员变量 // 成员方法 // 构造方法 // 不能 private 修饰,否则无法继承重写,失去意义 [ public | protected | 缺省 ] abstract 返回值类型 抽象方法名(参数列表);

2023-03-05 11:19:57 367

原创 Java 面向对象(OOP)的三大特性

继承可能破坏封装是因为子类和父类之间可能存在着实现细节的依赖,更具体地说,子类需要知道父类的可重写方法之间的依赖关系,如果父类的方法之间存在调用依赖,而子类只重写了某个方法,就可能导致不可预测的错误。子类继承了父类的非私有属性和方法(构造方法除外),子类可以重写继承的父类方法(注意重写不能降低方法的访问权限),可以增加新的属性,新的方法,即子类可以在父类基础上进行重新实现和扩展。但继承也存在一些问题。在类的内部,默认带参数 this,访问的是类自身的,但子类可以通过 super 明确指定访问父类。

2023-03-04 10:13:57 841

原创 Java 类和对象简介

*** 类定义*/ 权限修饰符 其他修饰符 class 类名 {成员变量;初始化代码块;构造方法;成员方法;publicprotected(内部类时)、默认缺省、private(内部类时)。final(最终类,不可继承)、abstract(抽象类)、static(内部类)。

2023-03-04 10:12:15 373

原创 UML 类图

车的类图结构为,表示车是一个抽象类;它有两个继承类:小汽车和自行车;它们之间的关系为实现关系,使用带空心箭头的虚线表示;小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系,使用带空心箭头的实线表示;小汽车与发动机之间是组合关系,使用带实心箭头的实线表示;学生与班级之间是聚合关系,使用带空心箭头的实线表示;学生与身份证之间为关联关系,使用一根实线表示;学生上学需要用到自行车,与自行车是一种依赖关系,使用带箭头的虚线表示;

2023-03-04 10:10:42 592

原创 UML 时序图

时序图(Sequence Diagram)是显示对象之间交互的图,是按时间顺序排列的。时序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。

2023-03-04 10:10:01 636

原创 面向对象设计的 SOLID 原则

S.O.L.I.D 是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。

2023-03-04 10:08:32 247

原创 面向过程和面向对象

可以看出,面向过程的系统资源消耗更低,性能更高;面向对象是在面向过程的基础上构建的,系统耦合度更低,更加灵活,方便后续维护,对开发者更友好。在面对复杂问题时,面向过程的方式可能难以处理,此时每一步可以委托不同的对象进行处理。面向过程是分析出问题的解决步骤,然后按照步骤一步步处理,通常每步需要亲力亲为。比如说做菜这事,面向过程是自己去买菜、洗菜、切菜,最后做菜,吃完还得洗碗。还是拿做菜举例,在饭店,买菜、洗菜、做菜、洗碗可能都有不同的人负责处理。

2023-03-04 10:08:00 32

原创 JVM、JRE 和 JDK 简介

JVM 针对不同的操作系统都有相应的实现,JVM 面向操作系统,字节码文件面向 JVM,从而实现跨平台。Java 开发工具集,包括 Java 运行时环境 (JRE)、解释器/加载器 (Java 运行时环境,由Java 虚拟机 (JVM)、核心类和支持文件组成。Java 虚拟机,负责逐行执行 Java 程序,因此也被称为解释器。) 以及 Java 开发所需的其他工具。

2023-02-09 08:16:40 279

原创 Java 安装和环境配置

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hsqGae8O-1675851350624)(https://upload-images.jianshu.io/upload_images/20475917-016f8db5cb25a1c5.png?bin:JDK 的各种工具命令,如:常用的 javac、java 等命令。win + r,输入 cmd,打开 dos 命令窗口。jre:运行 Java 程序所必需的 JRE 环境。db:安装 Java DB 的路径。

2023-02-08 18:19:02 343

原创 Java 简介

Java 是一门面向对象的编程语言,吸收了 C++ 语言的各种优点,摒弃了 C++ 里难以理解的多继承、指针等概念,具有功能强大和简单易用的特征。Java 作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

2023-02-08 18:10:04 93

原创 HTML 中的 JavaScript

HTML 中的 JavaScript

2022-09-23 10:10:01 1290

原创 第1章 层叠、优先级和继承

CSS层叠、继承

2022-09-11 23:34:42 202

空空如也

空空如也

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

TA关注的人

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