Java SE 基础知识
常量:
常量是一种标识符,它的值在运行期间恒定不变,并且常量在程序中只能被引用,而不能被重新赋值。
常量的命名规则:
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 基础知识的更多相关文章
- Java SE基础知识
Java SE面试题 目录 Java SE基础 基本语法 数据类型 关键字 面向对象 集合 集合类概述 Collection接口 List Set Map Java SE基础 基本语法 数据类型 Ja ...
- Java SE 基础知识(一)
一.基础知识 1. Java SE : Java Standard Edition Java ME : Java Micro Edition Java EE : Java Enterprise Edi ...
- Java SE 基础知识(String,Array)
String 类: 1. 对于String对象的相等性判断来说,请使用equals()方法,而不是==.String的equals()是判断当前字符串与传进来的字符串的内容是否一致. 2. Strin ...
- Java SE 基础知识(二)
1. 类由两大部分构成:属性和方法.属性一般用名词来表示,方法一般用动词来表示. 2. 如果一个java源文件中定义了多个类,那么这些类中最多只能有一个类是public的,可以都不是public的. ...
- 什么才是java的基础知识?
近日里,很多人邀请我回答各种j2ee开发的初级问题,我无一都强调java初学者要先扎实自己的基础知识,那什么才是java的基础知识?又怎么样才算掌握了java的基础知识呢?这个问题还真值得仔细思考. ...
- Java SE 基础:注释
Java SE 基础:注释 一.注释定义 用于解释说明程序的文字. 二.注释的作用 1.解释说明程序,提高程序的可读性 2.可以帮助我们调试程序:通过注释代码块,检测错误位置 三.格式 1.单行注释 ...
- Java SE 基础:标识(zhì)符
Java SE 基础:标识(zhì)符 一.标识符定义 标识符,就是给类.接口.方法.变量等起名字时的字符序列 二.组成规则与注意事项 1.组成规则 英文大小写字母 数组 $ 和 _ 2.注意事项 不 ...
- Java SE 基础:常用关键字
Java SE 基础:常用关键字 常用关键字表
- Java 多线程——基础知识
java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...
随机推荐
- Android-自定义圆环
效果图: 布局的代码,指定引用自定义View类: <!-- 绘制圆环 --> <LinearLayout xmlns:android="http://schemas.and ...
- Tempdb--临时对象缓存
SQL Server删除一个临时对象时,不移除该对象的条目,当再次使用时,就无须重新创建临时对象,SQL Server为临时对象缓存一个数据页和一个IAM页,并回收剩余页,如果临时表的大小超过8MB, ...
- you need to be root to perform this command
在linux 终端执行某条命令时 提示一下错误 you need to be root to perform this command 是提示要获取root权限 输入su 回车输入密码 即可解决 参考 ...
- EF框架下的双表查询
最近想使用ef做一些开发但是遇到了一些小问题就是如何实现多表的查询然后经过查资料终于找出了结果 我们知道ef中表的关系是一对一 一对多 多对多 接下来就讲一下一对一的关系下的栗子 先编写两个表 第 ...
- how to remote debug in vs 2013
first download the debugger tools "rtools_setup_x64" start C:\Program Files\Microsoft Visu ...
- Python 日常学习
习惯了java的思想.用java的思想来获取python元组中的数据.结果出错了. yuanzu_s = ("one", "two", "three& ...
- CF79D Password
题目链接 题意:给定长度为n的0/1序列,初始值都为0.你每次可以在给定的l个长度中的\(a_i\)并将序列中长度为\(a_i\)的部分取反.使得最终状态为\(x_1\)~\(x_k\),求最少取反次 ...
- java下载文件注意点
前台: 不建议使用ajax,可以使用window.location.href 后台: 三个参数--> response path filename--filename如果要防止乱码,可以用Str ...
- CVE-2017-11882漏洞复现
作者:zero 漏洞信息:CVE-2017-11882 2017年11月14日,微软发布了11月份的安全补丁更新,其中比较引人关注的莫过于悄然修复了潜伏17年之久的Office远程代码执行漏洞(CVE ...
- POJ 2215
//package j; import java.util.*; public class Main { public static void main(String args[]){ int r; ...