一、数值型字面常量值表现形式
整型
进制 | 组成 | 表现形式 |
---|---|---|
二进制 | 由0,1组成 | 以0b开头 |
八进制 | 由0~7组成 | 以0开头 |
十进制 | 由0~9组成 | 默认十进制 |
十六进制 | 由0~9,a~f组成 | 以0x开头 |
进制转换方法:
其他进制转十进制: 从后往前,从最后一位开始*当前的进制数^0(次方从0开始,每次加一),最后求和。
十进制转为其他进制:使用这个数一直除以进制数,然后看余数。
浮点型
整数位为0的时候可以将0省略;
科学计数法表示:例如:1.23e-2 (其中e=10,e-2表示10的负二次方)
``` public class Demo01{ public static void main(String[] args){ System.out.println(0b1010); System.out.println(010); System.out.println(0x15); System.out.println(1.23e2); System.out.println(1.23e-2); } } ```二、转义字符
转义字符从\开始 格式为:\+要转义的字符
public class ZhuanYi{
public static void main(String[] args){
System.out.println('\'');
System.out.println("\"");
System.out.println("\\");
System.out.println("shsxtverygood上海");
System.out.println("shsxtverygood\b上海"); // "\b" 退格
System.out.println("shsxtverygood上海\b");
System.out.println("shsxtverygood\n上海"); // "\n"换行
System.out.println("shsxtverygood\r上海"); // "\r" 光标回到行首
System.out.println("shsxtverygood上海\r~");
}
结果如下
三、运算符
运算符可以分为如下几种
- 算术运算符
- 关系运算符
- 位运算符
- 逻辑运算符
- 赋值运算符
- 条件运算符
1)算术运算符
①单目:+(取正)、-(取负)、++(自增)、- -(自减)
②双目:+、-、*、/、%(取余)
注:“+”还可以作为字符串连接符,当+左右两边如果一旦有字符串的出现,就作为字符串的连接符使用。
public class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
int d = 40;
System.out.println("a + b = " + (a + b) );
System.out.println("a - b = " + (a - b) );
System.out.println("a * b = " + (a * b) );
System.out.println("b / a = " + (b / a) );
System.out.println("b % a = " + (b % a) );
System.out.println("c % a = " + (c % a) );
System.out.println("a++ = " + (a++) );
System.out.println("a-- = " + (a--) );
// 查看 d++ 与 ++d 的不同
System.out.println("d++ = " + (d++) );
System.out.println("++d = " + (++d) );
int i=3;
int result=i++ + ++i + i++ + i++ + ++i;
System.out.println(i); //8
System.out.println(result); //27
}
}
2)赋值运算符
基本赋值运算符: ' = ', java中唯一一个自右向左运算的符号
扩展赋值运算符(算数运算符+基本赋值运算符):+= 、-= 、*=、 /= 、%=
例如:a+=b-> a=a+b
优点:
1.提高执行效率
2.自动做强制类型转换
缺点:不直观
public class Operator05{
public static void main(String[] args){
int zhang=99;
int sum=0;
sum=sum+zhang;
System.out.println(sum);
short s1=100;
//s1=s1+1; //报错,数据类型问题
s1++;
s1+=5;
System.out.println(s1);
}
}
3)关系运算符
几种运算符 ==,!=,>,>=,<,<=
注: 最终的结果肯定为boolean类型的结果
public class Operator06{
public static void main(String[] args){
char ch1='a';
char ch2='b';
System.out.println(ch1<=ch2); //true
String name1="张三";
String name2="李四";
System.out.println(name1!= name2); //true
System.out.println(ch1+1 != ch2); //false
}
}
4)逻辑运算符
操作数要求都要是值为boolean类型的表达式
&"与" :两个都为true才是true,一个为false就是false
|"或" :一个为true就是true,两个都是false才是false
!"非" :取反 !true-->false !false-->true
^"异或" :相同为false,不同为true
注:建议使用短路“与”或“或”
public class Operator07{
public static void main(String[] args){
int a=10;
int b=9;
System.out.println(a>b && ++b>a); //false
System.out.println("a="+a+",b="+b); //a=10,b=10
System.out.println(a<b | b<a); //false
System.out.println(!(a>b ^ a>9)); //false
}
}
4)条件运算符
格式:条件表达式 ? 值1 : 值2;
1)执行条件表达式-->值为boolean类型的表达式
2)如果为true,最终的结果取值1
3)如果为false,最终的结果取值2
public class Operator08{
public static void main(String[] args){
int a=5;
String str=a>0? "a>0" : "a<=0";
System.out.println(str); //a>0
}
}
5)位运算符
应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型
符号 | 用法 |
---|---|
& | 同一位置的两个数,一个0就是0,两个都1才是1 |
| | 同一位置的两个数,一个为1就是1,两个都为0才是0 |
^ | 相同为0,不同为1 |
<< | 二进制的操作数,向左移动第二个操作数的位数,空余的位置补0 |
>> | 二进制的操作数,向右移动第二个操作数的位数,分水岭右侧的结果不要,只保留左侧 |
运算符的优先级: 单目算数位关系,逻辑三目后赋值
public class Operator09{
public static void main(String[] args){
System.out.println(3&2); //2
System.out.println(3|2); //3
System.out.println(3^2); //1
System.out.println(9>>2); //2
System.out.println(8<<2); //32
}
}
左移运算符便捷计算方法:第一个操作数*2的第二个操作数次方
右移运算符便捷计算方法:第一个操作数/2的第二个操作数次方
四、引用数据类型
步骤:
1.创建某个类型的变量|引用
引用数据类型 变量名 = new 引用数据类型();
Scanner sc=new Scanner(); ---sc就是scanner类型的变量
2.使用功能
变量.功能名字();
1)Scanner类:接收键盘输入的内容
1.导包:指明Scanner类的位置
import +包名+类名; import java.util.Scanner;
位置:类的上面
2.创建某个类型的变量|引用
Scanner sc=new Scanner();
3.引用.功能名字();
next() 接收字符串 结束功能:enter,不会接收enter
从有效字符开始接收,遇到空格,tab不接受了,但是必须遇到enter结束功能
nextLine() 只要没有换行,都能接收 遇到enter结束功能,接收enter
nextInt()
nextByte()
nextShort()
nextDouble()....
4.引用.close();
注意:一定在一个类中使用完毕以后再关闭,否则重新开启也无法使用
import java.util.Scanner;
public class Scanner10{
public static void main(String[] args){
//1.导包
//2.创建某个类型的变量|引用
Scanner sc=new Scanner(System.in);
//3.使用功能
String s=sc.next();
System.out.println(s);
//处理enter问题
sc.nextLine();
String s2=sc.nextLine();
System.out.println(s2);
int i=sc.nextInt();
System.out.println(i);
double d=sc.nextDouble();
System.out.println(d);
sc.close();
}
}
2)Random:产生随机数
1.导包 import java.util.Random;
2.创建Random类型的变量|引用
3.引用.功能名字()
nextInt() 产生一个int范围内的随机整数
nextInt(n) 产生0~n随机整数 [0,n)
[0,max] 引用.nextInt(max+1)
[min,max] 引用.nextInt(max-min+1)+min
nextDouble() 产生[0,1)之间的随机小数
import java.util.Random;
public class Random11{
public static void main(String[] args){
//1.导包
//2.创建Random类型的变量|引用
Random ran=new Random();
//3.使用功能
int i=ran.nextInt();
//[0,5]
i=ran.nextInt(6);
System.out.println(i);
//[3,5]
i=ran.nextInt(5-3+1)+3;
System.out.println(i);
double d=ran.nextDouble()+3;
System.out.println(d);
}
}
五、流程控制语句
顺序结构:从上倒下,从左到右
选择结构:根据选择,决定执行的内容
循环结构:重复执行某些内容
1)if语句
if..else
单分支|单选泽
if(条件表达式){
语句体;
}
注:
条件表达式必须值为boolean类型的表达式
如果条件表达式结果为false,就不执行跳过整个if结构
如果条件表达式结果为true,执行{}中的语句体
双分支|双选择
if(条件表达式){
语句体1;
}else{
语句体2;
}
多分支|多选择:
if(条件表达式1){
语句体1;
}else if(条件表达式2){
语句体2;
}else if(条件表达式3){
语句体3;
}
....
else{
以上条件都不满足执行的内容
}
public class IfDemo12{
public static void main(String[] args){
//单选
if(false)
System.out.println("现在5点了,还有半个小时就下课了!!!哈哈哈~~~");
System.out.println("if语句结束以后");
//双选
int a=0;
if(a>0){
System.out.println("a>0");
}else{
if(a==0){
System.out.println("a=0");
}else{
System.out.println("a<0");
}
}
//多选择
if(a>0)
System.out.println("a>0");
else if(a==0)
System.out.println("a=0");
else
System.out.println("a<0");
}
}
2)switch语句
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
....
default:
语句体n;
break;
}
case:拿表达式的结果与case后的值进行判断,如果相同,执行对应的语句体;
break:结束这个switch语句,如果没有break会发生case穿透
default: else作用一致,以上case都不满足条件,执行default中的语句体 可以在switch语句中的任何位置,改变位置注意break的问题
public class SwitchDemo14{
public static void main(String[] args){
String str="紫灯";
/*
switch(str){
case "红灯":
System.out.println("红灯停!");
break;
case "绿灯":
System.out.println("绿灯行!");
break;
case "黄灯":
System.out.println("黄灯等一等!");
break;
default:
System.out.println("是不是傻!!!");
break;
}*/
switch(str){
default:
System.out.println("是不是傻!!!");
break;
case "红灯":
System.out.println("红灯停!");
case "绿灯":
System.out.println("绿灯行!");
case "黄灯":
System.out.println("黄灯等一等!");
break;
}
int b=100;
switch(b){
case 1:
System.out.println("1");
break;
case 10:
System.out.println("10");
break;
case 100:
System.out.println("100");
break;
}
}
}