常量:

常量是一种标识符,它的值在运行期间恒定不变,并且常量在程序中只能被引用,而不能被重新赋值。

常量的命名规则:

1.在 Java 中,在变量声明中加入 final 关键字代表常量,加入 static 关键字代表类变量。一般结合起来声明一个变量;

2.尽量使用含义直观的常量来表示那些将在程序中多次出现的数字或字符串;

public static final double PI = 3.1415926;

在 Java 接口中声明一个变量,编译时会自动加上 public static final 的修饰符,自动声明为全局变量,因而在 Java 中接口是存放常量的最佳地点。

变量:

Java 程序中最基本的存储单元,其要素包括变量名,变量类型和作用域;

每一个变量都属于特定的数据类型,在使用前必须对其声明;

从本质上讲,变量其实是内存中的一小块内存,使用变量名来访问这块区域;

因此,每一个变量在使用前必须要先申报(声明),然后必须进行赋值(填充内容),才能使用。

局部变量和成员变量:

局部变量:方法或语句块内部定义的变量

public void addData () {

int a = 10; // 变量 a 就是局部变量,在方法的大括号之外是无法使用 a 的。

}

成员变量:方法外部、类的内部定义的变量;

public class TestAdd{

static final int B = 10; // 变量 B 是成员变量,在整个类的内部都可以使用。

}

成员变量又可以分为:类变量和实例变量

类变量:又叫静态变量,用 static 修饰,它可以直接用类名调用,也可以用对象调用,而且所有对象的用一个类变量都是共享同一块内存空间。static final 变量必须在声明的时候初始化或者在 static 静态块里面初始化。

实例变量:不用 static 修饰,只能通过对象调用,而且所有对象的同一个实例变量是使用不同的内存空间。

注意:如果某个方法中的局部变量的名字与全局变量的名字相同,则该全局变量在这个方法中暂时失效。

逻辑型:

boolean 类型数据只允许取值 true 或 false,不能以 0 或非 0 的整数代替 true 和 false,并且一定要小写。

字符型:

char 在 java 中是 2 个字节,java 采用 unicode,2 个字节(16 位)来表示一个字符,而一个中文字符的 Unicode 就是 2 个字节。

注意:Java 中不推荐使用 char 类型存储字符数据,通常使用 string 或者 stringbuffer 存储。

整数型:

取值范围:

能够表示的范围越大,占用的内存空间就越大,选择合适的类型定义整数。

浮点型:

float 是单精度型,占用 32 位内存空间,而 double 是双精度型,占用 64 位内存空间。

float 可以精确到 7 位有效数字;double 可以精确到 16 位有效数字,

访问权限:

使用访问控制符来控制对类、变量、方法和构造方法的访问,有如下四种方法权限:

接口中的变量都隐式声明为: public static final,而接口里的方法默认情况下访问权限为 public

注意一下继承规则:

父类为 public,子类必须为 public

父类为 protected,子类只能为 protected 和 public

父类为 private 的方法,不能够被继承,

即:子类的访问级别要等于或者高于父类的级别。

位运算符:

<<     按位左移运算符,移一位相当于乘以2

>>     按位右移运算符,移一位相当于除以2

switch分支:

语法格式如下;

switch中的变量类型:可以自动转换为整型的(byte、short、int),String 类型,枚举类型

break控制:

主要用在循环语句或者 switch 语句中,用来跳出整个语句块;

跳出最里层的循环,并且继续执行循环下面的语句。

continue控制:

让程序立刻跳转到下一次循环;

break 是跳出当前循环,执行循环外的下一句代码;continue 是停止当前循环,进入下一次循环,并没有跳出循环。

StringBuffer 和 StringBuilder 类:

它们的对象可以被多次的修改,并且不产生新的未使用的对象;

StringBuilder 不是线程安全的(不能同步访问);

由于 StringBuilder 相对于 StringBuffer 有速度优势,多数情况下建议使用 StringBuilder,要求线程安全时,必须使用 StringBuffer 类;

String 与 StringBuffer

简单地说,就是一个变量和常量的关系。

StringBuffer 对象的内容可以修改;而 String 对象一旦产生后就不可以被修改,重新赋值其实是两个对象。

StringBuffer 的内部实现方式和 String 不同,StringBuffer 在进行字符串处理时,不生成新的对象,在内存使用上要优于 String 类。所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用 StringBuffer 要更加适合一些。

String:String 定义的字符串具有一个很大的优点: 编译器可以把字符串设为共享的。

StringBuffer: 避免添加多个字符对字符串重新分配内存。

StringBuffer 是线程安全的,执行效率慢。

Java SE 基础知识的更多相关文章

  1. Java SE基础知识

    Java SE面试题 目录 Java SE基础 基本语法 数据类型 关键字 面向对象 集合 集合类概述 Collection接口 List Set Map Java SE基础 基本语法 数据类型 Ja ...

  2. Java SE 基础知识(一)

    一.基础知识 1. Java SE : Java Standard Edition Java ME : Java Micro Edition Java EE : Java Enterprise Edi ...

  3. Java SE 基础知识(String,Array)

    String 类: 1. 对于String对象的相等性判断来说,请使用equals()方法,而不是==.String的equals()是判断当前字符串与传进来的字符串的内容是否一致. 2. Strin ...

  4. Java SE 基础知识(二)

    1. 类由两大部分构成:属性和方法.属性一般用名词来表示,方法一般用动词来表示. 2. 如果一个java源文件中定义了多个类,那么这些类中最多只能有一个类是public的,可以都不是public的. ...

  5. 什么才是java的基础知识?

    近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ...

  6. Java SE 基础:注释

    Java SE 基础:注释 一.注释定义 用于解释说明程序的文字. 二.注释的作用 1.解释说明程序,提高程序的可读性 2.可以帮助我们调试程序:通过注释代码块,检测错误位置 三.格式 1.单行注释 ...

  7. Java SE 基础:标识(zhì)符

    Java SE 基础:标识(zhì)符 一.标识符定义 标识符,就是给类.接口.方法.变量等起名字时的字符序列 二.组成规则与注意事项 1.组成规则 英文大小写字母 数组 $ 和 _ 2.注意事项 不 ...

  8. Java SE 基础:常用关键字

    Java SE 基础:常用关键字 常用关键字表

  9. Java 多线程——基础知识

    java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...

随机推荐

  1. C#基础入门 八

    C#基础入门 八 泛型 C#中的泛型能够将类型作为参数来传递,即在创建类型时用一个特定的符号,如"T"来作为一个占位符,代替实际的类型,等待实例化时用一个实际的类型来代替. pub ...

  2. Github 的注册教程和初步使用体验

    我叫许晴,是网工143的学生,学号是1413042064,兴趣包括手绘,看书和手游.学习过c++和汇编语言课程,但在编程方面没什么独立实践经验. 我的Githup用户名是 XQ123 .下面是我在gi ...

  3. SQL Server中CROSS APPLY和OUTER APPLY应用

    1.什么是Cross Apply和Outer Apply ? 我们知道SQL Server 2000中有Cross Join用于交叉联接的.实际上增加Cross Apply和Outer Apply是用 ...

  4. (zxing.net)一维码UPC A的简介、实现与解码

    一.简介 UPC(Universal Product Code)码是最早大规模应用的条码,其特性是一种长度固定.连续性的条  码,目前主要在美国和加拿大使用,由于其应用范围广泛,故又被称万用条码. U ...

  5. Sql语法高级应用之一:使用sql语句如何实现不同的角色看到不同的数据

    前言 在常见的管理系统中,通常都有这样的需求,管理员可以看到所有数据,部门可以看到本部门的数据,组长可以看到自己组的数据,组员只能看到自己相关的数据. 一般人的做法是,根据不同的角色通过if...el ...

  6. AHOI2012 信号塔 | 最小圆覆盖模板

    题目链接:戳我 最小圆覆盖. 1.枚举第一个点,考虑当前圆是否包含了这个点,如果没有,则把圆变成以这个点为圆心,半径为0的圆. 2.枚举第二个点,考虑圆是否包含了这个点,如果没有,则把圆变成以这两个点 ...

  7. kolla-ansible 重新部署 ceph 遇到的问题

    问题 TASK [ceph : Fetching Ceph keyrings] ******************************************* fatal: [controll ...

  8. 在 django模型中封装元组和字典, 字段中使用chioce参数实现数据的一一对应

    一.models.py中 class OrderInfo(BaseModel): '''订单模型类''' # 封装一个字典, 便于在视图中取值, 进行比对 PAY_METHODS = { : &quo ...

  9. VIO的Bundle Adjustment推导

    IMU模型和运动积分 $R_{\tiny{WB}} \left( t +\Delta{t} \right) = R_{\tiny{WB}} \left( t \right) Exp\left( \in ...

  10. jenkins+gitlab+robot framework 中遇到的坑

    问题一:拉Git源代码时提示无权限 原来之前用的ssh密钥一直都是自己的用户生成的.其实在Jenkins系统使用的都是Jenkins这个系统帐号的. 解决方法: 切换到jenkins这个帐号下生成个新 ...