常量:

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

常量的命名规则:

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. 9.使用GetData,Children实现对ZNode的监控

    一. zookeeper中的watcher 1. exists :监控的是[znode]的CUD 的操作   2. getdata 的时候注册的watcher[U,D 监控]update delete ...

  2. Lucene之模糊、精确、匹配、范围、多条件查询

    Lucene的查询方式很 丰富,对于数值类型的数据,采取TermRangeQuery的方式,对于String类型的,就可以采取TermQuery等,查询方式了,可以通过采取合适的查询方式,检索到数据. ...

  3. HtmlHelper扩展之mvchtmlstring

    后台: using System;using System.Web;using System.Web.Mvc; namespace EwayFramework.Utils.Token{ public ...

  4. python中的内置函数,递归,递归文件显示(二),二分法

    1.部分内置函数 repr()显示出字符串的官方表示形式,返回一个对象的string形式 # repr 就是原封不动的输出, 引号和转义字符都不起作用 print(repr('大家好,\n \t我叫周 ...

  5. LOJ#162. 快速幂 2(分块)

    题面 传送门 题解 orzljz 我们分块,设\(s=\sqrt{p}+1\),那么\(x^a\)可以拆成\((x^s)^{a/s}\)和\(x^{a\bmod s}\),\(O(s)\)预处理,\( ...

  6. Instant low voltage or power off to make computer power burn down

    严重则可造成硬盘直接报废! 原理:瞬间低压或者断电,滤波电容上存储的电能已经被使用,此时再瞬间供电则会重新对电容充电,而限流电阻还没有恢复到保护状态,于是会产生很大的冲击电流,从而导致了全桥元件或保险 ...

  7. python 开发工具IDE pycharm的破解版安装

    打开终端 cd /etc 命令行输入 sudo vim hosts 输入mac密码 输入i,进入编辑模式(注意在英文状态下书写) 粘贴0.0.0.0 account.jetbrains.com到文件最 ...

  8. Tomcat启动和请求处理解析

    tomcat是我们经常使用的组件,但是内部是如何运行的呢,我们去一探究竟. 1.tomcat架构 tomcat的整体架构图如下: Tomcat中只有一个Server,一个Server可以有多个Serv ...

  9. 解决pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8C\\xB8' for column 'headline' at row 1")

    解决pymysql.err.InternalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x8C\\xB8' for column ...

  10. 晦涩难懂的shell命令

    初学shell脚本,过程中发现许多不易于理解的脚本语言,网上各种查找学习之后,择优精简一番,做出以下总结,方便以后遗忘了回顾,也为像我一样的初学者提供方便——推荐给初学者的一本书:<Linux ...