Java语法上的一些细节

像C++,C#啊,java啊这些高级语言的语法都差不多了。命名规范,基本类型,引用类型,一元二元三元运算符,表达式和流程控制。大概都是这么多内容吧。

    这里就一些细节的容易忽略的地方进行记录。

  1. java命名规范
    • 以Unicode字母、下划线、美元符号开头,包含其他字符的,不是关键字key words保留字的组合,大小写敏感。
    • 是基于16bit的unitcode字符的。  java本身的字符集就是Unitcode的,这样在写代码时就会有可能出现乱码的情况,比如在url中出现的字符会自动改为gbk编码,还有在socket传输时也会有编码问题,具体的问题等到写到了网络传输的时候再讨论。
    • 但是类名是ASCII字符的,因为有些操作系统不支持16bit。
    • 关键字中没有C++的sizeof,因为java中的类型大小事不会变的,跟操作系统无关。
    • goto和const是保留字。在汇编语言中是有goto的,被认为很容易出错,还增加复杂性,降低可读性。const是常量的意思,java中已经能够使用static final来表达这个意思了,因此这两个是没有必要的,呵呵,反正我是这么认为的。
  2. 基本类型

    共八种

    • 逻辑类型logical          boolean。 与C++不同,不能够跟1,0对应。
    • 字符型Textual             char    16bit         单引号的字符或者是用ascii码表示的字符'/xxxx'。通过下面的代码可以得到一个字符转化为16进制码之后的值:
    • 整数      byte 8bit,short 16bit,int 32bit, long 64bit。范围是-2(e-1) 到2(e-1) -1.
    • 这个范围是因为计算的计算方式都是使用补码进行计算的,因此一个比如说8位的数实际上是其二进制数所代表的补码的范围。
      比如一个8bit的二进制数能够表达的整数最小为00000000,最大为01111111。范围就是0到2(e-1) -1。
      其能够表示的负数为最大为11111111,最小为10000000,范围就是-1到-2(e-1) (正数的补码是他本身,负数的补码为反码加1。太不容易了,大学学的知识终于用上一次。)

    • 浮点型   float 32bit,  double 64bit   使用float a = 1.1的时候会有错误,因为1.1默认是double类型的。
    • 基本类型如果使用New来创建会有效率问题,因此放在了栈上。这也是java的非面向对象特征之一。
    • 可以通过装包转化为对应的类。并且java还提供了任意精度的类BigInteger和BigDecimal。在财务等对数字要求极为敏感的应用系统中,通常使用这种类型进行计算,来代替基本类型。
    • 在基本类型参加计算的时候会有自动提升类型的现象发生,char 可以直接提升为int 或者网上,其他类型的提升顺序为:byte,short,int,long,float,double.如下面的例子:
  3. 引用类型
    • 就是指向一块内存地址的引用。
    • java中不管是基本类型还是引用类型作为参数的时候都是值传递的。不过基本类型的值就是其字面的值,而引用的值指的是其所指向的内存地址,但是内存地址中的内容是可以改变的。
  4. 变量
    • 方法之外的变量被称为类变量或者是实例变量,能够作为类型信息的一部分载入文本段,然后通过内存清空就行初始化。
    • 方法之内的变量为本地变量或者临时变量,使用前必须初始化,不使用可以不进行初始化。
  5. 表达式
    • %这个运算符是带符号的,即负数的余数也是负的。
    • 浮点数参与运算的时候,会先转化为二进制,因而会有除不尽的情况,这时候就会转为最贴切其的二进制数进行计算,因此会有精度的问题,比如计算2 - 1.1的时候,就会得到结果0.89999999.可以使用bigdecimal来解决这个问题。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值