• 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. Idea的类中使用实体类(有@Data注解)的Get/Set方法报错

    今天从svn上面下了一个maven项目,导入到Idea中之后,发现有的类会使用实体类的Set/Get方法(全报错),导致该问题的原因就是因为实体类中没有这个方法,代码类似如下: @Data publi ...

  2. 自己编写DLL并导出函数

    sub.c #include<windows.h> #include"sub.h" int WINAPI DllMain(_In_ HANDLE _HDllHandle ...

  3. JS添加、设置属性以及鼠标移入移出事件

    源代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  4. 2020牛客寒假算法基础集训营3 B 牛牛的DRB迷宫II

    题目描述 牛牛有一个n*m的迷宫,对于迷宫中的每个格子都为'R','D','B'三种类型之一,'R'表示处于当前的格子时只能往右边走'D'表示处于当前的格子时只能往下边走,而'B'表示向右向下均可以走 ...

  5. Git 小课堂 002——别名

    昨天我们聊了聊 Git 的文件存储,今天我们聊聊 Git 的别名.不知道你是不是熟悉别名,如果你经常使用命令行做一些事情,有一些复杂的命令,或者是一些简单的操作,往往用一些别名方法就很方便很容易,下面 ...

  6. go语言小练习——给定英语文章统计单词数量

    给定一篇英语文章,要求统计出所有单词的个数,并按一定次序输出.思路是利用go语言的map类型,以每个单词作为关键字存储数量信息,代码实现如下: package main import ( " ...

  7. bitcoin-cli

    == Blockchain ==getbestblockhashgetblock "blockhash" ( verbosity ) getblockchaininfogetblo ...

  8. VMware DRS部分知识点

    主机添加到集群中,不需要维护模式(有虚拟机开机状态时也可以添加进去). 主机从集群中移除,需要主机进入维护模式. HA和DRS 全自动 当设置虚拟机必须在主机上时 DRS优先级大于HA 就算主机挂了H ...

  9. Android自定义的弹窗

    package com.microduino.qoobot.view; import android.app.Activity; import android.app.Dialog; import a ...

  10. python爬取淘宝数据之遇到的问题

    1.chormedriver.exe驱动下载地址 https://npm.taobao.org/mirrors/chromedriver 2.跳转网页页面不稳定问题 添加智能等待时间 driver.i ...