当前位置: 首页 > article >正文

3.Java入门笔记--基础语法

1.字面量

概念:计算机用来处理数据的,字面量就是告诉程序员数据在程序中的书写格式

常用数据:整数,小数直接写;字符单引号('A')且只能放一个字符;字符串双引号("Hello")内容可以为多个字符;布尔值true和false;空值:null。

2.变量

格式:

数据类型 变量名称 = 数据;

变量指内存中的一块区域,相当于盒子,里面装的数据可以变化。

变量的应用场景:对数据进行处理就很方便。例如:

//钱包里有9.5元,收到了10元红包,又发出去5元,请输入各阶段红包情况
double money = 9.5;//钱包
//收到10元
 money = money + 10;
System.out.println(money);//此时输出19.5
//发出去5元
money = money - 5;
System.out.println(money);//此时输出14.5

3.关键字、标识符

关键字:Java语言自己用到的一些词,有特殊的作用,如:public、class、int等等。所以关键字是我们不能用来作为类名、变量名。

标识符:编写程序的名字,像类名、变量名等都是标识符。

        基本组成:数字、字母、下划线、美元符等

        要求:不能以数字开头、不能用关键字作为名字、区分大小写。

4.存储知识补充

数字存储

  • 计算机中表示数据的最小单元:一个字节(byte,简称B,是使用8个二进制位组成的)
  • 字节中的每个二进制位就称为位(bit,简称b),1B=8b。

字符存储

  • ASCLL编码:将字符对应数字再在电脑中存储。

图片存储

  • 图片是由无数个像素点组成的
  • 每个像素点的数据用0~255*255*255表示其颜色

声音存储:

  • 声波对应频率数据再转换为2进制

5.数据类型

总体分两类:基本数据类型引用数据类型

基本数据类型

4大类:整型、浮点型、字符型、布尔型

8种:byte、short、int、long;float、double;char;boolean

package jmpro1;

public class lip1 {
    public static void main(String[] args) {
    	//目标:掌握基本数据类型的使用
    	//1.byte short int long
    	byte a = 127;//范围-128到127
    	//byte a2 = 128;//越界了
    	
    	short s = 13244;//短整型
    	//short s1 = 93244;//越界了
    	
    	int i = 422424;
    	
    	//注意:随便写一个整型字面量默认是int类型的42222222461虽然没有超过long的范围,但是超过了int的范围
    	//如果希望随便写一个整型字面量默认是long类型,需要在后面加上L/l
    	long lg = 42222222461L;
    	
    	//2.float double 
    	//注意:随便写一个小数字面量默认是double类型的
    	//如果希望随便写字面量默认是float类型,需要在后面加上F/f
    	float f = 3.14F;
    	
    	
    	//3.char 字符型
    	char ch='a';
    	
    	//4.boolean
    	boolean flag = true;
    	boolean flag1 = false;
    	
    	
    	//引用数据类型,后面要用
    	//String 称为字符串类型,定义的变量可以用于记住一个字符串数据。
    	String name = "张三";
    	System.out.println(name);
    			
 
    	
    }
}

6.类型转换

概念和意义:在开发中,1.某种类型的变量赋值给另一种类型的变量时需要转换2.不同的类型需要一起计算时要用到类型的转换。

6.1.自动类型转换

概念:类型范围小的变量可以直接赋值给类型大的变量。

比如byte类型的变量可以直接赋值给int类型的变量。

package jline2;

public class hello {
	public static void main(String[] args) {
		//目标:理解自动类型转换机制
		byte a = 12;
		int b = a;//没有报错,发生了自动类型转换
		System.out.println(a);
		System.out.println(b);
		
	}
}

输出两个12。

执行原理:

例:1.首先开辟一个byte类型的名为a的空间(8位的二进制);2.第二行开始开辟一个int类型名为b的空间(32位);3.将a变量里面的数据赋值到b变量中,将a中的数放在b的最后前面补0。

其他形式:

6.2.表达式的自动类型转换

概念及意义:在进行不同类型的变量或数据一起运算时,要知道最后运算出的数据的类型。

在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型再运算。

注意:

  • 最终结果类型有最高类型决定
  • byte、short、char是直接转化成int类型参与运算的
package jline2;

public class hello {
	public static void main(String[] args) {
		//目标:掌握表达式的自动类型转换机制
		byte a = 10;
		int b = 20;
		long c = 30;
		long rs = a + b + c;//最高表达式是long
		System.out.println(rs);
	}
}

6.3.强制类型转换

      概念:大范围类型变量转换为小范围类型变量

数据类型 变量2=(数据类型)变量1、数据

例如:

package jline2;

public class hello {
	public static void main(String[] args) {
		//目标:掌握强制类型转换
		int a3 = 20;
		//byte b3 = a3;//报错
		//需要强制类型转换
		byte b3 = (byte)a3;
	}
}

执行原理:

1.首先开辟一个int类型的名为a3的空间(32位的二进制);2.第二行开始开辟一个类byte型名为b3的空间(8位);3.将a3变量里面的数据赋值到b3变量中,将a中的数的最后几位强制放在b中。

另一种情况:范围大于小范围值时,

package jline2;

public class hello {
	public static void main(String[] args) {
		//目标:掌握表达式的自动类型转换机制
		int a4 = 1500;
		byte b4 = (byte)a4;
		System.out.println(b4);//-36
	}
}

所以,强制类型转换是可能造成数据丢失的,比如浮点型强转成整型,直接丢掉小数点部分,保留整数部分返回。

7.运算符

7.1.基本的算术运算符

+ - * /都和数学语言一样(/中在Java中两个整数相除结果还是整数)

%取余:获取的是两个数据做除法的余数。

+还可以作为连接符:不能计算时连接。

int a = 5;
System.out.println("abc" + a);//输出abc5

7.2.自增自减运算符

自增:++

自减:--

注意:它们只能操作变量,不能操作字面量。

int a = 10;
//a++;//a= a+1;
++a;

System.out.println(a);//11
//a--;//a = a-1
--a;
System.out.println(a);//11-1=10

++、--如果不是单独使用,放在变量的前后会有明显的区别:

  • 放在变量的前面对变量进行+1、-1的操作,再拿变量的值进行运算。
  • 放在变量的前面,先拿变量的值进行运算,再对变量进行+1、-1的操作。
package jline2;

public class hello {
	public static void main(String[] args) {
		/int a5 = 10;
		int rs2 = ++a5;//放前面,先加后用
		System.out.println(rs2) ;
		System.out.println(a5) ;//先加让a5变成11再给rs2
		
		//
		int b5 = 10;
		int rs3 = b5++;//放后面,先用后加
		System.out.println(rs3) ;//10先把10给rs3再加在b5上
		System.out.println(b5) ;
}

7.3.赋值运算符

基本赋值运算符是“=”,从右往左看

扩展:

符号用法作用底层代码形式
+=a+=b加后赋值a = (a的类型)(a + b);
-=a-=b减后赋值a = (a的类型)(a - b);
*=a*=b乘后赋值a = (a的类型)(a * b);
/=a/=b除后赋值a = (a的类型)(a / b);
%=a%=b取余后赋值a = (a的类型)(a % b);

注意:扩展的赋值运算符隐含了强制类型转换。

例:

package item1;

public class lessonss {
       public static void main(String[] args) {
    	   //目标:掌握扩展赋值运算符的使用
    	   //+=
    	   //需求:收红包
    			double a = 9.5;
    			double b = 520;
    			a += b;//a =(double)a + b;
    			System.out.println(a);
    			
    			//-= 需求:发红包
    			
    			double i = 600;
    			double j = 520;
    			i -= j;//i =(double) i - j;
    			System.out.println(i);
    			
    			
       }
}

例题:

byte x = 10;
byte y = 30;
x = x + y;//是否正确

错误

package item1;

public class lessonss {
       public static void main(String[] args) {
    	   byte x = 10;
    			byte y = 30;
    			//x = x + y;//编译报错
    			x =(byte) (x + y);//x += y;也是正确的
    			System.out.println(x);
    			
    			
       }
}

原因:byte、short、char是直接转化成int类型参与运算的,也就是说x+y是整型。

7.4.关系运算符

判断数据是否满足条件,最终会返回一个判断的结果,这个结果是布尔值类型的值:true或者false。

package item1;

public class lessonss {
       public static void main(String[] args) {
    	   //目标:关系运算符的基本使用
    			int a1 = 10;
    			int b1 = 5;
    			boolean rs = a1 > b1;
    			System.out.println(rs);//true
    			
    			
       }
}

7.5.逻辑运算符

逻辑运算符:&(与)、|(或)、!(非)、^(异或)

依次运算逻辑为:

  • &(与):多个条件必须都是true;有一个是false,结果就是false
  • |(或):多个条件中只要有一个是true,结果就是true
  • !(非):取反;
  • ^(异或):前后条件的结果相同,就直接返回false,前后条件的结果不同,才返回true

特别地:&&(短路与)、||(短路或);判断结果与单个&|一样,过程不同。

&&:左边是false,右边不执行

||:左边是true,右边不执行

注意:在Java中,“&&”、“||”无论左边是false是true,右边都要执行。所以说&&、||的运算效率更高。

7.6.三元运算符

//格式
条件表达式? 值1:值2;

执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。

package item1;

public class lessonss {
       public static void main(String[] args) {
    	   //目标:掌握三元运算符运算符的使用
    			double score =98.5;
    			String rs4 = score >= 60 ? "及格" : "不及格";
    			System.out.println(rs4);//及格
    			
       }
}

http://www.kler.cn/news/356521.html

相关文章:

  • Git Push 深度解析:命令的区别与实践
  • Linux 手撕线程池
  • vcenter的使用
  • linux查看系统类型
  • Sqli-labs less-27
  • Oracle 19C VIP跑到了PUBLIC IP上?
  • 学SQL第一天
  • 【C++】- STL之vector模拟实现
  • wifi、热点密码破解 - python
  • 8-基于双TMS320C6678 + XC7K420T的6U CPCI Express高速数据处理平台
  • oracle数据库---基本查询(单表查询、多表查询、子查询、分页查询、oracle内置函数、行列转换、集合运算)
  • 通过docker镜像安装elasticsearch和kibana
  • 充电桩高压快充发展趋势
  • JPA、Hibernate入门及实战
  • Vmware一步安装win7系统
  • 从零开始搭建:基于在线教育系统源码的线上网校开发详解
  • 软考-软件设计师(10)-专业英语词汇汇总与新技术知识点
  • 基于x86_64汇编语言简单教程1: 环境预备与尝试
  • 25计软新增考研院校!或可捡漏上岸!
  • 「C++」内存管理