• 1、Java中byte、short、int、long的取值范围

    byte:[-128,127]

    short:[-32768,32767]

    int:[-2147483648,2147483647]

    long:[-9223372036854775808,9223372036854775807]

  • 2、声明long类型的变量,在数字后面加大写L 
    long lNum = 999999999L;
  • 3、Java在拼接字符串时,+和StringBuilder(这个类只在J2SE5及以上版本提供,以前的版本使用StringBuffer类)的区别

    我们看如下的代码

    public static void main(String[] args){
String s = "abc";
String ss = "ok" + s + "xyz" + 5;
System.out.println(ss);
}

    将上述代码反编译后的代码

    public static void main(String args[]){
    String s = "abc";
    // 0 0:ldc1 #16 <String "abc">
    // 1 2:astore_1
    String ss = (new StringBuilder("ok")).append(s).append("xyz").append(5).toString();
    // 2 3:new #18 <Class StringBuilder>
    // 3 6:dup
    // 4 7:ldc1 #20 <String "ok">
    // 5 9:invokespecial #22 <Method void StringBuilder(String)>
     // 6 12:aload_1
     // 7 13:invokevirtual #25 <Method StringBuilder StringBuilder.append(String)>
     //   8 16:ldc1 #29 <String "xyz">
     // 9 18:invokevirtual #25 <Method StringBuilder StringBuilder.append(String)>
     // 10 21:iconst_5
     // 11 22:invokevirtual #31 <Method StringBuilder StringBuilder.append(int)>
     // 12 25:invokevirtual #34 <Method String StringBuilder.toString()>
     // 13 28:astore_2
     System.out.println(ss);
     // 14 29:getstatic #38 <Field PrintStream System.out>
     // 15 32:aload_2
     // 16 33:invokevirtual #44 <Method void PrintStream.println(String)>
     // 17 36:return
    }

    从上面的代码很容易看出,虽然在源程序中使用了"+",但在编译时仍然将"+"转换成StringBuilder。因此,我们可以得出结论,在Java中无论使用何种方式进行字符串连接,实际上都使用的是StringBuilder。

    因此,如果在代码中大量使用+拼接字符串,就会创建很多的StringBuilder的对象,必然会使性能降低。所以在需要大量拼接字符串的时候使用StringBuilder代替+。

    注:(StringBuffer是线程安全的,效率略低;StringBuilder线程不安全,效率高,在大部分单线程环境使用StringBuilder会更好。)

  • 4、Java中比较两个字符串是否相等要使用equals而不能使用==,==是用于比较两个引用是否是同一个对象。

Java基础语法要点的更多相关文章

  1. java基础语法要点<一>(基于1.8)

    http://yishouce.com/java/run http://www.shucunwang.com/RunCode/java/ 数据类型 8种基本数据类型及对应的 类型封装器 byte, s ...

  2. java基础语法要点<二>(基于1.8)

    注解(元数据) 从jdk5 开始,java支持在源文件中嵌入补充信息,称为注释(annotation).注释不会改变程序的动作,也就不会改变程序的语义.但在开发和部署期间,各种工具可以使用这类信息.元 ...

  3. Java编程基础阶段笔记 day04 Java基础语法(下)

    day04 Java基础语法 (下) 笔记Notes要点 switch-case语句注意 switch-case题目(switchTest5) 循环执行顺序 if-else 实现3个整数排序 Stri ...

  4. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  5. Java基础语法(下篇)

     Java基础语法(下篇) 内容概要:        (1)函数的定义        (2)函数的特点        (3)函数的应用        (4)函数的重载               ...

  6. Java基础语法(上篇)

                     Java基础语法(上篇) 知识概要: (1)关键字的表示与规范       (2)标示符              (3)注释                (4 ...

  7. java——基础语法

    java基础语法 1.关键字:java赋予特殊含义的单词. 2.标识符:程序中开发人员自定义的名词,例如:类名,函数名,变量名(注意事项:①不能以阿拉伯数字开头②不能采用关键字). 3.常量:固定的数 ...

  8. java基础语法(二)--单列模式

    java基础语法(二)--单列模式 /** * 功能:单列模式 * @author Administrator * */ public class SingletonTest { public sta ...

  9. java基础语法(一)

    java基础语法(一) 1.类是一种抽象的概念,对象是类的一种具体表示形式,是具体的概念.先有类,然后由类来生成 对象(Object).对象又叫做实例(Instance). 2.类由两大部分构成:属性 ...

随机推荐

  1. java 微信红包算法代码实现及架构设计

    转载至:https://www.zybuluo.com/yulin718/note/93148 微信红包的架构设计简介 架构 @来源于QCon某高可用架构群整理,整理朱玉华. 背景:有某个朋友在朋友圈 ...

  2. Spring框架-IOC和AOP

    IOC:它并不是一种技术实现,而是一种设计思想.在任何一个有实际开发意义的程序项目中,我们会使用很多类来描述它们特有的功能,并且通过类与类之间的相互协作来完成特定的业务逻辑.这个时候,每个类都需要负责 ...

  3. 69.ORM查询条件:isnull和regex的使用

    首先查看数据库中的article表的数据: 定义模型的文件models.py中的示例代码如下: from django.db import models class Category(models.M ...

  4. 7.3 使用while 循环来处理列表和字典

    # 7.3.1 在列表之间移动元素 # confirmed_users.py # 首先,创建一个待验证用户列表 # 和一个用于存储已验证用户的空列表 uncomfirmed_users = ['jam ...

  5. 实战Arch Unit

    在以前的文章中介绍了通过 [<实战PMD>](https://zhuanlan.zhihu.com/p/105585075).[<实战Checkstyle>](https:// ...

  6. 吴裕雄--天生自然MySQL学习笔记:MySQL 创建数据库

    在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 以下命令简单的演示了创建数据库的过程,数据名为 RUNOOB: [root@ho ...

  7. Django2.0模型基础——(一)

    Django模型封装python操作数据库的代码,让我们可以更加方便的执行SQL语句.每个创建的app下都会有一个叫models.py的文件,在这个文件下创建的模型类映射于数据库的表名,类属性映射于数 ...

  8. 超级顽固的流方式读取doc,docx乱码问题

    因为工作中需要一个把doc或者docx的office文档内容,需要读取出来,并且也没展示功能.代码中第一考虑可能就是通过读取流方式,结果写了以后,各种乱码,百科的解决方案也是千奇百怪,第一点:可能是文 ...

  9. @Autowired的几个使用细节

    1.使用@Autowired的当前类也必须由spring容器托管(打@Coponent.@Controller.@Service .@repository) 2.不管是public 和  privat ...

  10. 拷贝构造函数[c++]

    拷贝构造函数何时会被调用? 1. 对象以值传递的方式传入函数参数 2.对象以值传递的方式从函数返回 3.对象需要通过另外一个对象进行初始化 下面我们来看代码: //#include <iostr ...