Java学习笔记 --Java语言基础
一、标识符:
/*
关于java语言当中的标识符
1、什么是标识符
-在java源程序中凡是自己有权利命名的单词都是标识符
-在editplus编辑器当中以黑色字体高亮显示
-标识符可以标识什么元素?
*类名
*方法名
*变量名
*接口名
*常量名
…
2、标识符的命名规则【不按照这个规则来,编译器会报错,这是语法】
*一个合法的标识符只能由“数字,字母,下划线_,美元符号$”组成,不能含有其他符号
*不能数字开头
*严格区分大小写
*关键字不能做标识符
*理论上无长度限制
3、标识符的命名规范【只是一种规范,不属于语法,不尊守规范编译器不会报错
*最好见名知意
public class UserService{
public void login(String username,String passwd){
}
}
*遵守驼峰命名方式
SystemServer
UserSerive
CustomerService
*类名、接名:首字母大写,后面每个单词首字母大写
*变量名、方法明:首字母小写后面每个单词首字母大写
*变量名:全部大写
4、合法和不合法的标识符
合法 不合法
----------- --------------
_123Test | 123Test
A_B_C | HelloWorld!
$ABC | Hello World
class1 | class
public0 | public
*/
public class identifierTest01 //identifierTest01是一个类名,名字可以修改
{
//main是一个方法名
public static void main(String[] agrs){ //args是一个变量名
}
//doSome就是方法名
public static viod mian doSome(){
//i就是变量名
int i=10
}
}
二、关键字
关于java语言当中的关键字:
*什么是关键字
-SUN在开发java语言的时候,提前定制好的一些具有特定含义的字符序列。
-在语言当中具有特殊含义的单词,这些单词构成Java程序的骨架,这些单词是需要记住的,不能随意编写,包括大小写。
*关键字在Java语言当中全部小写
*关键字在EditPlus工具中颜色是蓝色高亮
*常见的关键字有哪些
public
class
static
void
if
for
while
do
default
byte
short
int
long
float
double
boolean
char
private
protected
switch
true
false
throw
throws
try
catch
……
提醒:关键字不需要单独拿出来记忆,编写程序的过程中记忆。
三、字面值:
/
关于字面值
*字面值
-10、100
-3.14
-“abc”
-‘a’
-true、false
*字面值就是数据
*字面值是java源程序的组成部分之一。包括标识符和关键字他们都是Java源程序的组成部分
*数据在现实世界当中是分门别类的,所以数据在计算机编程语言当中也是有类型的:【数据类型】
-10、100 属于整数型字面值
-3.14 属于浮点型字面值
-true,false 属于布尔型字面值
-“adc”、“中国人” 属于字符串型字面值
-‘A’ 、‘人’ 属于字符型字面值
注意:Java语言中所有字符串型字面值必须使用双引号括起来
Java语言中所有字符型字面值必须使用单引号括起来
*/
public class ConsTest01
{
public static void main (String[] args){
System.out.println(10);
System.out.println(“最近你过得怎么样?”);
System.out.println(“abc”);
System.out.println(100);
System.out.println(false);
System.out.println(true);
System.out.println(‘A’);
System.out.println(3.14);
}
}
四、变量
一、关于Java语言当中的变量
1、什么是变量
*变量本质上来说是内存中的一块空间,这块空间”有数据类型”、”有名字”、”有字面值”
*变量包含三部分:数据类型、名称、字面值【数据】
*变量是内存中存储数据的最基本单元
2、数据类型得作用是什么?
*不同的数据有不同的类型,不同的数据类型底层会分配不同大小的空间
*数据类型是指导程序在运行阶段应该分配多大的内存空间
3、变量要求:
变量中存储的具体的”数据”必须和变量的”数据类型”一致,当不一致的时候编译报错。
4、声明/定义变量的语法格式:
数据类型 变量名
*数据类型:有一种数据类型是整数型,叫int
*变量名:
只要是合法的标识符就行。规范中要求:首字母小写,后面每个单词首字母大写。
例如:int i
int age
int length
int size
int num
其中int是数据类型,i ,age, length,size,num都是变量名
5、变量声明之后怎么赋值?
语法格式:
变量名=字面值;
要求:字面值的数据类型必须和变量的数据类型一致。
=等号是一个运算符,叫做赋值运算符,赋值运算符先运算等号右边的表达式,表达式执行结束之后的结果赋值给左边的变量。
6、声明和赋值可以放到一起完成
int i =10
7、变量赋值之后,可以重新赋值,变量的值可以变化
int i = 10;
system.out.println (i); 1/10i = 20;
system.out.println(i) ; 1/20i= 100;
system.out.println (i): 11100
8、有了变量的概念之后,内存空间得到了重复的使用:
int i = 10;
system.out.println (i);
…
……
system.out.println (i);
9、通常访问一个变量包括两种访问形式:
*第一种:读取变量中保存的具体数据get/获取
*第二种:修改变量中保存的具体数据set/设置
i = 20; //set
system.out.println(i) ; //get
10、变量在一行上可以声明多个
int a,b,c;
11、java中的变量必须先声明,再赋值,才能访问。
int i;
程序执行到这里,内存空间并没有开辟出来,变量1并没有初始化。所以没有赋值之前是无法访问
*/
public class varTesto1
{
public static void main (string []args){
//声明一个int类型的变量,起名i
int i;
//编译报错:变量i并没有初始化
//system.out.print1n(i);
//给i变量赋值,i变量在这里完成初始化,内存开辟
i=100;
System.out.println(i);
//i 再次重新赋值
i=200;
System.out.println(i);
}
}
关于java语言当中的变量:
1、在方法体当中的java代码,是遵守自上而下的顺序依次执行的。逐行执行。
第一行;
第二行;
第三行;
2、在同一个作用域当中“作用域”当中,变量不能重名,但是可以重新赋值
/
pubiic class VarTest02{
public static void main (String []args){
int i = 100 ;
System. out.println (i) ; //100
i =200 ;
System.out.println(i) ; //200
//以下代码顺序有错误,先声明然后赋值再访问
/
System.out.println(k);
int k 100;
/
/
int i =90;
System.out.println(i);
*/
}
}
关于Java中的变量
变量的作用域
1、什么是作用域
变量的作用域,其实描述的就是变量的有效范围。
在什么范围之内是可以被访问的,只要出了这个范围该变量就无法访问了。
2、变量的作用域只要记住一句话:
出了大括号就不认识了。
public class VerTest03{
//注意:这里的static不要去掉
static int k = 90;
public static void main(String[] args){
//变量i的作用域是main方法
//在整个main方法当中是有效的,可见的,可以访问的
int i =100;
Systen.out.println(i); // 可以
Systen.out.println(k); // 可以
//以下会编写一个for循环语句
//这个for循环后面的控制语句的时候详细讲解
for(int a=0;a<10 ;a++){//a变量的作用域是整个for循环,for循环结束之口,a变量的内存就释放了
}
//这里无法访问a变量
//System. out.printin(a);
int j;//作用域是main方法
for(j=0;j<10;j++){
}
System.out.println(j);//访问的是main方法中的j变量
}
public static void doSome(){
//这里无法访问main方法当中的变量i
//已经出了i变量的作用域。
//Systen.out.println(i);
Systen.out.println(k);
}
}
五、数据类型
关于Java中的数据类型:
1、数据类型的作用是什么?
程序当中有很多数据,每一个数据都是有相关类型的,不同数据类型的数据占用空间大小不同。
数据类型的作用是知道jvm在运行出现的时候给该数据分配多大的内存空间
2、java中的数据类型包括两种:
*基本数据类型
引用数据类型
-类
-接口
-数组
…
3、基本数据类型:
基本数据类型包括四大类八小种:
第一类:整数型
byte,short,int,long
第二类:浮点型
float,double
第三类:布尔型
boolean
第四类:字符型
char
4、字符串不属于基本数据类型,属于引用数据类型,字符属于基本数据类型
字符串使用双引号 “abc”
字符使用单引号 ‘a’
5、八种基本数据类型各自占用空间大小是多少?
基本数据类型 占用空间大小【单位:字节】
byte 1
short 2
int 4
long 8
float 4
double 8
boolean 1
char 2
6、计算机在任何情况下只能识别二进制。例如:
1010101010101010101010101……
【现代计算机底层采用交流电的方式,接通和断开两种状态,计算机只识别1和0,其他不认识】
7、什么是二进制?
数据的一种表示形式。十进制表示满十进一的原则。二进制表示满二进一的原则。
例如:十进制
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
例如:二进制
0 1 10 11 100 101 110 111 1000 10001……
0 1 2 3 4 5 6 7 8 9
8、字节:
1 byte = 8 bit 【1个字节 = 8个比特位】一个比特位标识一个二进制:0/1
1 KB = 1024 byte
1 MB = 1024 KB
1 GB = 1024 MB
1TB = 1024 GB
1TB = 10241024102410248 bit
9、整数型当中的byte类型,占用一个字节,所以byte类型的数据占用8个bit位那么byte类型的取值范围是什么?
*关于Java中的数字类型,数字都是有正负之分的,所以数字的二进制当中有一个二进制位被称为“符号位”。并且这个“符号位”在所有二进制位的最左边,0表示正数,1表示负数.
*byte类型最大值01111111
【
00000000 00000000 00000000 10000000(二进制)
减去1的结果是
00000000 00000000 00000000 01111111
】
*byte最大值:2的7次方 -1,结果是:127
*byte类型最小值-128
*byte类型取值范围:【-128~127】
*byte类型可以表示256个不同的数字【256个不同的二进制】
10、二进制和十进制之间的转换规则:
*二讲制转换成十进制
*十进制转换成二进制
11、计算机只认识二进制,那么计算机是怎么表示现实世界当中的文字的呢?
*八种基本数据类型当中,byte, short, int, long, float, double,boolean这7种数据类型计算机在表示的时候比较容易,因为底层都是数字,十进制的数字和讲制之间存在一种固定的转换规则。
*但是八种基本数据类型当中char类型表示的是现实世界中的文字,文字和计算机二进制之间"默认"情况下是不存在任何转换关系的。
*为了让计算机可以表示现实世界当中的文字,我们需要进行人为的干涉,需要人负责提前制定好"文字"和"二进制"之间的对照关系。这种对照转换关系被称为:字符编码。
*计算机最初只支持英文,最先出现的字符编码是:ASCLL码
‘a’ 97 [01100002]
‘A’ 65
‘0’ 48
‘a’—(按照ASCLL解码)—> 01100001
01100001 —按照ASCLL编码—> ’a’
编码和解码的时候采用同一套字典/对照表,不会出现乱码。
当解码和编码的时候采用的不是同一套对照表,会出现乱码问题。
*随着计算机的发展,后来出现了一种编码方式,是国际化标准组织ISO制定的,这种编码方式支持西欧语言,,向上兼容ASCLL码,仍然不支持中文。这种编码方式是:Iso-8859-1,又被称为latin-1
*随着计算机向亚洲发展,计算机开始支持中文、日文、韩文等国家文字,其中支持简体中文的编码方式:
GB2312 < GBK < GB18030
*支持繁体中文:大五码
*后来出现了一种编码方式统一了全球所有的文字,容量较大,这种编码方式叫做: unicode编码unicode编码方式有多种具体的实现:
-UTF-8
-UTF-16
-UTE-32
…
*Java语言源代码采用的是Unicode编码方式,所以”标识符”可以用中文。
*现在在实际开发中,一般使用UTF-8编码方式较多。【统一编码方式】
12、八种基本数据类型的取值范围
注意:
short和char所表示的种类总数是一样的,只不过char可以表示更大的正整数。因为char没有负数。
public class DataTypeTesto2{
//这里的static必须加,别问为什么!
static intk = 1000 ;
//变量还是遵守这个语法:必须先声明,再赋值,才能访问。
//成员变量没有手动赋值系统会默认赋值【局部变量不会】
static int f; 1/成员变量
public static void main (string[]args) {
/*
int i; 1/局部变量
system.out.println(i);
*/
system.out.println(k);
system.out.println (f) ; / /0
}
}
13、以下Java程序主要讲解的是数据类型之:char类型
public class date03{
public static void main(String[] agrs){
//定义一个char类型的变量,起名c,同时赋值字符‘a’
char c = ‘a’;
System.out.println(c);
//一个中文占2个字节,char类型正好是2个字节
//所以Java中的char类型变量可以存储一个中文字符
char x = ‘国’;
//编译错误
//ab是字符串不能使用单引号括起来
//char y =‘ab’
System.out.println(x);
//”a”是字符串类型
//k变量是char类型
//类型不兼容,编译错误
char k = “a”
//声明
char e;
//赋值
e = ’e’;
}
}