精华内容
下载资源
问答
  • 关于比较CompareTo的用法

    万次阅读 2016-07-03 14:55:02
    CompareTo的比较原理:  先读取出字符串的第一个“字母”进行比较比较的方法是ascii码表的值(字符所对应的十进制值),如果前面的大那么返回1,后面的大返回-1;此位置相同,继续比较下一位,直到最后一位,...

    CompareTo的比较原理:

          先读取出字符串的第一个“字母”进行比较,比较的方法是ascii码表的值(字符所对应的十进制值),如果前面的大那么返回1,后面的大返回-1;此位置相同,继续比较下一位,直到最后一位,如果都相同的话,就返回0;


       

    例如:

    int cc= "13".compareTo("12");
    System.out.println(cc);
    int dd= "11".compareTo("12");
    System.out.println(cc);
    int dd= "aaa".compareTo("aaa");
    System.out.println(cc);
    结果就是:1(换行) -1(换行)0。


    运用:

      在做资金拆分的时候要校验拆分, 就是通比较两个 输入的金额和主表的余额(需要拆分的金额), 通过返回结果(0或者-1)到前台页面,当然这个也是通过ajax请求来做的。

    // 拆分金额校验
    	@ResponseBody
    	@RequestMapping("/checkAmt")
    	public int checkAmt(Double amt, Long detailId, Long fundsDirection) {
    		ReconFundsDetailForQuery query = new ReconFundsDetailForQuery();
    		query.setId(detailId);
    		List<ReconFundsDetailDto> dto_l = reconFundsDetailService.query(query);
    		ReconFundsDetailDto dto = dto_l.get(0);
    		Long fundsAmtIn = dto.getFundsAmtIn() != null ? dto.getFundsAmtIn() : LONG_ZERO;// 入金
    		Long fundsAmtOut = dto.getFundsAmtOut() != null ? dto.getFundsAmtOut() : LONG_ZERO;// 出金
    		BigDecimal bigAmt = new BigDecimal(String.valueOf(amt));// 拆分金额
    		Map<String, Object> paramMap = new HashMap<String, Object>();
    		List<Long> aprrovalStatus = new ArrayList<Long>();
    		aprrovalStatus.add(AprrovalStatus.COMMITED.getKey());
    		aprrovalStatus.add(AprrovalStatus.SYNCHRONIZED.getKey());
    		paramMap.put("aprrovalStatus", aprrovalStatus);
    		paramMap.put("parentFundsId", detailId);
    		Long commitedAmt = LONG_ZERO;
    		Long CommitedTotalAmt = reconFundsDetailTmpService.queryCommitedTotalAmt(paramMap); // 大于0入金多,小于0出金多
    		if (CommitedTotalAmt != null) {
    			commitedAmt = CommitedTotalAmt;
    		}
    		if (fundsAmtIn.longValue() != LONG_ZERO && fundsAmtOut.longValue() == LONG_ZERO) {// 明细表入金类型
    			if (fundsDirection == FundDirection.IN.getKey()) {// 用户选择是入金
    				BigDecimal balance = NumberUtils.longToBigDecimal(fundsAmtIn - commitedAmt);
    				if (balance.compareTo(bigAmt) == -1) {
    					return -1;
    				}
    			}
    		}
    		if (fundsAmtIn.longValue() == LONG_ZERO && fundsAmtOut.longValue() != LONG_ZERO) {// 明细表出金类型
    			if (fundsDirection == FundDirection.OUT.getKey()) {// 用户选择是出金
    				BigDecimal balance = NumberUtils.longToBigDecimal(fundsAmtOut + commitedAmt);
    				if (balance.compareTo(bigAmt) == -1) {
    					return -1;
    				}
    			}
    		}
    		if (fundsAmtIn.longValue() == LONG_ZERO && fundsAmtOut.longValue() == LONG_ZERO) {
    			return -1;
    		}
    		return 0;
    	}











    展开全文
  • 能否理解为两个字符串的对应元素逐个比较,谁首先出现ASC码值小于对方的元素。就说:这个元素小于另一个元素? 例如:"abcdfeg"小于“z”“abcd”小于“abcccccccc” 以及“24 XXXXXXXXXX”小于“5”? 如果我理解的...
  • == : 等号比较两个纯字符串时,比较基本类型,如果值相同,则返回 true  而比较引用时,如果引用指向同一内存中的同一对象,则返回 true equals: 只比较两个对象的内容是否相等,相等则返回true public void ...

    == :     等号比较两个纯字符串时,比较基本类型,如果值相同,则返回 true

          而比较引用时,如果引用指向同一内存中的同一对象,则返回 true

    equals: 只比较两个对象的内容是否相等,相等则返回true


    public static void main(String[] args) {
            String string1 = new String("ABC");
            String string2 = new String("ABC");
            System.out.println(string1 == string2);
            System.out.println();
            String string3 = "ABC";
            String string4 = "ABC";
            String string5 = "AB" + "C";
            System.out.println(string3 == string4);
            System.out.println(string5 == string4);
            System.out.println();
    
            String string6 = "ABC";
            String string7 = "AB";
            String string8 = string7 + "C";
            System.out.println(string6 == string8);
            System.out.println();
    
        }

    false
    
    true
    true
    
    false


    所以建议尽量使用equals比较大小
    参考:http://blog.chinaunix.net/uid-23781137-id-3436455.html

    展开全文
  • 关于比较js中两个对象相等 ==

    万次阅读 2012-09-17 15:57:44
    “如果两个操作数都是对象,则比较他们是不是同一个对象,如果两个操作数都指向同一个对象,则相等操作符返回true,否则,返回false”。 我做了一个例子 function person() { // define some peroperty here } ...

    今天看红宝书,里面讲到相等操作符,也就是==和===

    “如果两个操作数都是对象,则比较他们是不是同一个对象,如果两个操作数都指向同一个对象,则相等操作符返回true,否则,返回false”。

    我做了一个例子

    function person() {
    	// define some peroperty here
    }
    
    var p1 = new person();
    var p2 = new person();
    
    console.log(p1 == p2); //false

    按照他说的指向同一个对象了啊,为什么返回的是false呢?

    然后我又查了查,发现有人这样说

    “如果等号两边是对象或者对象的函数,则比较地址是否相等(即判断两者是否引用的同一对象)”

    可是这里的地址指什么呢?

    然后 有综合了一些查询结果,发现这里的地址应该指的是内存地址。“每生成一个实例就会重新占用一些内存”,所以两次生成的person占用的是不同的内存地址。所以返回结果是false。


    那这样的话怎么样才能用==返回true呢?我又查了一下,没有找到特别合适的例子,指找到一个用prototype定义函数可以得到== 返回true的效果


    function person(name) {
    	this.name=name;
    }
    
    var p1 = new person("p1");
    var p2 = new person("p2");
    
    console.log(p1 == p2); //false
    			
    person.prototype.sayHi = function() {
    	// do sayHi here
    }
    
    console.log(p1.sayHi() == p2.sayHi()); //true
    console.log(p1.sayHi() === p2.sayHi()); //true


    展开全文
  • java中关于字符串相等的比较问题

    千次阅读 2019-02-27 16:26:53
     Java中,关于比较两个字符串是否相等的问题,经常会出现。下面将分析使用 ==(注意:Java中 = 是赋值运算符,== 是比较是否相等) 和 equals()方法 来比较两个字符串相等的区别:  简单一句话,==比较的是两个...

     Java中比较两个字符串是否相等的问题

      Java中,关于比较两个字符串是否相等的问题,经常会出现。下面将分析使用 ==(注意:Java中 = 是赋值运算符,== 是比较是否相等) 和 equals()方法 来比较两个字符串相等的区别:

      简单一句话,==比较的是两个字符串的地址是否为相等(同一个地址),equals()方法比较的是两个字符串对象的内容是否相同(当然,若两个字符串引用同一个地址,使用equals()比较也返回true)。

      字符串比较之所以看起来复杂,是因为值类型和引用类型两种数据类型的区别:值类型,例如 int 类型,当定义并初始化两个 int 类型的变量,int i = 1;int j = i,这两个变量 i , j 存放的的就是1这个值,使用 if(i == j)判断时,自然返回 i 和 j 是相等的 。引用类型,例如字符串类型, 当定义并初始化两个字符串类型的变量,String s = "abc"; String s2 = s; 实际上是只创建了一个String类型的对象,该对象的值为abc,而 s 和 s2 都引用这一个对象。(关于值类型和引用类型的内容稍后会更新)

     基础篇:

      下面将举出两个例子,分析两种情况下的字符串比较问题:

      例1. 使用new关键字声明两个String类型的变量

               

            
     1          String s1 = new String("abc");
     2        String s2 = new String("abc");
     3 
     4       //分别使用.equals()和==进行比较
     5         if(s1.equals(s2))
     6       {
     7          System.out.println("可以使用 equals  来比较");
     8       }else
     9       {
    10          System.out.println("不可以使用 equals  来比较");
    11       }
    12       if(s1 == s2)
    13       {
    14          System.out.println("可以使用== 来比较");
    15       }else  
    16       {
    17          System.out.println("不可以使用== 来比较");
    18       }
    

      运行程序发现,用equals比较返回true,用 == 比较返回false。原因如下:

      因为 == 比较的是两个字符串对象的地址是否相同(是否为同一个地址),当使用new关键字创建一个对象的时候,该对象单独占据一块存储空间,存放llg这个字符串的值。所以s1 s2两个字符串虽然值相同,但是存储的地址不是一个地址,例如两个人都叫l“李四”但是他们的住址不在一个地方。当使用==来比较的时候,比较的是两个字符串的地址是否是同一个,所以返回false。但是使用equals()方法比较这两个字符串,将会比较两个字符串的值是否相同,所以返回true。

      例2. 正常情况下的字符串声明并定义。   

          //声明并初始化两个赋值一样的字符串
    
          String s1 = "abc";
          String s2 = "abc";
    
          //使用.equals()方法比较两个字符串是否相等
          if(s1.equals(s2))
          {
             System.out.println("可以使用 equals  来比较");
          }else
          {
             System.out.println("不可以使用 equals  来比较");
          }
    
          //使用 == 比较两个字符串是否相等
            if(s1 == s2)
            {
             System.out.println("可以使用 == 来比较");
            }else
            {
              System.out.println("不可以使用 == 来比较");
            }

      程序经过运行,发现两个方式都返回true。那么这是为什么呢?原因如下:

      一般我们认为,栈中存放基本类型的变量和对象的引用变量,而new出来的对象和数组存放在堆中。然而除此之外还有一块区域叫做常量池。像我们通常想String s1 = "abc"; 这样申明的字符串对象,其值就是存储在常量池中。当我们创建String s1 = "abc"这样一个对象之后,"abc"就存储到了常量池中,当我们创建引用String s2 = "abc" 的时候,Java底层会优先在常量池中查找是否存在"abc",如果存在则让s2指向这个值,不会重新创建。所以使用 == 比较时,因为地址相同,所以比较的结果是true。

      那么问题回来了,既然是有常量池,是不是字符串如果不是new出来的(一般也不会这么new,声明字符串变量一般像例2这么写),那么这些字符串都是从常量池引用同一个对象,所以用 == 比较就行了?答案是可以。

    展开全文
  • 关于迟滞比较器的解释

    万次阅读 2017-07-20 17:01:37
    关于迟滞比较器的解释 迟滞比较器又可理解为加正反馈的单限比较器。 单限比较器,如果输入信号Uin在门限值附近有微小的干扰,则输出电压就会产生相应的抖动(起伏)。在电路中引入正反馈可以克服这一缺点。  ...
  • 关于FILETIME的比较

    千次阅读 2010-10-21 10:22:00
    一直对FILETIME中的参数不太了解是什么意思, 也不知道怎么比较先后,之前都是转成systemtime再比较,感觉有点麻烦。终于发现有个API可以直接比较,CompareFileTime,具体的可以查MSDN。  ...
  • 关于Integer比较相等的问题

    千次阅读 2018-07-04 15:33:08
    1.通过new出来的两个Integer对象比较时,==是比较的对象地址,等同于一般对象比较的==,equals则会比较其内部的int值是否相等。因为内部重写了equals方法:public boolean equals(Object obj) { if (obj instanceof...
  • 关于stm32输出比较不同模式的分析

    万次阅读 2020-03-28 18:24:00
    关于stm32输出比较不同模式的分析 输出比较模式总共有6种。分别是: TIM_OCMode_Timing 输出比较时间模式 (输出引脚冻结无效) TIM_OCMode_Active 输出比较主动模式 (匹配时设置输出引脚为有效电平,当计数值为比较...
  • 关于resin和jboss的比较

    千次阅读 2011-01-19 10:21:00
    关于resin和jboss的比较
  • 关于SQLite和SQLCE的比较

    千次阅读 2014-06-15 18:58:52
    最近在网上也看了很多关于SQLite和sqlce的比较
  • mybatis 关于时间比较的sql

    千次阅读 2019-04-08 13:05:44
    mysql、oracle关于时间格式化的函数: Mysql中使用DATE_FORMAT函数:DATE_FORMAT(create_date,'%Y-%m-%d%H:%i:%S') Oracle中使用to_date函数和to_char函数:TO_DATE('2018-11-2414:01:39','yyyy-MM-dd hh24:mi:ss'...
  • sql查询 关于日期比较

    千次阅读 2017-03-05 16:40:36
    想要查询符合时间区间的数据总数,但老报类型错误,用to_date(‘时间’,‘格式’)转一下就okselect count(*) as passCount from TBTKY_APPLYFORM t where t.f_avalstatus!=0 and t.f_avaltime > (to_date('2015-01-...
  • 今天在《推荐系统开发实战》的读者群里聊天,在探讨技术问题的时候发现也有朋友对一些非技术的问题比较感兴趣,这里进行总结和分享,希望能够帮助到看这篇文章的人。 欢迎加我的微信进行技术交流,非技术的人生思考...
  • 关于矩阵比较大小的故事

    千次阅读 2016-11-30 17:05:27
    以为这个博客会永远的荒芜下去…没想到这时候可以用来自己做一些关于代码作业的小的记录用。做好了几年以后回头不可思议的看着负基础的自己认真的记录这些可能很简单的事情的准备,开始吧。 题目部分//主函数部分 ...
  • 关于NodeJS PHP Python Java比较

    千次阅读 2018-04-18 15:53:16
    NodeJS是一种异步调用的脚本语言,其相对而言,与PHP Python Java比较如下优势1、运行效率非常高,因其异步所以可以充分利用CPU的多核...非常难于把控,特别是call back2、相关资源比较少,对于复杂业务逻辑有欠缺...
  • 我之前有通过strftime()来获取当前的系统时间,然后现在想通过比较同个数据传入的时间前后间隔了多少秒,进而进行相应的操作,比如如果同个数据传入时间间隔大于10秒应当以于删除,该怎么比较? 谢谢各位大神!
  • Python中关于dict和set的比较

    万次阅读 2018-03-16 17:22:20
    Python中关于dict和set的比较 语法 dict set 定义 通过键-值储存的字典 只储存list值的集合 性质 键和值一一对应 储存的值不能重复 用法 存入:字典名[‘键’] = 值 删除:字典名.pop(‘键’)...
  • 关于 python 中比较运算的顺序

    万次阅读 2019-03-20 17:39:36
    先来看一个例子: ...python中的比较运算表达式都可以这样拆解, 就像小学做的数学题目一样, 只不过小学的时候我们没有思考这里面的具体逻辑关系 第二个例子 1 < 2 < 3 < 4 等同于 1 < 2 and 2 &l...
  • 有一个byte[] 里面存9个byte 我想要自己定义一个byte来跟9个每个比较是否相等,请问我改怎么做啊 byte[] byte1={0,0,0,0,0,0,0,0}; public void getCommand(byte[] bytes) { for(int j=0;j;j++){ System....
  • 在MySQL数据库中字段是TimeStamp类型的,在MyBatis的Mapper中传入参数是java.util.Date类型的,怎么实现日期的比较?我试过直接用大于大小比较不对,都转化为unix时间戳再比较也不对,最后把传入参数改为日期格式的...
  • 关于junit和testng的比较

    千次阅读 2016-09-06 19:27:18
    因为可以使用assertj,这是个类是building的断言,使用起来比较舒服,所以不管是junit还是testng都可以使用这个断言 二、整合spring boot 1.junit 1)@SpringBootTest(classes = Application.class),通过注解...
  • 关于string字符串大小比较以及运算符重载  今天在写项目的时候遇到两个时间字符串需要比较大小的情况,例:"20181023"和"20181020"比较大小,想都没想就写出了下面的代码,这里有人会问为什么...
  • 关于Mapper文件中日期比较

    千次阅读 2019-01-17 13:29:53
    对于同一天内不能用&gt;=或者&lt;=查出同一天的数据 可以使用to_number函数和to_char来实现完成 sql写法: to_number(to_char(sysdate,'yyyyMMdd')) &gt;= 20180102(类似的时间格式数据) ...
  • 关于synchronized与lock的性能比较

    万次阅读 2016-09-09 13:41:35
    1.关于两者的实现的比较A).一般认为synchronized关键字的实现是源自于像信号量之类的线程同步机制,涉及到线程运行状态的切换,在高并发状态下,CPU消耗过多的时间在线程的调度上,从而造成了性能的极大浪费。然而真...
  • 关于sinX与y的大小比较取值范围计算

    千次阅读 2016-11-08 11:22:05
    关于sinX与y的大小比较取值范围计算@(概率论)在求分布函数的时候,常常有已知XX的分布函数求Y=g(X)Y=g(X)的分布函数类型。往往不小心就会计算出错误的范围,从而导致分布函数求错。比如:X∈[0,π]X \in [0,\pi]则...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 104,965
精华内容 41,986
关键字:

关于比较