java返回值的使用
一、返回一般数据类型八大基本数据类型之一(byte,char,short,int,long,float,double,boolean)
Object
Object是java中所有类的始祖,所有类都默认继承了Object。Object类型的变量可以指向任意类型的对象,但Object类型的变量只能作为实际对象的持有者,若要对对象的内容进行具体操作必须明确该对象的原始类型并进行相应的类型转换。
方法
Object 类中的equals 方法:
public boolean equals(Object obj) {
return (this == obj);
}
在Java规范中,对 equals 方法的使用必须遵循以下几个原则:
①、自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
②、对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。
③、传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。
④、一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改
⑤、对于任何非空引用值 x,x.equals(null) 都应返回 false。
== 比较两个对象在栈内存中的引用地址是否相等。
getClass()在 Object 类中如下,作用是返回对象的运行时类。
public final native Class getClass();
这里详细的介绍 getClass 方法返回的是一个对象的运行时类对象,这该怎么理解呢?Java中还有一种这样的用法,通过 类名.class 获取这个类的类对象 ,这两种用法有什么区别呢?
public class Parent {}
public class Son extends Parent{}
public void testClass(){
Parent p = new Son();
System.out.println(p.getClass());
System.out.println(Parent.class);
}
结论:class 是一个类的属性,能获取该类编译时的类对象,而 getClass() 是一个类的方法,它是获取该类运行时的类对象。
还有一个需要大家注意的是,虽然Object类中getClass() 方法声明是:public final native Class getClass();返回的是一个 Class,但是如下是能通过编译的:
Class。
hashCode 在 Object 类中定义如下:
public native int hashCode();
通过 equals 方法判断集合中的每一个元素是否重复,但是如果集合中有10000个元素了,但我们新加入一个元素时,那就需要进行10000次equals方法的调用,这显然效率很低。于是,Java 的集合设计者就采用了 哈希表 来实现。
哈希算法也称为散列算法,是将数据依特定算法产生的结果直接指定到一个地址上。这个结果就是由 hashCode 方法产生。这样一来,当集合要添加新的元素时,先调用这个元素的 hashCode 方法,就一下子能定位到它应该放置的物理位置上。
两个对象相等,其 hashCode 一定相同;
两个对象不相等,其 hashCode 有可能相同;
hashCode 相同的两个对象,不一定相等;
hashCode 不相同的两个对象,一定不相等;
对于 Map 集合,我们可以选取Java中的基本类型,还有引用类型 String 作为 key,因为它们都按照规范重写了 equals 方法和 hashCode 方法。但是如果你用自定义对象作为 key,那么一定要覆写 equals 方法和 hashCode 方法,不然会有意想不到的错误产生。
toString 方法
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
getClass().getName()是返回对象的全类名(包含包名),Integer.toHexString(hashCode()) 是以16进制无符号整数形式返回此哈希码的字符串表示形式。
打印某个对象时,默认是调用 toString 方法,比如 System.out.println(person),等价于 System.out.println(person.toString())
java.lang.Integer、
public final class Integer extends Number implements Comparable{}
Integer 是用 final 声明的常量类,不能被任何类所继承。并且 Integer 类继承了 Number 类和实现了 Comparable 接口。 Number 类是一个抽象类,8中基本数据类型的包装类除了Character 和 Boolean 没有继承该类外,剩下的都继承了 Number 类,该类的方法用于各种数据类型的转换。Comparable 接口就一个 compareTo 方法,用于元素之间的大小比较
int 类型在 Java 中是占据 4 个字节,所以其可以表示大小的范围是 -2 31——2 31 -1即 -2147483648——2147483647,我们在用 int 表示数值时一定不要超出这个范围了。


返回基本类型的数据
SELECT COUNT(*) FROM se_install_check_item WHERE installCheckId = #{deviceInstallCheckId}
Integer getByParentId(@RequestParam(value = "deviceInstallCheckId", required = false)Integer deviceInstallCheckId);
Map getByParentId(Integer ovId);
@Override
public Map getByParentId(Integer ovId) {
// TODO Auto-generated method stub
Map map = new HashMap();
Integer counts = mapper.getByParentId(ovId);
map.put("counts", counts);
return map;
}
@PostMapping("/queryByParentId")
public AssembleJSON installcheckItem(String ids){
if(null!=ids&&ids.length()>0) {
for(int i =0;i0;i--) {
newRadarRecordChartName.add(radarRecordChartName.get(i));
}
for(ScadaVO scadaVO:newRadarRecordChartName) {
datalist.add(scadaVO.getTagValue());
maxlist.add(scadaVO.getTagCode());
if(comparelist.contains(scadaVO.getTimestamp())) {
textlist.add(scadaVO.getTimestamp().substring(11, 13));
}else {
textlist.add("");
}
}
maps.put("datalist", datalist);
maps.put("textlist", textlist);
maps.put("maxlist", maxlist);
return maps;
}
var names = ["0:00","1:23","2:22","3:21","4:20","5:19","6:18","7:17","8:16","9:15","10:14","11:13","12:12","13:11","14:10","15:09","16:08","17:07","18:06","19:05","20:04","21:03","22:02","23:01"];
var url = CONTEXT_PATH +"/cusviews/dev/getRadarChartName";
var param = {
deviceCode:deviceCode
}
var retData = $.getData(url,param)
if(0==retData.datalist.length||0==retData.textlist.length||0==retData.maxlist.length){
return;
}
var rlt = {
"data" : []
};
var rltdata = [];
for(var i = 0, len = names.length; i < len; i++){
debugger;
var flag = false;
for(var key in retData.textlist){
var nItem = names[i], noKey = nItem.split(":")[0], nVal = nItem.split(":")[1];
if(nVal==retData.textlist[key]){
flag = true;
var obj = {};
obj.text = retData.textlist[key],obj.max = retData.maxlist[key];
rlt.data.push(obj);
}
if(!flag){
}
}
}

Map集合用于排序问题
public MapgetRadarChartData(String deviceCode)
{
//每点的数据
List radarCeilTime = prPreStationMapper.getRadarCeilTime(deviceCode);
if(CollectionUtils.isEmpty(radarCeilTime))
{
return null;
}
String[] dateString = {"00","23","22","21","20","19","18","17","16","15","14","13","12","11","10","09","08","07","06","05","04","03","02","01"};
Map radarData = new HashMap(1);
for(int i=0;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?