----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------

第一:char字符转换
public class Text {

public static void main(String[] args) {
  // TODO Auto-generated method stub
        String s="ABC";
        char[] number={'1','2','3'};
  System.out.print(s+" ease as "+number);
       
 }

}
该程序打印的是:ABC ease as [C@1542a75
char数组不是字符串,想要将一个char数组转换成一个字符串,就要调用String.valueof(char[])方法。某些类库中的方法对char数组提供了类似字符串的支持,通常是提供一个object版本的重载方法和一个char[]版本的重载方法。改:
public class Text {

public static void main(String[] args) {
  // TODO Auto-generated method stub
        String s="ABC";
        object number=new char[]{'1','2','3'};
  System.out.print(s+" ease as ");
             System.out.println(number);
       
 }

}
第二:比较方法(equals)
public class Text {

public static void main(String[] args) {
  // TODO Auto-generated method stub
        final String pig="length: 10";
        final String dog="length: "+pig.length();
        System.out.print("Animal are equal:"+pig==dog);
       
 }

}
程序的结果是;false
在比较对象引用时,应该优先使用equals方法而不是==操作符。除非需要比较的是对象的标识而不是对象的值,另外,字符串连接的优先级不应该和加法一样。改:
System.out.println("Animal are equal:"+pig.equals(dog));

第三:字符转化
public class Text {
   
 public static void main(String[] args) {
  // TODO Auto-generated method stub
        byte bytes[]=new byte[256];
        for(int i=0;i<256;i++){
         bytes[i]=(byte)i;
         String str=new String(bytes);
         for(int i=0,n=str.length();i<n;i++)
          System.out.print((int)str.charAt(i)+"");
        }
 }

}
每当要将一个byte序列转换成一个String时,你都在使用一个字符集,不管是否显示指定了它。指定byte数组来构造一个新的String时,该新String的长度是字符集的一个函数,因此,它可能不等于byte数组的长度。
第四:块注释符
public class Text {
 public static void main(String[] args) {
 System.out.print(classify('n')+classify('+')+classify('2'));
 }
 static String classify(char ch){
  if("0123456789".indexOf(ch)>=0)
   return "NUMERAL";
  if("abcdefghijklmnopqrstuvwxyz".indexOf(ch)>=0)
   return "LETTER";
 /* (Operators not supported yet)
    if("+-*/".indexOf(ch)>=0)
     return "OPERATOR";
    */
  return "UNKNOWN";
 }

}
这个错误很简单,只是告诉你,块注释(/*  */)不可靠地注释掉代码,应该用单行的注释(//)序列来代替;
第五:赋值
public class Text {
 public static void main(String[] args) {
 int j=0;
 for(int i=0;i<100;i++)
 System.out.print(j);
  
 }

}
程序重复100次之后,还是等于0;
修正该程序非常简单:
for(int i=0;i<100;i++)
j++;
不要再单个表达式中对相同的变量赋值超过一次;

第六:符号运算以及替换
public class Text {
 public static void main(String[] args) {
 int minutes=0;
 for(int ms=0;ms<60*60*1000;ms++)
  if(ms % 60*1000 ==0)
   minutes++;
 System.out.print(minutes);
 }

}
循环体看起来是每当毫秒计数器的计数值是60000的倍数,对分钟计数器执行增加量操作,这在循环生命周期内总共发生了3600000/60000次,即60次;但是打印的是6000;这是因为表达式【(ms %60 *1000】!=【(ms % 60000)】
改正:
public class Text {
 private static final int MS_PER_HOUR=60*60*1000;
 private static final int MS_PER_MINUTE=60*1000;
 public static void main(String[] args) {
 
  int minutes=0;
 for(int ms=0;ms<MS_PER_HOUR;ms++)
  if(ms % MS_PER_MINUTE ==0)
   minutes++;
 System.out.print(minutes);
 }

}

----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------

转载于:https://www.cnblogs.com/lihongyin/archive/2013/01/14/2859940.html

JAVA中易出错的小问题(二)相关推荐

  1. java编写代码时易出错_JAVA中易出错的小问题(一)

    ----------- android培训.java培训.java学习型技术博客.期待与您交流! ------------ 第一:奇数性 static boolean isodd(int i){ re ...

  2. java犯的小错误_[Java教程]十个JavaScript中易犯的小错误,你中了几枪?

    [Java教程]十个JavaScript中易犯的小错误,你中了几枪? 0 2015-06-01 12:00:19 序言 在今天,JavaScript已经成为了网页编辑的核心.尤其是过去的几年,互联网见 ...

  3. Java中易忽略的基础知识

    欢迎关注我的公众号[软件大爆炸] Java学习中的碎碎念 Java中易忽略的基础知识 Java面向对象基础 Java中的核心类 Java抽象类和接口 Java中的异常 Java中的泛型与集合 Java ...

  4. 在JAVA中记录日志的十个小建议

    JAVA日志管理既是一门科学,又是一门艺术.科学的部分是指了解写日志的工具以及其API,而选择日志的格式,消息的格式,日志记录的内容,哪种消息对应于哪一种日志级别,则完全是基于经验.从过去的实践证明, ...

  5. Java中的大端和小端

    Java整型的字节序是() A.Little-Endian(小端) B.Big-Endian(大端) C.由运行程序的CPU决定 D.由编译程序的CPU决定 对于大小端,我估计肯定有很多开发人员跟我一 ...

  6. 猫头鹰的深夜翻译:在JAVA中记录日志的十个小建议

    前言 首先,这篇文章没有进行任何的日志功能的详细介绍,而是对日志提出了几种最佳实践.适合对日志记录有所了解的同学阅读. 下面是正文: JAVA日志管理既是一门科学,又是一门艺术.科学的部分是指了解写日 ...

  7. java中常用的工具类(二)FtpUtil, 汉字转拼音,zip工具类,CollectionUtil,MathUtil,

    下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java package com.itjh.javaUtil;import java.io.File; import ...

  8. java中注解的使用与实例 (二)

    java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解 ...

  9. Java中的泛型全解析(二)

    Java中的泛型全解析(一) 泛型中的约束和局限性 现在我们有泛型类 不能用基本类型实例化类型参数 运行时类型查询只适用于原始类型 泛型类的静态上下文中类型变量失效 不能在静态域或方法中引用类型变量. ...

  10. Java中的屠龙之术(二):如何方便快捷地生成.class文件

    在之前的"Java中的屠龙之术:如何修改语法树"中,我们详细介绍了如何使用Javac源码提供的工具类来修改语法树. 而在此基础上,有一款开源工具javapoet可以更加快捷地生成字 ...

最新文章

  1. ecplise 工具字体大小的调整
  2. Python如何优化列表接口进行分页
  3. 百练OJ:4003:十六进制转十进制(python三行代码实现)
  4. Java Set集合详解及Set与List的区别
  5. linux shell中各种分号和括号,linux shell 各种分号,括号使用方法总结
  6. Spring中的动态代理
  7. 50种方法巧妙优化你的SQLServer数据库(转)
  8. 2018-2019-2 20189205《移动平台应用开发实践》第三周作业
  9. mysql node 可视化_使用Prometheus进行Substrate节点可视化监控
  10. matlab中度数化成度分秒,度分秒转换:32.68度用度、分、秒表示=? 求解释!?请帮忙...
  11. Hubble数据库x某股份制商业银行 信用卡反欺诈项目构建2.4亿条社交网络库
  12. 元宇宙掀起新浪潮,觅伊打造沉浸式社交场景
  13. “创享杯”第一届电子数据取证线上大比武答案(自做)
  14. 基于KF32A156 - MCU Bug list
  15. 里加一列为1_风味人间2:大厨做的拔丝苹果,拉丝1米长,根根分明
  16. 读《质量·软件·管理》有感
  17. 【数据挖掘】任务6:DBSCAN聚类
  18. PHP 简单案例[5]
  19. 武汉长江大桥(游走武汉)
  20. CDQ分治入门 + 例题 Arnooks's Defensive Line [Uva live 5871]

热门文章

  1. php数组合成函数,PHP合并数组函数array_merge用法分析
  2. c语言画圆登录窗口,C语言画圆问题。怎么跳过画图界面直接出来了?
  3. kafka-windows10中测试使用
  4. mysql8下的密码过期问题以及navicat登录mysql报错的问题
  5. java-idea-3批处理文件运行jar包
  6. 页面转发后文本显示???_无代码软件开发中超文本显示设计
  7. ural 1112,LIS
  8. linux入门和简单应用举例
  9. Linux下创建和删除软、硬链接(ln)
  10. PowerPoint优点全体验