Java-002-Java标识符-关键字-数据类型-运算符-进制转换-字符编码-变量
1.Java语言的标识符:
标识符可以标识类名、接口名、变量名以及方法名。
1.1.Java标识符命名规则:
A.标识符是由数字,字母、下划线和美元符号构成,其他符号不可以
B.必须以字母(A-Z或音a-z),美元符(S)、或者下划线(_)开头
C.见名知意
D.驼峰命名法(首字母大写)例如:Person,CustomServices.
E.首字符之后可以是任何字符的组合
1.2.关键字不能用作标识符
在sm在开发java语言的时候定义的一些具有特殊含义的字符序列
Sun用了我们就不能用他作为标识符,我们只能其他的;
在java中关键字都是小写的
C语言和C+语言中有用到 goto, const在iava中叫保留字,我们不能使用
1.3.标识符是大小写是敏感的
合法标识符举例:age、$salary、_value、_1_value
非法标识举例:123bc、-salary
2.数据类型:
Java总共有两种数据类型,主要有基本类型和引用类型,基本类型有8种,引用数据类型有三种
①基本数据类型
数值类型:A :整数型(byte , short , int ,long)
B: 浮点型(float,double)
字符类型:(char)
布尔类型:(boolean, 只能取 true 和 false)
八种数据类型的取值范围:
在计算机内部,所有信息都采用二进制表示,每个二进制由0和1两种状态,一个字节有8位,也就是由8个0或1构成,如果sot类型的6在计算机中是如何存储的,shot是两个字节,那么hort6的二进制为:0000000010int类型的6在计算机中存储为32位:00 010
②引用数据类型:
数组,类,接口
public class DataType { public static void main(String[] args){ /* 1.Java标识符命名规则: A.标识符是由数字,字母、下划线和美元符号构成,其他符号不可以 B.必须以字母(A-Z或音a-z),美元符(S)、或者下划线(_)开头 C.见名知意 D.驼峰命名法(首字母大写)例如:Person,CustomServices. E.首字符之后可以是任何字符的组合 2.关键字不能用作标识符 3.标识符是大小写是敏感的 */ String userName = "寇了了"; String _array = "Array"; String _$phoneNum = "18367151969"; //String 1UserName = "Tony";//错误写法,不能以数字开头 System.out.println("用户名为:" + userName); System.out.println(_array); System.out.println(_$phoneNum); /* 输出结果为: 用户名为:寇了了 Array 18367151969 */ } }
3.进制换算:
十进制到二进制的换算规则:除2取余,逆序输出
如10进制6二进制换算方式为: 6/2=3 余0
3/2=1 余1
1/2=0 余1
将余数逆序输出就是6的二进制表示:110,位数不够补零
二进制到十进制的换算规则:取出最后一位,从2的0次方开始乘,将得到的结果相加即可
如:二进制的110的十进制换算:
0*2的0次方=0
1*2的1次方=2
1*2的2次方=4
110的十进制为:0+2+4=6
字母:
’a’ ASCII 97
Char 97 16 位
java字符 ASCII表 https://blog.csdn.net/Wee_Mita/article/details/73321303
4.Java修饰符:
像其他语言一样,Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符
可访问修饰符: default, public, protected, private
不可访问修饰符: final, abstract, strictfp
5.字符编码:
ASCI字符编码 采用一个字节编码,主要针对英文编码
ISO-8859-1 又称 latin-1,是国际化标准或组织ISO制定的,主要为了西欧语言中的字符编码,和ASCⅡ兼容
GB2312/GBK/GB18030 主要是汉字编码,三种编码从容量上看是包含关系
unicode Unicode统一了全世界上的所有文字编码, unicode有几种实现:UTF-8 UTF-16 UTF-32
UTF-8存储格式 (UTF-8主要就是为了节省空间)
public class CharType { public static void main(String[] argv){ /* char类型 char是字符类型 java中采用 UNICODE编码 底层占两个字节 char类型涉及到字符编码方式 1.字符编码方式是现实世界中的文件和计算机的表示方式的转换规则 ASCII 'a' 97 'A' 65 '0' 48 对应的二进制是多少 IOS-8859-1 GB2312 < GBK < GB18030 从容量上看,是包含关系 unicode utf-8, uft-16 ,utf-32 2.如果字符采用的编码和解码不一致的时候,就会出现乱码 */ char i = 'a'; int j = '7'; //char k = 'ab'; //错误写法 char m = '中'; char t = 't'; System.out.println("i == " + i + " j == " + j + " m == " + m + " t == " + t); //斜线在Java语言中的转移功能,可以将普通t字符,转换成"制表符" char b = '\t';//相当于电脑键盘的Tab键 System.out.println("b==" + b);//输出为一个制表符 System.out.println("My Name is Steven"); //Java中一个普通的"单引号"字符 char k = '\''; System.out.println("k == " + k); //Java中一个普通的"斜线"字符 char l = '\\'; System.out.println("l == " + l); //Java中一个普通的"双引号"字符 char n = '\"'; System.out.println("n == " + n); //Java中一个普通的换行符 char o = '\n';//相当于键盘回车键 System.out.println("StevenA"); //System.out.println(o); System.out.println("");//print 不换行,println换行 System.out.println("StevenB"); /* 输出结果为: i == a j == 55 m == 中 t == t b== My Name is Steven k == ' l == \ n == " StevenA StevenB */ } }
6.Java的变量
变量其实是java中的一个最基本的单元,也就是内存中的一块区域, Java中的变量有四个基本属性:变量名,数据类型,存储单元和变量值
◆变量名:合法的标识符
◆变量的数据类型:可以是基本类型和引用类型(必须包含类型)
◆存储单元:存储单元大小是由数据类型決定的,如:int为4个字节32位
◆变量值:在存储单元中放的就是变暈值(如果是基本类型放的就是具体值, 如果是引用类型放的是内存地址,如果null, 表示不指向任何对象
◆变量的声明格式:类型 变量名;
Java数组:
数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何声明、构造以及初始化一个数组
Java枚举:
Java 5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的bug.
例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。
class FreshJuice {
enum FreshJuiceSize{
SMALL,
MEDIUM,
LARGE
}
FreshJuiceSize size;
}
public class JavaEnum {
public static void main(String[] args) {
FreshJuice juice = new FreshJuice();
juice.size = FreshJuice.FreshJuiceSize.MEDIUM;
System.out.println("juiceSize == " + juice.size);//juiceSize == MEDIUM
}
}
注意:枚举可以单独声明或者声明在类里面。方法、变量、构造函数也可以在枚举中定义。
Java关键字
public class JavaKeyWord { public static void main(String[] args) { /* //访问控制 private 私有的 protected 受保护的 public 公共的 //类、方法和变量修饰符 abstract 声明抽象 class 类 extends 扩展,继承 final 最终值,不可改变的 implements 实现(接口) interface 接口 native 本地,原生方法(非Java实现) new 新,创建 static 静态 strictfp 严格,精准 synchronized 线程,同步 transient 短暂 volatile 易失 //程序控制语句 break 跳出循环 case 定义一个值以供switch选择 continue 继续 default 默认 do 运行 else 否则 for 循环 if 如果 instanceof 实例 return 返回 switch 根据值选择执行 while 循环 //错误处理 assert 断言表达式是否为真 catch 捕捉异常 finally 有没有异常都执行 throw 抛出一个异常对象 throws 声明一个异常可能被抛出 try 捕获异常 //包相关 import 引入 package 包 //基本类型 boolean 布尔型 byte 字节型 char 字符型 double 双精度浮点 float 单精度浮点 int 整型 long 长整型 short 短整型 //变量引用 super 父类,超类 this 本类 void 无返回值 //保留关键字 goto 是关键字,但不能使用 const 是关键字,但不能使用 null 空 */ } }
//super关键字的作用:
// 调用父类的构造方法
// 调用父类的成员方法
// 需要注意: super只能应用在成员方法和构造方法中,不能应用在静态方法中(和this是样的),如果在构造方法中使用必须放在第一行
// 为什么会有 super关键字?
// 因为子类必须要调用父类的构造方法,先把父类构造完成,因为子类依赖于父类,没有父,也就没有子有时需要在子类中显示的调用父类的成员方法
//super 通过子类的构造方法调用父类的构造
//语法规则:个构造方法第一行如果没有this(,);也没有显示去调用 super();系统会默认调用 super();
//注意:super的调用必须放在构造方法的第一句 super和this不能共存
//使用 abstract定义抽象方法/如果一个类中含有抽象方法,那么这个类必须定义成抽象
// 如果类是一个抽象的,并不要求具有抽象的方法