话接上回,继续核心类与API的学习,这次介绍一下枚举类以及与系统、交互有关的类,需要了解并能使用即可。 一、枚举类 1、概述 枚举也称穷举,简单理解就是把所有可能一一列举出来(穷尽所有可能)。 4.1 几点注意 1)每一个枚举都继承自 java.lang.Enum 类。 二、交互相关 1、Console类(简单了解) JDK6中提供了java.io.Console类专用来访问基于字符的控制台设备。Console类的目的是使Java程序和控制台之间的交互更容易。 掌握) Scanner类用于获取用户输入,使用前先导包:import java.util.Scanner。 60.0 3个数的平均值是20.0 二、系统相关 1、System类 1.1 概述 System类代表当前java程序的运行平台,系统级的很多属性和控制方法都放置在该类的内部。
在Java之中,如果要想表示出日期型,则使用java.util.Date类完成。 如果要想通过这个类取得当前的日期时间,那么只需要直接实例化Date类对象即可:public Date()。 类完成TO_CHAR()函数的功能和TO_DATE()函数的功能。 String format(Date date); · 将字符串格式化为日期:public Date parse(String source) throws ParseException; 但是除了以上的三个核心操作方法之外 范例:将日期变为字符串,格式化显示 import java.text.SimpleDateFormat; import java.util.Date; public class TestDemo { 类的映射就应该彻底完成了,数据库之中的日期时间可以通过java.util.Date进行表示。
在Java之中,如果要想表示出日期型,则使用java.util.Date类完成。 如果要想通过这个类取得当前的日期时间,那么只需要直接实例化Date类对象即可:public Date()。 类完成TO_CHAR()函数的功能和TO_DATE()函数的功能。 String format(Date date); · 将字符串格式化为日期:public Date parse(String source) throws ParseException; 但是除了以上的三个核心操作方法之外 范例:将日期变为字符串,格式化显示 import java.text.SimpleDateFormat; import java.util.Date; public class TestDemo { 类的映射就应该彻底完成了,数据库之中的日期时间可以通过java.util.Date进行表示。
$ ls UseJarDemo.class UseJarDemo.java Java 核心类库 上一小节我们把自己创建的 JAR 文件添加到 CLASSPATH 路径下的时候,眼尖的你可能发现我们的通用配置 因为它包含了所有已编译的类文件,包括引导类以及来自核心 Java API 的所有类,是 Java 运行时环境中所有核心 Java 类的集合。 这样也避免了 Java 核心 API 被随意替换,保证了安全。 常用的 Java 类库 API 什么是 API 我们前边多次提到 Java API,那么什么是 API 呢? Java API 也有说明文档,比如 Java SE 8:https://docs.oracle.com/javase/8/docs/api/index.html 常用的 API 介绍 Java 核心类库中常用的 看完这篇文章,想必你对 Java 核心类库有了更深的了解。 好啦,本期分享就到这里,如果各位喜欢我的分享,请务必三连,点赞,在看,收藏,关注我,这会对我有非常大的帮助。 我们下期再见。
话接上回,继续核心类与API的学习,这次介绍StringBuffer/StringBuilder/StringJoiner类。 2)解决 使用 StringBuffer 类(也称字符串缓冲区)来操作字符串。 StringBuffer 类和 String 类最大的区别在于它的内容和长度都是可以改变的。 5.1 背景及功能重述 1)String String 是 Java 中基础且重要的类,被声明为 final class,是不可变字符串。 3)StringBuilder 很多情况下字符串拼接操作不需要线程安全。 三、StringJoiner类 1、概述 StringJoiner是Java8新出的一个类,作用是在构造字符串时可以自动添加前缀、后缀及分隔符,无需实现添加字符的逻辑。
学完Java的面向对象特性后,接下来学习Java核心类与API。Java的API可理解为Java自己提供的标准类库,开发人员可直接使用其方法。 常用的有String类,StringBuffer/StringBuilder类,Object类,枚举类,以及其他一些如与系统、交互、数学、日期相关的类,如下。这次先来介绍String类。 3、字符串常量池 3.1 概述 1)目的 实际开发中,String类是使用频率非常高的一种引用对象类型。但由于不断地创建新的字符串对象会极大地消耗内存。 字面量也常称为常量,Java的字面量可以是任意基本数据类型。 3.3 字符串存储位置 java内存空间理解(面试考点),图示如下 java虚拟机内存结构(面试考点) 1)堆 堆主要存放Java在运行过程中new出来的对象,凡是通过new生成的对象都存放在堆中
话接上回,继续核心类与API的学习,最后介绍一下Object类以及与数学、日期/时间有关的类,就结束该部分的学习了,其他的根据需要自行了解。 一、Object类 1、概述 Object 是 Java 类库中的一个特殊类,也是所有类的父类,任何 Java 对象都可以调用 Object 类的方法。 Java 允许把任何类型的对象赋给 Object 类型的变量。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类。 :java.lang.String 父类:java.lang.Object 实现的接口有: interface java.io.Serializable interface java.lang.Comparable 案例3 //两个对象相等,哈希值也相等 public class HashCodeDemo {//Object类是所有类的父类,默认继承Object类 public static void main
重学Java之核心类 一、String Java字符串的特点: 字符串对象可以直接使用"..." 编码最佳实践 Java使用Unicode编码 Java程序运行时使用Unicode编码 输入输出时把String和byte[]转换,需要考虑编码 始终优先考虑UTF-8编码 总结 字符串是不可变对象 字符串操作不改变原字符串内容 StringBuilder可以支持链式操作 实现链式操作的关键是返回实例本身 StringBuffer是StringBuilder的线程安全版本,很少使用 三、包装类型 原理 定义一个Integer类, 是从系统环境中读取系统变量 int i = 100; Integer n1 = new Integer(i); Integer n2 = Integer.valueOf(i); Integer n3 、字段和方法 构造方法申明为private 六、常用工具类 Math:数学计算 Math提供了数学计算的静态方法: - abs/min/max - pow / sqrt / exp / log /
JDK中对和反射相关的类库集中在java.lang.reflect包和java.lang包中,java.lang.reflect包和java.lang包是开发者可以直接使用的,部分java.lang.reflect 可以理解为java.lang.reflect包和java.lang包中的类库就是面向开发者的类库。 图解反射核心类的体系 java.lang.reflect包反射核心类有核心类Class、Constructor、Method、Field、Parameter,它们的基础体系如下: java.lang.Class 2、使用Class.forName(全类名);方法。 3、使用实例的getClass()方法。 API和API使用,掌握这些类库,才能轻松地进行反射编程。
核心子系统 核心库(Core namespace)实现了这些特性: 一个实现了引用计数的RefCounted基类 一个运行时类型信息系统(RTTI) 一个模板智能指针, 用于处理RefCounted 基于类名或四字符编码的对象创建 一个运行时类型信息系统 实现一个新的Nebula3类 当实现一个新的类时首先要考虑它是一个传统的C++类还是要从Core::RefCounted继承. 很多Nebula3的核心对象都是单件, 就是只存在一个实例, 并且所有其它对象都知道它. “并行Nebula”的基本思想是, 一个典型的Nebula3应用程序包含一些”Fat线程”, 每一个Fat线程都是运行在一个单独的CPU核心上. Fat线程可以用于实现异步IO, 渲染, 物理等等. 性能与内存占用的考虑 Nebula3核心层的一个设计目标就是减少底层代码的内存占用, 来更好的适应微型平台, 像手持设备.
Java基础类库 使用Scanner获得键盘输入: public class ScannerKeyBoardTest { public static void main(String[] args = "Java"; String s4 = "Java"; // s3和s4是相同的字符串对象,所以它们的identityHashCode值相同 System.out.println Java7新增的Objects类: public class ObjectsTest { // 定义一个obj变量,它的默认值是null static ObjectsTest obj; 为此,Java提供了BigDecimal类,该类提供了大量构造器用于创建BigDecimal对象,包括把所有的基本数值类型变量转换成一个BigDecimal对象,也包括利用数字字符串、数字字符数组来创建 Java 8专门新增了一个java.time包,该包下包含了如下常用类: Clock、Duration、LocalDate、LocalTime、LocalDateTime、MonthDay、Year、
前言 前阵子闲逛的时候,留意到了Lombok这个Java第三方库,后来亲自试用了一下,还真有一种相见恨晚的感觉,对于博主这样的懒人来说,这简直是太实用了。这不趁周末,赶紧把好东西写出来分享一下。 Lombok是一个java库,它可以自动插入您的编辑器和构建工具,为您的java提供帮助。再也不要写其他的getter或equals方法了。尽早访问诸如val之类的未来java特性。 @Data @Builder(常用) 此注解需用在类上。 为当前类添加@Slf4j后,我们就可以舍弃这段代码了,是不是简洁多了 ? 第1个和第3个注解还是比较挺实用的,如果要生成部分参数的构造器,博主是比较建议手动生成,感觉注解还不太好用了。
基本数据类 3. System 类 4. Runtime 类 5. Date、Calendar、DateFormat 类 6. Math、Random 类 7. hashCode() 方法 8. System.out.println(++n); // 17 3. get(c1.HOUR_OF_DAY)+":"+ c1.get(c1.MINUTE)+":"+c1.get(c1.SECOND)); c1.add(c1.DAY_OF_MONTH, 3) ; // 加3天 System.out.println(c1.get(c1.YEAR)+"年"+(c1.get(c1.MONTH)+1)+"月"+ c1.get(c1.DAY_OF_MONTH get(c1.HOUR_OF_DAY)+":"+ c1.get(c1.MINUTE)+":"+c1.get(c1.SECOND)); 输出: 2021年2月26日23:5:26 2021年3月
在讲解StringBuffer类之前首先来简单回顾一下String类的特点: · String类的对象有两种实例化方式,一种是直接赋值,只会开辟一块堆内存空间,而且对象可以自动入池,另外一种方式使用构造方法完成 ,但是其不适合于被频繁修改的字符串操作上,所以在这种情况下,往往可以使用StringBuffer类,即:StringBuffer类方便用户进行内容的修改。 在String类之中使用“+”作为数据库的连接操作,而在StringBuffer类之中使用append()方法进行数据的连接。 现在表示字符串的操作类就有了两个:String、StringBuffer,那么下面通过这两个类的定义来研究一下关系: 现在发现String和StringBuffer类都实现了一个CharSequence ,同样,在StringBuffer类之中也定义了许多的操作方法,而且有些方法还是String类所有没有的支持。
在Java中,使用构造器构造新实例。构造器是一种特殊的方法,用来构造并初始化对象。 在实际开发中,通常需要将对象存放在一个变量中来达到多次使用的目的。 在Java开发中,一定要认识到,一个对象变量并没i月实际包含一个对象,而仅仅使用一个对象,任何对象变量的值都是对存储在另外一个地方的一个对象的引用。 2.按照类声明中出现的次序,依次执行所有域初始化语句和初始化块。 3.如果构造器第一行调用了第二个构造器,则执行第二个构造器的主体。 4.执行这个构造器的主体。 即使没有实例对象时,静态域也是存在的,它是属于类,而不是属于对象。 静态方法同理。 方法参数: Java中的参数是一种值引用。 首先,观察一下基本数据类型(数字、布尔值)。 3.方法结束后,参数变量x不再使用。当然,对象变量harry继续引用那个薪金增3倍的对象。 ? 看到这里,或许会认为Java的对象参数是引用调用,实际上,并不是。
前言 在上一篇文章中我们一起来看了一下 Java 虚拟机的类加载过程,包括虚拟机加载、验证、准备、解析和初始化 5 个大步骤,同时我们还讨论了 Java 虚拟机加载类时采用的双亲委派模型思想。 在这篇文章中我们来一起看一下 class 文件的结构,来进一步加深我们对虚拟机的类加载机制和类机制的理解。本文参考了 《深入理解 Java 虚拟机》一书。 解析 .class 文件 我们都知道一个 Java 类(.java)文件在被 Java 编译器(javac) 编译过后,如果语法没有错误,则会生成一个对应的 .class 文件,这个 .class 浮点型常量、复杂对象类型常量…)下表列举了所有常量池中的项目可能出现的类型: 类型 标志 含义 CONSTANT_Utf8_info 1 UTF-8 编码的字符串 CONSTANT_Integer_info 3 再论类加载 回想一下我们在上篇文章中讨论的 Java 类加载机制,需要经过五大步骤:加载、验证、准备、解析、初始化。
web3j Gradle插件是从Solidity智能合约生成web3j Java封装的构建工具。它通过添加可以独立运行的特定任务,顺利地与项目的构建生命周期集成。 :web3j-gradle-plugin:0.1.6' } } apply plugin: 'web3j' 使用插件DSL 或者,如果你使用的是更现代的插件DSL,请将以下行添加到你的构建文件中 Java类。 为方便起见,当应用于Java包名称时,它将转换为小写。 生成的智能合约封装器Java代码的输出目录将自动添加到你的构建中。 插件任务 Java插件使用基于每个源的命名约定(即compileJava,compileTestJava)向项目构建添加任务。
在讲解StringBuffer类之前首先来简单回顾一下String类的特点: · String类的对象有两种实例化方式,一种是直接赋值,只会开辟一块堆内存空间,而且对象可以自动入池,另外一种方式使用构造方法完成 ,但是其不适合于被频繁修改的字符串操作上,所以在这种情况下,往往可以使用StringBuffer类,即:StringBuffer类方便用户进行内容的修改。 在String类之中使用“+”作为数据库的连接操作,而在StringBuffer类之中使用append()方法进行数据的连接。 现在表示字符串的操作类就有了两个:String、StringBuffer,那么下面通过这两个类的定义来研究一下关系: ? ,同样,在StringBuffer类之中也定义了许多的操作方法,而且有些方法还是String类所有没有的支持。
unity3d核心类 Unity3D的最基本的核心类型。 image.png Object 所有Unity3D的基类。 持有实例的ID信息。 Component (组件) 所有的Component,都会指向其所属的GameObject。 .material.color = Color.red; 运行结果: image.png image.png 修改位置、 this.transform.position = new Vector3(
顶哥说Java是世界的,但项目不是。 今天介绍集合类的以下内容: Iterator迭代器 子范围视图简介 Iterator迭代器: ---- 应该将java迭代器认为是位于两个元素之间, 当调用next 时,迭代器就越过下一个元素,并返回刚刚越过的那个元素的引用 图3:子范围视图 第一个索引包含在内,第二个索引不包含在内,这与String类的substring操作中的参数情况相同,可以将任何操作用于子范围,并且能够自动地反映到整个列表的情况.例如可以删除整个子范围