java入门(2)

java入门

进制

数值型的表现形式
整型:
进制: 满几进一
**
Java中常用4种进制的表示方法**

  1. 二进制(binary):0,1,满二进一。以0b或0B开头。
  2. 十进制(decimal):0-9,满10进1.
  3. 八进制(octal):0-7,满8进1.以数字0开头表示。
  4. 十六进制(hex):0-9和A-F,满16进1。以0x或0X开头表示。注意:A-F不区分大小写。比如 0X12AB=0x12ab。
	其他进制转为十进制: 
		从右往左,每一位的数值*进制数^次方从0开始,每次+1 ,最后求和就是对应的十进制数据
	十进制转为其他进制:
		使用当前 的十进制数据,不停的除以要转为的进制数,得到结果为0就不除了,得到最终的余数,从下往上看结果
	
浮点型:
	0.5->.5  0可以省略
	科学计数法 : e|E-> 10
		0.12E3 ->0.12*10^3
		0.12E-3 ->0.12/10^3

数据类型转换

数据类型转换:
boolean 类型不参与类型转换

	自动类型提升
		大范围数据类型 变量 = 小范围类型的数据;
	
	强制类型转换
		小范围数据类型 变量 = (小范围数据类型)大范围数据数据;
		
	注意:
		对应类型的数据赋值给对应类型的变量
		强制转型发生在赋值之前
		如果多种数据类型的数据参与运算,最终的结果为参与运算中的最大数据类型
			如果运算后最大的类型小于int类型,会自动提升成为int
		byte-short-int-long-float-double
		如果为byte,short,char类型赋值的时候,只要在其范围内的常量就能成功赋值

运算符

	运算符分类:
		算数运算符
		赋值运算符
		比较运算符|关系
		逻辑运算符
		条件运算符
		位运算符
		
	操作数: 运算符左右两边 的数据称为操作数
	表达式: 运算符连接操作数整体称之为表达式
	语句 : ;代表一个语句的结尾
	
单目运算符|一元 : 操作数只有一个  +  -负号  ++ --
双目运算符|二元 : 操作数只有两个  + - * /
三目运算符|三元 : 条件运算符

算数运算符:
	+ - * / %求余数  ++ --
		+ :
			1)正号->可以省略
			2)加法运算
			3)字符串连接符: 当+左右两边存在字符串的数据,当前的+作为字符串的连接符存在,会把左右两边的数据连接成为一整个字符串
		
		- :
			1)负号
			2)减法运算
		
		% 取模|模以|求余数:
			当第一个操作数<第二个操作数,结果就为第一个操作数

代码展示

public class Class004_Operator{

public static void main(String[] args){
	int i = 2+3;
	int j = 10;
	
	System.out.println("i="+i);  //"i=5"
	System.out.println("j = " + j); //"j = 10"
	
	System.out.println(5/3); 
	System.out.println(5%3); 
	System.out.println(3%5);   //3
}
}

java中的自增与自减

++ – (重要)
++ : 自增 a++ -->a=a+1;
– : 自减 a-- -->a=a-1;

只影响自己,不影响其他结果
	++放在操作数的前面或者后面,都是自身+1
	--放在操作数的前面或者后面,都是自身-1

影响自己,也影响其他结果 (输出,赋值,运算)
	++或者--放在操作数的前面,先自身+1|-1,然后再去参与运算
	++或者--放在操作数的后面,先再去参与运算,然后自身+1|-1

注意: 一个变量的值一旦改变不可恢复

代码展示

public class Class005_Operator{

public static void main(String[] args){
	int a = 3;
	
	//影响自己
	a++;   //a=a+1;

	++a; //a=a+1;
	
	a--;
	System.out.println(a); //4
	
	//影响别人  
	//考虑: a的值是1还是10000有没有影响其他的结果?->有,影响别人->没有->只影响自己
	//有->不仅仅修改了a变量的值,还影响了打印语句的结果
	System.out.println(a++); //1)先输出a变量的值  2)a++
	System.out.println(a); // 5
	
	int b = a--;
	System.out.println(a); //4
	System.out.println(b); //5
	
	int c = ++a -1;
	System.out.println(a); //5
	System.out.println(c); //4
	
	c = a++ + ++a + a++ + ++a;
	System.out.println(a);  //9
	System.out.println(c);  //28
	
	int k=20;
	int j=8;
	int totle = k++ + j-- + --j + ++k + k++ + j++ + k-- + --k + j++;
	System.out.println("k="+k+",j="+j+",totle="+totle);   //k=,j=,totle=
}
}

java中的赋值运算符

赋值运算符
基础赋值运算符
=
在java中=是自由向左运算的符号
优先级是最低的

	扩展赋值运算符(算数运算符+基本赋值运算符)
		+=	: a+=3;  a=a+3;
		-=
		*=
		/=
		%=  : a%=3;  a=a%3;
		
	推荐使用扩展赋值运算符
	优点:
		1.提高执行效率 (编译期间,编译器会自动编译成扩展赋值运算符)
		2.自动做强制类型转换

关系运算符与比较运算符

< >= <= == !=

	> < >= <= 
		byte,short,int,long,char,float,double
	== !=
		任意类型的数据
	
	关系运算符运算的结果是一个boolean类型的结果

逻辑运算符

逻辑运算符:
	两边的操作数都为boolean类型->|表达式
	&: 两变都为true结果才为true,一个为false就是false
	|: 两边都为false才是false,一个为true就是true
	!: 取反  !true->false  !false->true
	^ 异或 
		相同为false,不同为true
	
	短路:  左边的操作数已经能够决定最终的结果,右边的操作数不在执行
	&&
	||
	推荐使用短路&& 与 短路||

条件运算符

条件运算符
条件表达式 ? 值1 : 值2 ;
条件表达式 : 值为boolean类型的表达式

	执行流程:
		1.计算条件表达式,得到一个boolean结果
		2.如果条件表达式的结果为true,最终的结果为值1
		2.如果条件表达式的结果为false,最终的结果为值2

条件运算符最终肯定能够得到一个执行结果,不是值1就是值2

位运算符

位运算符: -->了解
对二进制的操作数进行某种规则的运算
以下三个运算符两边的操作数为boolean 作为逻辑运算符,两边的操作数为整数,作为位运算符
&
先把两个操作数转为二进制,同一位置的两个数,一个为0就是0,两个都为1才是1,结果转为十进制
|
先把两个操作数转为二进制,同一位置的两个数,一个为1就是1,两个都为0才是0
^
先把两个操作数转为二进制,同一位置的两个数,相同为0,不同为1

	位移运算符:
		>> 右移 
			左边的操作数转为二进制,向右移动右边操作数个位数,移动的位数舍弃,结果转为十进制 
		<< 左移
			左边的操作数转为二进制,向左移动右边操作数个位数,空位补0,结果转为十进制 
	规律:
		>> 右移相当于/2  a>>b  -> a/2^b
		<< 左移相当于/2  a<<b  -> a*2^b
		
	位运算符效率高,对二进制的数据做运算

运算符的优先级(顺口溜)
单目算数位关系,逻辑三目后赋值

数据类型

基本数据类型:
数据类型 变量名 = 数据值;
int i = 1;

引用数据类型:
	1)导包 
		指定要使用的引用数据类型的位置
		import 包名.类名;
		位置: 类的上面
	
	2)创建引用数据类型的引用
	引用数据类型 变量名|引用 = new 引用数据类型();
	
	3)使用功能
		引用.功能名字();

Scanner : 接收用户键盘输入的内容
	1)导包: import java.util.Scanner;
	2)创建一个Scanner类型的引用
		Scanner sc = new Scanner(System.in);
	3)使用功能
		sc.nextInt() 接收用户键盘输入的int类型的数据
		sc.nextByte() 接收用户键盘输入的byte类型的数据
		sc.nextShort() 接收用户键盘输入的short类型的数据
		sc.nextLong() 接收用户键盘输入的long类型的数据
		sc.nextDouble() 接收用户键盘输入的double类型的数据
		sc.nextFloat() 接收用户键盘输入的float类型的数据
		
		sc.next() 接收用户收入的字符串类型的数据
			从有效字符开始接收(非空格),遇到空格就停止接收,知道遇到enter功能结束
		
		以上这些系列的next功能,都是从有效字符开始接收
		sc.nextLine() 接收用户输入的一整行的数据,知道遇到enter结束
		当nextLine功能的上面存在系列的next功能时候,注意处理之前的系列的next遗留的enter问题

代码展示

port java.util.Scanner;
public class Class012_Scanner{

public static void main(String[] args){
	//1)导包:
	//2)创建一个Scanner类型的引用
	Scanner sc = new Scanner(System.in);
	//3)使用功能
	
	int i = sc.nextInt();
	System.out.println("用户输入的内容为 = "+i);
	/*
	byte b = sc.nextByte();
	System.out.println("用户输入的内容为 = "+b);
	
	System.out.println("请输入用户名:");
	String name = sc.next();
	System.out.println("用户输入的内容为 = "+name);
	System.out.println(name.length());
	*/
	//处理遗留的enter问题
	sc.nextLine();
	
	String str = sc.nextLine();
	System.out.println(str);
}
}

Random 声明随机数
1.导包 import java.util.Random;
2.创建类型的引用 Random ran = new Random();
3.使用功能
ran.nextInt() 生成一个int类型范围内的随机数
ran.nextInt(整数n) 生成一个 [0,n) 之间的随机整数
ran.nextDouble() 生成一个 double 类型的随机小数->[0.0,1.0)

	总结公式:
	[min,max) 随机整数  ran.nextInt(max-min)+min
		ran.nextInt(max)->[0,max) 
		ran.nextInt(max)+min ->[0,max) + min  -> [min,max+min)
		ran.nextInt(max-min)+min ->[0,max-min) + min  -> [min,max)
	[min,max] 随机整数  ran.nextInt(max-min+1)+min
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值