首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基础学Java(12)静态字段静态方法

静态字段静态方法   之前我们都定义的main方法都被标记了static修饰符,那到底是什么意思?下面我们来看看 静态字段   如果将一个字段定义static,每个类只有一个这样的字段。...public void setId() { id = nextId; nextId++; }   假定为harry设置员工标识码: harry.setId();   harry的id字段被设置静态字段...因为out被声明为final,所以,不允许再将它重新赋值另一个打印流: System.out = new PrintStream(...); // ERROR -- out is final 静态方法...但是,静态方法可以访问静态字段。...这主要有两个原因: 无法命名构造。构造的名字必须与类名相同。但是,这里希望有两个不同的名字,分别得到货币实例和百分比实例。 使用构造时,无法改变所构造对象的类型。

28520

【hibernate validator】(二)声明和验证Bean约束

字段级别约束 不支持静态类型字段 验证引擎直接访问实例变量,不会调用属性的访问 在验证字节码增强的对象时,应适用属性级别约束,因为字节码增库无法通过反射确定字段访问...获取验证 2....,被视为无效 BigDecimal,BigInteger,byte,short,int,long和原始类型的相应的包装; HV额外支持:的任何子类型CharSequence(评估字符序列表示的数值...值被视为无效 BigDecimal,BigInteger,byte,short,int,long和原始类型的相应的包装; HV额外支持:的任何子类型CharSequence(评估字符序列表示的数值...),Number和的任何子类型javax.money.MonetaryAmount @PositiveOrZero 检查元素是否严格正或 BigDecimal

21840
您找到你想要的搜索结果了吗?
是的
没有找到

绝对干货 | Kotlin内联类工作原理及使用案例,看完你会回来谢我的

在运行时,将尽可能使用内联类的包装类型而不使用其包装。这类似于Java的框式类型,例如Integer或Boolean,只要编译可以这样做,它们就会被表示它们对应的原始类型。...运行时 在运行时,可以将内联类表示包装类型和基础类型。如前一段所述,编译更喜欢使用内联类的基础(包装)类型来尽可能地优化代码。这类似于int和Integer之间的装箱。...除了一些显而易见的东西,例如value字段及其getter之外,构造函数是私有的,而新对象将通过Constructor_impl创建,该对象实际上并不使用包装类型,而仅返回传入的基础类型。...如您所见,该函数被实现为静态函数,该静态函数接受字符串并返回BigDecimal。那么在调用者代码中如何利用呢?...在主体中,我们看到静态的getParsed_impl用于将给定的String解析BigDecimal。同样,不使用ParsableNumber。

1.3K30

Java在工作当中经常使用的常用类

用Integer与 int例:基本数值---->包装对象包装对象---->基本数值自动装箱与自动拆箱由于我们经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,基本类型与包装类的装箱...例如: 基本类型与字符串之间的转换 基本类型直接与””相连接即可;如:34+""String转换成对应的基本类型 除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型...以Integer类的静态方法parseXxx例注意:如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出java.lang.NumberFormatException异常。...取值BigDecimal.ROUND_HALF_UP。SystemSystem系统类,主要用于获取系统的属性数据和其他操作。...currentTimeMillis()获取当前系统时间,返回的是毫秒值 static void gc(); 建议JVM赶快启动垃圾回收回收垃圾

17900

绝对干货 | Kotlin内联类工作原理及使用案例,看完你会回来谢我的

在运行时,将尽可能使用内联类的包装类型而不使用其包装。这类似于Java的框式类型,例如Integer或Boolean,只要编译可以这样做,它们就会被表示它们对应的原始类型。...运行时 在运行时,可以将内联类表示包装类型和基础类型。如前一段所述,编译更喜欢使用内联类的基础(包装)类型来尽可能地优化代码。这类似于int和Integer之间的装箱。...除了一些显而易见的东西,例如value字段及其getter之外,构造函数是私有的,而新对象将通过Constructor_impl创建,该对象实际上并不使用包装类型,而仅返回传入的基础类型。...如您所见,该函数被实现为静态函数,该静态函数接受字符串并返回BigDecimal。那么在调用者代码中如何利用呢?...在主体中,我们看到静态的getParsed_impl用于将给定的String解析BigDecimal。同样,不使用ParsableNumber。

55920

Effective Java(第三版)——条目十四:考虑实现Comparable接口

下面的描述中,符号sgn(expression)表示数学中的 signum 函数,它根据表达式的值负数、、正数,对应返回-1、0和1 1.实现类必须确保所有x和y都满足sgn(x.compareTo...在Java 7中,静态比较方法被添加到Java的所有包装类中。...如果比较结果不是表示相等),则表示比较完成; 只是返回结果。 如果最重要的字段是相等的,比较下一个重要的属性,依此类推,直到找到不相等的属性或比较剩余不那么重要的属性。...它是一个静态方法,它使用一个键提取函数式接口( key extractor function)作为参数,将对象引用映射int类型的键,并返回一个根据该键排序的实例的比较。...比较compareTo方法的实现中的字段值时,请避免使用""运算符。 相反,使用包装类中的静态compare方法或Comparator接口中的构建方法。

65920

基础一:一切都是对象

: char c = 'x'; Character ch = new Character(c); 或者: Character ch = new Character('x'); Java SE5的自动包装功能自动的将基本类型转换为包装类型...虽然他们大体上属于包装类的范畴,但是却没有对应的基本类型。...上述确保初始化的方法并不适用于“局部变量”(即并非某个类的字段)。 如下: 在某个方法中定义 int x ; 这是不会被自动化初始0 ,如果未明确的赋值,在编译时会抛出异常 ?...比如 参数类型String ,则必须传递一个String对象,否则编译抛出异常。 假设某个方法接收String其参数,具体定义如下,该方法必须置于某个类的定义内才能被正确的编译。...类似逻辑同样也适用于 静态方法。

34430

阿里Java编程规约【四】OOP规约

【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译解析成本,直接用 类名来访问即可。 2. 【强制】所有的覆写方法,必须加 @Override 注解。...反例:某业务的数据库表 id 字段定义类型 bigint unsigned,实际类对象属性 Integer,随着 id 越来越大, 超过 Integer 的表示范围而溢出成为负数,此时数据库 id...如: BigDecimal g = new BigDecimal(0.1F);实际的存储值:0.100000001490116119384765625 正例:优先推荐入参 String 的构造方法...关于基本数据类型与包装数据类型的使用标准如下: 1)【强制】所有的 POJO 类属性必须使用包装数据类型。 2)【强制】RPC 方法的返回值和参数必须使用包装数据类型。...反例:某业务的 DO 的 createTime 默认值 new Date();但是这个属性在数据提取时并没有置入具体值,在更新其它字段时又附带更新了此字段,导致创建时间被修改成当前时间。 15.

51710

新手小白学JAVA 正则表达式 包装类 自动装箱自动拆箱 BigDecimal

*/ public class TestNumber { //1.定义成员变量,注意要设置成静态的,因为静态只能调用静态 static Integer i0; public...编译会完成对象的自动装箱:Integer a = Integer.valueOf(5); 自动拆箱:从包装类型的值,自动变成 基本类型的值 int i = a;//a现在是包装类型,没法给变量赋值,...(127); //2.现在的方式: /*1.自动装箱:编译会自动把基本类型int 5,包装包装类型Integer * 然后交给i3来保存,自动装箱底层发生的代码Integer.valueOf...(5); * valueOf()的方向: int --> Integer*/ Integer i3 = 5;//不会报错,这个现象就是自动装箱 /*2.自动拆箱:编译会自动把包装类型的...,行为和round_up一样,如果负数,行为和round_down一样 ROUND_FLOOR(地板) 向下取整,取实际值的小值 朝负无穷方向round 如果正数,行为和round_down一样

28920

JavaSE总结

调用子类构造之前,在子类构造中会先调用父类的构造, 默认调用的是父类无参数构造 隐藏 1满足继承的访问权限下,隐藏父类静态方法:若子类定义的静态方法的签名和超类中的静态方法签名相同,...注意:仅仅是静态方法,子类存在和父类一模一样的静态方法. 2.满足继承的访问权限下,隐藏父类字段:若子类中定义的字段和超类中的字段名相同(不管类型),此时就是隐藏父类字段,此时只能通过 super 访问被隐藏的字段...示例 类加载问题 类的加载 当第一次创建该 类对象的时候,加载到内存当中 在加载时,会执行Static 字段初始化问题 静态字段初始化:是在静态代码块当中初始化 非静态字段初始化:它是在构造当中做的初始化...普通类你有的(方法 ,字段,构造),抽象类都有 抽象不能创建对象。...double 的精度 15-16 位, BigDecimal 用来对超过16位有效位的数进行精确的运算 常用方法 add(BigDecimal)BigDecimal对象中的值相加,然后返回这个对象

31410

基础类型概述

系列 包装为对象类型 基本数据类型的包装类,自然可以将基本类型包装包装类   VaueOf系列基本都有对应的缓存区 缓存区范围内的对象重复使用,对象同一个...  对于String和BigInteger 和 BigDecimal 也有用于包装的方法 decode 字符串形式数值解析后,包装成对象不需要传递基数,可以根据字符串自行判断 XXXValue...后置 这几个方法只需要知道用法含义,实现的逻辑背后都是有理论依据的 数据都是二进制形式左边高位  右边低位从最左边也就是最高位  往右边挨个位查找,只要找到了这个 1  所有的其他位都置  得到的这个数就是最高...HexDigits Sign # HexDigits Sign 0 OctalDigits Sign: - + decode 用于将字符串解码包装类对象不依赖于对象...,所以是静态方法valueOf也可以将字符串或者基本类型包装为对象 decode 不需要指定进制,可以识别前缀符号 0x  0X # 0 valueOf则不可以识别前缀,要么指定基数,要么就是默认十进制

50330

大部分Java程序员都会忽略的几个问题,你中招没?

举个例子: // 不能使用一个值null的引用类型变量来调用非静态方法,否则会抛出异常 String str = null; if (str.equals("SnailClimb")) { ......不能使用一个值null的引用类型变量来调用非静态方法,否则会抛出异常 2. 整形包装类值的比较 所有整形包装类对象值得比较必须使用equals方法。...BigDecimal 3.1. BigDecimal 的用处 《阿里巴巴Java开发手册》中提到:浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用 equals 来判断。...基本数据类型与包装数据类型的使用标准 这部分内容摘自《阿里巴巴Java开发手册》,因为太重要了,所以和这部分内容放在一起。 【强制】所有的 POJO 类属性必须使用包装数据类型。...反例 : 比如显示成交总额涨跌情况,即正负 x%,x 基本数据类型,调用的 RPC 服务,调用不成功时,返回的是默认值,页面显示 0%,这是不合理的,应该显示成中划线。

46420

大部分Java程序员都会忽略的几个问题

举个例子: // 不能使用一个值null的引用类型变量来调用非静态方法,否则会抛出异常 String str = null; if (str.equals("SnailClimb")) { ......不能使用一个值null的引用类型变量来调用非静态方法,否则会抛出异常 2. 整形包装类值的比较 所有整形包装类对象值得比较必须使用equals方法。...BigDecimal 3.1. BigDecimal 的用处 《阿里巴巴Java开发手册》中提到:浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用 equals 来判断。...基本数据类型与包装数据类型的使用标准 这部分内容摘自《阿里巴巴Java开发手册》,因为太重要了,所以和这部分内容放在一起。 【强制】所有的 POJO 类属性必须使用包装数据类型。...反例 : 比如显示成交总额涨跌情况,即正负 x%,x 基本数据类型,调用的 RPC 服务,调用不成功时,返回的是默认值,页面显示 0%,这是不合理的,应该显示成中划线。

55220

一律使用 BigDecimal,避免后患?

另:BigDecimal.valueOf(xxx) 是静态工厂类,永远优先于构造函数(摘自《Effecitve java》,此书也是非常推荐的一本经典书) BigDecimal 是不可变对象 如原来 d1...:16ms 四、优缺点总结 double 的优缺点: double在计算过程中容易出现丢失精度问题 使用方便,有包装类,可自动拆装箱,计算效率高 BigDecimal 的优缺点: 精度准确,但做除法时要注意除不尽的异常...提醒:DTO 中尽量使用包装类,防止反系列化时 null 的造成的格式转换异常 分析 经纬度:一般业务代码中也不太会去计算,仅用于传给地图api等,经纬度一般用于计算距离,如果保留到 6 位小数时其实已经是...Java 高得多; 因为 Java 默认精确到 15-16 位了; 更改数据类型的成本,Mysql 比 Java 代码要难得多; 考虑到以上与 java 中不同几点,做点个人使用总结: 与商业金融相关字段要使用...Decimal 来表示,如金额,费率等字段; 参与各类计算如加,减,乘,除,sum,avg 等等,也要使用 Decimal; 经纬度,可以使用 double 来表示,这个可参考 Java,只要保证精度范围即可

1.6K10

SpringBoot入门建站全系列(三十三)集成validator校验接口数据

SpringBoot入门建站全系列(三十三)集成validator校验接口数据 一、概述 在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,如果我们直接将这些校验写死在代码里...=小数位数) 验证注解的元素值的整数位数和小数位数上限 BigDecimal的,BigInteger,CharSequence,byte,short,int,long和原始类型的相应的包装类; @Future...值被视为无效。 BigDecimal,BigInteger,byte,short,int,long和原始类型的相应的包装类 @NegativeOrZero 检查元素是负数还是。...BigDecimal,BigInteger,byte,short,int,long和原始类型的相应的包装类 @Positive 检查元素是否严格正。值被视为无效。...BigDecimal,BigInteger,byte,short,int,long和原始类型的相应的包装类 @NegativeOrZero 检查元素是正数还是

1K10

Thinking In Java第二章笔记

String str = new String(); // new String()调用String类的构造,构造一个对象。创建一个引用str指向刚刚构造出来的对象。...基本数据类型都具有包装类,是的可以再堆中创建一个非基本对象,用来表示对应的基本类型。 JavaSE5的自动拆箱,自动装箱能够转换包装类和基本类型。...高精度数字 BigInteger、BigDecimal。虽然属于包装类的范畴,但是没有对应的基本类型。...创建用来存放基本数据类型的数组,编译能确保这种数组的初始化,因为它会将这种数组所占内存全部置。 作用域 作用域决定了在其内定义的变量名可见性和生命周期。...调用System中的静态对象 PrintStream out。自带的非静态方法println。

37110

花了几个小时总结了一些容易出错的 Java 知识点

举个例子: // 不能使用一个值null的引用类型变量来调用非静态方法,否则会抛出异常 String str = null; if (str.equals("SnailClimb")) { ......不能使用一个值null的引用类型变量来调用非静态方法,否则会抛出异常 1.2. 整型包装类值的比较 所有整型包装类对象值的比较必须使用equals方法。...BigDecimal 1.3.1. BigDecimal 的用处 《阿里巴巴Java开发手册》中提到:浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用 equals 来判断。...反例 : 比如显示成交总额涨跌情况,即正负 x%,x 基本数据类型,调用的 RPC 服务,调用不成功时,返回的是默认值,页面显示 0%,这是不合理的,应该显示成中划线。...因为如果列表在任何时间从结构上修改创建迭代之后,以任何方式除非通过迭代自身remove/add方法,迭代都将抛出一个ConcurrentModificationException,这就是单线程状态下产生的

51911
领券