目录
6.3 逻辑运算符 逻辑运算:逻辑值(true false)之间的运算
一、注释
以某种特定符号作为标记,对程序功能的说明,程序在运行过程中不会执行注释。
Java语言有三种注释方式
1. // 单行注释,快捷键为 ctrl+/
2./* */ 多行注释,选中要注释的部分按快捷键 ctrl+shift+/ ,取消注释操作相同
3./** */ 文档注释,用于为类,方法,属性 功能进行说明,可在调用时提示,以及使用javadoc命令生成说明文档
二、关键字
关键字是被Java语言赋予专门含义,有特殊用途的单词。关键字中所有字母都要小写
关键字一共有50个,其中const,gato是保留字(现有java版本未使用,后期版本可能作为关键字使用)
三、标识符
3.1 定义:
Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符。
3.2 命名规范
四、变量
●变量是程序中最基本的存储单元,程序执行中数值是可变的.
●变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个 变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用.
● 其要素包括变量名,变量类型。
● Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式为:
type varName;
例如: int i;
int i1, i2, i3;
变量赋值: i=10;
五、Java数据类型
程序中对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。
●计算机存储单位
●字节(Byte):是计算机用于计量存储容量的基本单位,一个字节等于8 bit。
●位(bit):是数据存储的最小单位。二进制数系统中,每个0或1就是一个位,叫做bit(比特),其中8 bit 就称为一个字节(Byte)。
5.1 整形
其中,Java对整形常量默认看做 int 型。因此,要想输入long型常量一定要在其后加 ‘ L ’ 或 ‘ l ’。
以下是错误示例,e的赋值应为其后加上 ‘ L ’ 。
5.2 浮点型
与整数类型类似,Java浮点类型有固定的表数范围和字段长度,不受平台 影响。 Java 浮点类型有两种表示形式:
十进制数形式,例如: 3.14 314.0
科学记数法形式,如 3.14e2 3.14E2
float型 4字节 单精度 只能表示八位数,一旦输入超出长度便会进位,严重影响数据准确性
public static void main(String[] args) {
//float型 4字节 单精度 只能表示8位数
float m = 1.33333f;
float n =1.33333333333333f;
System.out.println(m);
System.out.println(n);
运行结果:
double型 8字节 双精度 表示长度为float型两倍,超出长度也会进位操作,严重影响数据准确性
(这里还补充了小数二进制转换导致的结果不严谨的情况)
public static void main(String[] args) {
double o = 1.666666666666666d;
double p = 1.666666666666666666d;
System.out.println(o);
System.out.println(p);
System.out.println(1.0-0.7==0.3);//false
//因为小数二进转换会乘2取整,像0.36是无限不循环的,会对其近似取整,因此计算结果不严谨
}
运行结果:
因为浮点型小数点后的进位情况在实际使用中会带来严重的数据不严谨行为,所以一般在实际应用中,我们应尽量避免使用这种类型的情况。
5.3 逻辑型boolean(布尔)
boolean 类型适于逻辑运算,一般用于程序流程控制 。
java语言中boolean 类型数据只允许取值 true 或 false 。
注意:不可以0或非 0 的整数替代false和true,这点和C语言不同。
5.4 字符型 char
char型 2字节
public static void main(String[] args) {
char c = 'a';
char b = '中';
//char类型用'',可以进行算术运算,用字符在编码表中的十进制编号进行。
System.out.println(c+1);//a -> 97
因此c+1的值为:98
5.5 引用类型:String
可以用来定义字符串,双引号内可包含一个或多个字符,如:String a = " abc "。
public static void main(String[] args) {
String name = "Tom";
String address = "西安";
String weight = "72.5kg";
System.out.println(name.length());
System.out.println("name:"+name+"\naddress:"+address+"\nweight:"+weight);
运行结果:
5.6 基本数据类型转换
(1)小容量转大容量,自动转换
(2)大容量转小容量类型 1. 会溢出 2. 精度降低,如下示例:
//大容量转小容量类型1.会溢出2.精度降低
int i = 256;
byte j = (byte)i;
System.out.println(j);
int i1 = 259;
byte j1 = (byte)i1;
System.out.println(j1);
float m = 12.12f;
int n = (int)m;
System.out.println(n);
}
运行结果:
六、运算符
6.1算术运算符
其中,字符与数字相加,会返回数字,因为字符返回的是他在编码表中的整数编号来参与运算。
public static void test(int a){
//加法1.运算(数值加数值)2.连接(数值+字符串,字符串+字符串)3.正号
int a = 5;
int b = -5;
char c = 'a';
String d = "abcd";
System.out.println(a+b);
System.out.println(a+c); //c会以其在ASCII码表中对应的整数编号来进行运算
System.out.println(c+d);
6.2 比较运算符
其中,== != 用于数之间比较 布尔类型间比较 引用类型间比较
6.3 逻辑运算符
逻辑运算:逻辑值(true false)之间的运算
& :逻辑与 &&:逻辑与(短路与)
| :逻辑或 ||:逻辑或(短路或)
!:逻辑非(取反)
^ :逻辑异或(相同为真,不同为假)
其中,System.out.println(10>a>3) ; 这种比较是错误的,10与a比较得到一个逻辑值true,而逻辑值true无法与3进行比较
& 和 && 的区别
int a = 7;
int b = 5;
int c = 3;
//&:左右两边都为true时结果才是true
//&:遇到false后还会执行后面的表达式
System.out.println(a>b & c>a); //true & false -> false
System.out.println(b>a & c<a); //false & true -> false
System.out.println(a>b & ++b>c); //true & true -> true
System.out.println(b); //b = 6
//&&:左右两边都为true时结果才是true
//&&:遇到false后不会再执行后面的表达式
System.out.println(a>b && c>a); //true & false -> false
System.out.println(b>a && c<a); //false & true -> false
System.out.println(a>b && ++b>c); //true & true -> true
System.out.println(b); //b = 6, 如果执行++b的话应该为7
| 和 | | 的区别
//|:左右两边有一个为true,结果为true
// "|" 和 "||" 区别同理。
int a = 7;
int b = 5;
int c = 3;
System.out.println(a>b | c>a); //true | false - true
System.out.println(a>b | ++b>c); //true | true - true
System.out.println(b>a | c>b); //false | false - false
System.out.println(b);//b = 6
// ||表示:当左边为真,右边不参与运算。
System.out.println(a>b || c>a); //true | false - true
System.out.println(a>b || ++b>c); //true | true - true
System.out.println(b>a || c>b); //false | false - false
System.out.println(b);//b = 6, 如果执行++b的话应该为7
因此在开发中推荐使用 && 和 | | 。
6.4 赋值运算符
这里面牵扯到了隐式类型转换的一些知识,接下来我用一部分代码来给大家演示讲解
int i=1;
i*=0.1;//隐式类型转换 int = (int) float 因此0.1被视为了整形类型,即为0,这里将不再输出0.1而是0.
System.out.println(i);
short s = 2;//隐式类型转换 int-->byte short
//s=s+表达//short = short + int -->int 即该式子为 short = int 由前面知识可知大容量类型转小容量类型程序会报错
s+=2;//正确表达,也是s=s+2的意思 因此,Java的混合类型运算最终会上升为最大的类型完成计算并输出
s+=32757;//会隐式类型转换 short = (short)int ,将式中数字改为32767则会超出short类型,程序就会出错,因此平时操作时一定要注意
System.out.println(s);
相信大家看了代码里的注释就能理解并正确使用赋值运算符的正确书写格式了。
6.5 条件运算符
结果 =(条件表达式)?表达式1:表达式2
public static void main(String[] args) {
int a = 60;
String result = (a>=60)?"及格":"不及格";
System.out.println(result);
}
所以,答案应输出:不及格。
6.6 位运算符
不常用,可做了解
<< 左移 左移一位相当于乘二 空位补0,被移除的高位丢弃,空缺位补0
>> 右移 右移一位相当于除二 带符号的位移(正数位移后符号位取0,负数取1)
>>> 无符号位移 右移一位相当于除二 位移后符号位默认为0
(& 与)(| 或) (^ 异或)可以进行逻辑运算(符号两边是逻辑值)也可以位运算(数值)
~ 非
代码实现:
public static void main(String[] args) {
int a = 2; //0010 2
a = a<<1; //0100 4
System.out.println(a);
int b = 2; //0010 2
b = b>>1; //0001 1
System.out.println(b);
int c = -2;
int d = -2;
c = c>>1;
d = d>>>1;
System.out.println(c);
System.out.println(d);
输出结果:
有关JavaSE基础知识到这里就结束了,本篇内容较多,基础性知识希望大家能耐心观看,熟记于心,灵活运用。