Java语言基础

java的基础语法

img

在Java中有8种数据类型来存储数值、字符布尔值

/*

	数据类型:
		java是一个强类型的语言,数据类型明确
			计算机中基本的存储单位: 字节
			最小单位: 比特位
				1byte = 8bit
		
		基本数据类型 : 4类八种
			整型
				字节型     byte       1字节=8位			2^8->[-128,127]
				短整型	   short	  2字节=16位		2^16->[-32768,32767]
				整型	   int		  4字节=32位		正负21亿
				长整型     long		  8字节=64位        非常大
				
				因为整数字面常量值默认int类型
				long类型的数据,需要在数据的后面添加L|l,推荐使用大写的L
				重要: int
			
			浮点型:
				单精度  float 				4个字节        小数点后7位左右
				双精度  double				8个字节		   小数点后15位左右
				浮点类型的字面常量值为double
				表示一个float类型的数据,在数据的后面添加f|F
				如果浮点类型进行运算,可能会不精确
				重要: double
			
			字符型
				char   2个字节		
				就是用来表示一个字符
				表现形式:
					1. ''中包裹单个字符
					2.0~65535之间的整数表示某个字符    UNicode字符集
				注意:
					char类型参与运算,先转为十进制的整数,再运算
			
			布尔型
				boolean	  1bit   true|false
		
		
		引用数据类型 : 类   接口   数组
*/

public class Day02{
	
	public static void main(String[] args){
		//byte
		byate b = -128;
		System.out.println(b);
		
		//short
		short sal = 30000;
		System.out.println(sal);
		
		//long
		long l = 100000000000l
		System.out.println(l);
		
		//double
		double d1 = 123.321231456;
		System.out.println(d1);
		
		//float
		float f = 0.123456789;
		System.out.println(f);
		
		char c1 = 'a';
		char c2 = '1';
		char c3 = ' ';
		char c4 = '强';
		char c5 = 97;
		System.out.println(ch1);
		System.out.println(ch2);
		System.out.println(ch3);
		System.out.println(ch4);
		System.out.println(ch5);
		
		
		//boolean
		boolean flag = true;
		flag = false;
		System.out.println(flage);
		
	}
}

整数类型

整数型用来存储整数数值,即没有小数部分的数值。可以是正数,也可以是负数。整数数据在Java程序中有3种表示形式,分别为十进制八进制十六进制

/*

	数值型的表现形式(了解)
		整数:
			进制: 满几进一
			二进制 : 由0~1组成		由0b|0B开头
			八进制 : 由0~7组成		由0开头
			十进制 : 默认
			十六进制 : 由0~9|a~f组合而成(不区分大小写)	由0x|0X开头
			
			其他进制转为十进制:
				从最后一位数开始*当前进组^(次方从0开始每次+1),最后拿到每一位数的计算结果求和
			
			十进制转为其他进制:
				把十进制的数据,想要转为几进制,就不停的除以几,最后得到结果为0,看余数,从下往上看
			
		浮点类型:
			1)小数0.几,整数为0,0可以省略   0.15->.15
			2) 科学计数法  e|E 代表10   e正数n  -> *10^n       e负数正数n  -> /10^n
				1.23e3->1.23*10^3
				1.23e-3->1.23/10^3

				练习: 520转为2进制,8进制,16进制的结果
*/

public class Day02{
	
	public static void main(String[] args){
		System.out.println(0B10);
		System.out.println(010);
		System.out.println(0x15);
		System.out.println(0115);  //77
		
		System.out.println(0b1100);  //12
		
		System.out.println(0.15);  
		System.out.println(.15);  
		
		System.out.println(1.23e3);  
		System.out.println(1.23e-3);  
	}
	
	
}

整型数据根据它所占内容大小的不同可分为4种类型。

数据类型内存
byte8位
short16位
int32位
long64位

浮点类型

数据类型内存
float32位
double64位

字符类型

字符类型用于存储单个字符,占用16位(两个字节)的内存空间。在定义字符型变量时,要以单引号表示。使用char关键字可定义字符变量。

数据类型内存
char16位

布尔类型

布尔类型又称逻辑类型,通过关键字boolean来定义布尔类型变量,只有只有true和false两个取值,分别代表布尔逻辑中的“真”和“假”。布尔类型通常被用在流程控制中作为判断条件。

关键字 :

Java关键字是Java语言保留供内部使用的特殊单词,已经在使用 public公共的 class
​ 关键字会变色
​ 关键字全部小写

保留字 :

是Java语言保留供内部使用的特殊单词,但是现在还没有被使用,所以叫做保留 goto const

注意: 关键字和保留字都不能被使用
标识符:

就是给类,接口,方法,变量等起名字的字符序列。一切起名字地方的这个名字就是标识符

标识符得到命名规则 : 必须遵守不遵守就报错
​ 组成: 只能有字母,数字,下划线_,美元符号$任意组合而成,但是数字不能开头
​ 严格区分大小写
​ 关键字与保留字不能作为标识符使用

关键字 :

Java关键字是Java语言保留供内部使用的特殊单词,已经在使用 public公共的 class
关键字会变色
关键字全部小写

保留字 :

是Java语言保留供内部使用的特殊单词,但是现在还没有被使用,所以叫做保留 goto const

注意: 关键字和保留字都不能被使用

标识符的命名规范 : 应该遵守,但是不遵守不报错
见名知意
驼峰命名原则
包(文件夹) : 全部小写 层级之间使用.连接 shang.hai -> shang文件夹中存在一个hai文件夹
类名|接口名 : 每个单词首字母大写 ShangHai
方法名|变量名 : 第一个单词全部小写,第二个单词首字母大写 shangHai
常量名 : 全部大写,每个单词之间使用_连接 SHANG_HAI

关键字

关键字含义
abstract抽象类或方法
assert用来查找内部程序错误
break跳出一个switch或循环
byte8位整数类型
caseswitch的一个分支
catch捕获异常的try块子句
class定义一个类类型
continue在循环末尾继续
defaultswitch的缺省语句
dodo/while循环最前面的语句
double双精度浮点数类型
elseif语句的else子句
enum枚举类型
extends定义一个类的父类
final一个常量,或不能覆盖的一个类或方法
finallytry块中总会执行的部分
float单精度浮点数类型
for一个循环类型
if一个条件语句
implements定义一个类实现的接口
import导入一个包
instanceof测试一个对象是否是某个类的实例
int32位整型数
interface接口,一种抽象类型,仅有方法和常量的定义
long64位长整数型
native由宿主系统实现的一个方法
new分配新的类实例
null一个空引用
package包含类的一个包
private表示私有字段,或者方法等,只能从类内部访问
protected表示保护类型字段
public表示共有属性或者方法
return从一个方法中返回
short16位整数类型
static这个特性是这个类特有的,而不属于这个类的对象
strictfp对浮点数计算使用严格的规则
super超类对象或构造函数
switch选择语句
synchronized对线程而言是原子的方法或代码块
this当前类的一个方法或构造函数的隐含参数
throw抛出一个异常
throws一个方法可能抛出的异常
transient标志非永久性的数据
try捕获异常的代码块
void标记方法不返回任何值
volatile标记字段可能会被多个线程同时访问,而不做同步
while一种循环

变量

/*
	变量: 可变的量 存储单个数据
		在java程序执行过程中,其值可以发生改变的量
		相当于造盒子,盒子就是变量   盒子的名字就是变量名   盒子中存储的数据就是变量值
			停车位   位置是变量   停车位的编号就是变量名   车就是数据
			一块内存空间	 空间就是变量   空间中放的数据就是变量值  根据存储数据为空间起名字->变量名
		java中定义一个变量,就是在内存中开辟一块空间,用来存储指定类型的数据
			空间的大小由数据决定 
		
		变量 : 指的是一个块空间,作用就是为了存储数据
		数据类型: 是数据就存储对应的数据类型,不同的数据类型代表不同的内存空间
			整数int  double小数   字符类型char    字符串String""   boolean布尔
			
		定义: 
			声明的同时赋值
				数据类型 变量名 = 赋值;
			
			先声明后赋值
				数据类型 变量名; 声明
				变量名 = 赋值;   赋值
				
		
		定义变量的注意事项:
			变量的名字 : 标识符的命名规则|规范
			变量的类型 : 根据要存储的变量值进行选择
			变量的值 : 与变量的类型保持一致
		
		
		
		注意: 变量可以赋值为一个数据值,可以赋值为一个表达式,但是都是最终得到一个结果数据然后才能赋值给变量
			  一条语句结束必须添加;
*/
public class VariableDemo04{ 
	public static void main(String[] args){
		//声明一个变量,用来存储学生的年龄 18
		int age = 18;
		
		System.out.println(age);  //打印一个名字叫做age的变量空间中存储的数据值
		
		//声明 一个变量存储学生的名字
		String name;
		//名字为张三
		name="张三";
		System.out.println(name); 
		
		//张三改名为李小龙
		name = "李小龙";
		System.out.println(name); 
		
		//同时声明多个变量
		int x, y ,z;
		x = 1;
		y=z=2;
		System.out.println(x); 
		System.out.println(y); 
		System.out.println(z); 
		
		//定义了char类型的变量
		char ch1='a',ch2='b';
		System.out.println(ch1); 
		System.out.println(ch2); 
	}
	
}

转义字符

所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

字符表

所有的转义字符和所对应的意义:

转义字符意义ASCII码值(十进制)
\a响铃(BEL)007
\b退格(BS) ,将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
\n换行(LF) ,将当前位置移到下一行开头010
\r回车(CR) ,将当前位置移到本行开头013
\t水平制表(HT) (跳到下一个TAB位置)009
\v垂直制表(VT)011
\代表一个反斜线字符’’’092
代表一个单引号(撇号)字符039
"代表一个双引号字符034
?代表一个问号063
\0空字符(NUL)000
\ddd1到3位八进制数所代表的任意字符三位八进制
\xhh十六进制所代表的任意字符十六进制

注意:

1. 区分,斜杠:"/" 与 反斜杠:"" ,此处不可互换

2. \xhh 十六进制转义不限制字符个数 ‘\x000000000000F’ == ‘\xF’

运算符是一些特殊的符号,主要用于数学函数、一些类型的赋值语句和逻辑比较方面。

赋值运算符

赋值运算符以符号“=”表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的值赋给左方的操作数。

例如:

int a = 100;

算术运算符

运算符说明
+
-
*
/
%取余数

自增和自减运算符

自增和自减是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。自增、自减运算符的作用是使变量的值增1或减1。放在操作元前面的自增、自减运算符,会先将变量的值加1或减1,然后再使该变量参与表达式的运算。放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量的值加1或减1。

例如:

假设a=5

b=++a;  //先将a的值加1,然后赋值给b,此时a的值为6,b的值为6
b=a++;  //先将a的值赋值给b,再将a的值变为6,此时a的值为6,b的值为5

比较运算符

比较运算符属于二元运算符,用于程序中的变量之间,变量和自变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是boolean型。当运算符对应的关系成立时,运算的结果为true,否则为false。比较运算符共有6个,通常作为判断的依据用于条件语句中。

运算符说明
>比较左方是否大于右方
<比较左方是否小于右方
==比较左方是否等于右方
> =比较左方是否大于等于右方
<=比较左方是否小于等于右方
!=比较左方是否不等于右方

逻辑运算符

运算符作用
&&逻辑与
||逻辑或
逻辑非

Java Scanner 类

java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。

下面是创建 Scanner 对象的基本语法:

Scanner s = new Scanner(System.in);

接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要 使用 hasNext 与 hasNextLine 判断是否还有输入的数据:

使用 next 方法:

import java.util.Scanner; 
 
public class ScannerDemo {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // 从键盘接收数据
 
        // next方式接收字符串
        System.out.println("next方式接收:");
        // 判断是否还有输入
        if (scan.hasNext()) {
            String str1 = scan.next();
            System.out.println("输入的数据为:" + str1);
        }
        scan.close();
    }
}

执行以上程序输出结果为:

$ javac ScannerDemo.java
$ java ScannerDemo
next方式接收:
runoob com
输入的数据为:runoob

可以看到 com 字符串并未输出,接下来我们看 nextLine。

使用 nextLine 方法:

import java.util.Scanner;
 
public class ScannerDemo {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // 从键盘接收数据
 
        // nextLine方式接收字符串
        System.out.println("nextLine方式接收:");
        // 判断是否还有输入
        if (scan.hasNextLine()) {
            String str2 = scan.nextLine();
            System.out.println("输入的数据为:" + str2);
        }
        scan.close();
    }
}

执行以上程序输出结果为:

$ javac ScannerDemo.java
$ java ScannerDemo
nextLine方式接收:
runoob com
输入的数据为:runoob com

可以看到 com 字符串输出。

next() 与 nextLine() 区别

next():

  • 1、一定要读取到有效字符后才可以结束输入。
  • 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  • 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • next() 不能得到带有空格的字符串。

nextLine():

  • 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  • 2、可以获得空白。

如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:

import java.util.Scanner;
 
public class ScannerDemo {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // 从键盘接收数据
        int i = 0;
        float f = 0.0f;
        System.out.print("输入整数:");
        if (scan.hasNextInt()) {
            // 判断输入的是否是整数
            i = scan.nextInt();
            // 接收整数
            System.out.println("整数数据:" + i);
        } else {
            // 输入错误的信息
            System.out.println("输入的不是整数!");
        }
        System.out.print("输入小数:");
        if (scan.hasNextFloat()) {
            // 判断输入的是否是小数
            f = scan.nextFloat();
            // 接收小数
            System.out.println("小数数据:" + f);
        } else {
            // 输入错误的信息
            System.out.println("输入的不是小数!");
        }
        scan.close();
    }
}

执行以上程序输出结果为:

$ javac ScannerDemo.java
$ java ScannerDemo
输入整数:12
整数数据:12
输入小数:1.2
小数数据:1.2

以下实例我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:

import java.util.Scanner;
 
class RunoobTest {
    public static void main(String[] args) {
        System.out.println("请输入数字:");
        Scanner scan = new Scanner(System.in);
 
        double sum = 0;
        int m = 0;
 
        while (scan.hasNextDouble()) {
            double x = scan.nextDouble();
            m = m + 1;
            sum = sum + x;
        }
 
        System.out.println(m + "个数的和为" + sum);
        System.out.println(m + "个数的平均值是" + (sum / m));
        scan.close();
    }
}

执行以上程序输出结果为(输入非数字来结束输入):

$ javac ScannerDemo.java
$ java ScannerDemo
请输入数字:
12
23
15
21.4
end
4个数的和为71.4
4个数的平均值是17.85

Java之父“高司令”

的大名,很多人肯定会联想到地道战经典对白“高实在是高”,不好意思,那是胡司令,这个高司令是个高鼻子、大胡子、金头发的老外,但作为Java编程语言的共同创始人之一,中国的程序员们在膜拜这位公认的Java之父同时,也亲昵的用中文谐音“高司令”来表达出对他的多重敬意。

img

他是比尔盖茨的噩梦,他用他的大胡子让盖茨的微笑变得十分勉强,他是技术的先驱,他技术成果覆盖了100亿台设备,除了苹果,没有什么手机不用向他致敬;他就是高斯林,Java的缔造者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值