美文网首页
柒-关于Java变量类型定义及初始化的事情

柒-关于Java变量类型定义及初始化的事情

作者: 小秉子 | 来源:发表于2018-12-06 15:19 被阅读0次

    1、这个世界让我觉得讨厌

    其实我只是讨厌这个极端的世界,以及需要提前设定的很多痛苦的事情。
    没了啦,只是我之前用的VB.Net以及JS都是对数据类型定义比较宽大的语言,突然来到Java我真的很难习惯,而且是极端不习惯。

    2、关于String及char数据类型

    JS里面,我是从来没考虑过char类型的,但当我来到了Java的世界我才发现是原来String其实不是天生的东西,详情可以看qauchangqingwei博客里面说的:

    char是基本数据类型,而String是个类,属于引用数据类型。String类可以调用方法,具有面向对象的特征。

    因为对于char[]以及String的长期混淆,当我看到一个函数的传入参数为(String userName, String database, char[] password)时,我很自然的输入了("San","Shi","Shu")
    当然,毫无悬念地,错误了。
    错误不要紧,知道char[]String不一样,并且转换就行了对吧?
    ("San","Shi","Shu".toCharArray())
    反正对于这种真的很烦躁。

    3、关于String数组定义

    前期使用一个导出CSV的包,我看那个包的例程是需要调用ArrayList<String[]>的,那没问题,但接下来我想定义一个String[]的变量,接下来是我的定义方式:

    ArrayList<String[]> csvData = new ArrayList<String[]>();
    String[] csvHeader=new String()[];
    

    哎呀!错了!?
    错了!?!?!?
    没错,是错了。
    正确方式可以有:

    String[] straHeader = new String[csvHeader.length + 2];
    String[] straHeader = new String[2];
    String[] csvHeader;
    

    光定义就让我焦头烂额了,这种情况下就别纠结是否在定义时就必须确定数组大小等情况了。
    我就是觉得为什么这么麻烦的语言居然使用率这么高,JS不好么?


    4、关于String的相等判定

    我在做分词后的词性判定是,发现一个很神奇的事情,代码如下:

    for (org.ansj.domain.Term termEle : ToAnalysis.parse(str)) {
      if (termEle.getNatureStr() != "w" && termEle.getNatureStr() != "null") {
        System.out.println(termEle.getRealName() + "---|" + termEle.getNatureStr() + "|---"
          + ((Boolean) (termEle.getNatureStr().toString() == "w")));
      }
    }
    

    反正就是当词性是w的时候就判断为true,结果!!!结果如下:

    欢迎---|v|---false
    使用---|v|---false
    ansj---|en|---false
    seg---|en|---false
    ,---|w|---false
    (---|w|---false
    ansj---|en|---false
    中文---|nz|---false
    分词---|v|---false
    )---|w|---false
    ......
    

    各位看官能发现有问题么!?
    当然在我之前说的那个文章是有介绍这种情况以及原因的,反正String的相等就不要用==了,用termEle.getNatureStr().equals("w"),就是equals()函数。


    这东西耗了我2个小时,我还以为分词的包有问题呢....


    5、大小写问题以及数据类型的问题

    在定义数据类型时,首先必须关键字注意Stringstring是不同的,相对int以及IntChar以及char也是不同的东西,这是被微软害苦了的人的苦苦相告。
    其余像Integerint这种东西可以参考 java面试题之int和Integer的区别这种文章,实在让人太疯狂了我觉得。

    6、无奖竞猜

    我是否会在本系列写到“拾”之前完全没有Java的内容呢?

    相关文章

      网友评论

          本文标题:柒-关于Java变量类型定义及初始化的事情

          本文链接:https://www.haomeiwen.com/subject/sohocqtx.html