首页 > 编程语言 >JAVA基础

JAVA基础

时间:2023-07-29 16:46:57浏览次数:28  
标签:JAVA 变量 数据类型 基础 循环 执行 表达式 Scanner

JAVA基础

一 了解JAVA

Pascal之父Nicklaus Wirth:“Algorithms+Data Structures=Programs”

译:应用程序=算法+数据结构

1.常见的Dos命令

  • dir:列出当前目录下的文件夹
  • md:创建目录
  • rd:删除目录
  • cd:进入指定目录
  • cd..:退回上一级目录
  • cd\:退回到根目录
  • del:删除文件

2.Java语言的特点

面向对象性:

​ 两个要素:类 ,对象

​ 三个特征:封装 ,继承 , 多态

健壮性:

​ 去除了C语言中的指针

​ 自动的垃圾回收机制

跨平台性:

​ 功劳归功于JVM(JAVA虚拟机)

​ Wtire once,Run anywhere.

​ 一次编译,到处运行

3.JDK/JRE/JVM的关系

JDK(Java Development Kit:JAVA的软件开发工具包)=JRE(JAVA运行环境)+开发工具集

JRE=JVM(JAVA虚拟机)+javaSE标准类库

4.path环境变量配置

为什么要配置环境变量

希望Java开发工具(javac.exe,java.exe)在任意文件夹下运行。

如何配置
属性-高级系统设置-环境变量新建'JAVA_HOME'变量,变量值为安装的JAVA的JDK所在地址.
在path变量中添加'%JAVA_HOME%\bin'即可.


二 基本语法

1.java关键字的使用

定义:被java语言赋予了特殊含义,用作专门用途的字符串(单词)

特点:关键词所有的字母都小写

2.保留字:现有java版本尚未使用

具体有哪些保留字:goto / const

注意:自己命名标识符时尽量避免使用这些保留字

3.标识符的使用

定义:java对各种变量,方法,类等要素命名时使用的字符序列成为标识符.(凡是可以自己起名的都是标识符)

涉及到的结构:包名/类名/接口名/变量名/方法名/常量名(加粗为必须要遵守,否则编译不通过)

规则:

  • 由24个英文字母大小写,0-9, _$组成
  • 数字不可以开头
  • 不可以使用关键字和保留字,但是可以包含关键字和保留字
  • java严格区分大小写,长度无限制
  • 标识符不能包含空格

规范:

  • 包名:多单词组成时所有字母都小写.例:xxyyzz
  • 类名,接口名:多单词组成是,所有单词首字母大写.例:XxYyZz
  • 变量名,方法名:多单词组成时,第一个单词首字母小写,后续首字母大写.例:xxYyZz
  • 常量名:所有首字母都大写,多单词组成时用下划线连接.例:XX_YY_ZZ
  • 起名时为了提高阅读性,要做到见名知意

4.变量*

4.1 变量的概念

​ 计算机内存中的一块存储空间,是存储数据的基本单元.

4.2变量的定义流程

声明: 数据类型 变量名; 例:int money;

赋值: 变量名= 值; 例:money = 100;

应用: System.out.println(变量名);

4.3变量的定义方式

声明变量的3种方式:

  • 先声明,再赋值:【常用】
  • 数据类型 变量名;
  • 变量名 = 值;
  • 声明并赋值:【常用】
  • 数据类型 变量名 = 值;
  • 多个同类型变量的声明与赋值:【了解】
  • 数据类型 变量1 , 变量2 , 变量3 = 值3 , 变量4 , 变量5 = 值5;

5.数据类型*

5.1基本数据类型(primitive type)

1.整型:byte(1字节 = 8bit)、short(2字节)、int(4字节)、long(8字节)
		byte范围:-128~127
		声明:long型变量,必须要以"l"或者"L"结尾
		通常,定义整型变量时,使用int型。
		整型的常量,默认类型时:int
2.浮点型:float(4字节)/long(8字节)
		浮点型,表示带小数点的数值
		float表示数值的范围比long还大
		定义float类型时,变量末尾要以"f"或"F"结尾
		定义浮点型变量时,使用double型。
		浮点型常量,默认类型为:double
3.字符型:char(1个字符=2字节)
		定义char型变量通常使用一对单引号''
		内部只能写一个字符
		表示方式:1.声明一个字符;2.转义字符;3.直接使用 Unicode 值表示字符型常量
4.布尔型:boolean
		只能取两个值之一: true 、 false
		常常在条件判断、循环结构中使用

5.2引用数据类型(字符串)

String类型 取值范围:任何" "之间的字面

​ 值字符编码:Unicode字符序列

6.类型转换

①自动类型转换(只涉及7种基本数据类型)

结论:当容量小的数据类型与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
说明:此时的容量大小指的是,表示数的范围的大和小,比如:float容量要大于long的容量。
byte、char、short -->int -->long -->float -->double
特别:当byte、char、short三种类型的变量做运算时,结果为int类型。

②强制类型转换(只涉及7种基本数据类型)

强制类型转换:自动类型提升运算的逆运算。
1.需要使用强转符:()
2.注意点:强制类型转换,可能导致精度损失。

③String与8种基本数据类型间的运算

String属于引用数据类型,翻译为:字符串。
声明String类型变量时,使用一对双引号""
String可以和8种基本类型变量做运算,且运算只能是连接运算:+
String运算结果仍然是String类型。

7.运算符*

7.1算数运算符

操作符 描述
+ 加 , 求和
- 减 , 求差
* 乘 , 求积
/ 除 , 求商
% 模 , 取余
++ 递增 , 变量值+1
-- 递减 , 变量值-1

关于++/--在前++--在后的问题

++在前先做自增再赋值,++在后先做赋值再自增;

--同理

7.2赋值运算符

操作符 描述
= 右边直接赋值给左边
+= 左边加右边然后赋值
-= 左边减右边然后赋值
*= 左边乘右边后赋值
/= 左边除右边后赋值
%= 求余后赋值

7.3关系运算符

操作符 描述
> 大于
< 小于
>= 大于等于
<= 小于等于
== 等于(注意与=赋值区分)
!= 不等于

7.4逻辑运算符

操作符 语义 描述
&& 与(并且) 同为真则为真,有假则假
|| 或(或者) 有真就为真,全假则假
! 非(取反) 真即是假,假则为真

&&与&的区别:

共同点:有false则false,必须同时满足条件

不同点:逻辑单与&在判断左边为false时右边依然执行;而逻辑双与在判断左边为false时,会造成短路效果,右边不参与运算,在开发中常用,执行效率高.

7.5三元运算符

操作符 语义 描述
? : 布尔表达式?值1:值2 表达式为真时,输出值1; 表达式为假时,输出值2

三 流程控制

1.分支结构

①if-else条件判断结构

三种结构:
//结构一:
if(条件表达式){
	执行表达式
}

//结构二:二选一
if(条件表达式){
	执行表达式1
}else{
	执行表达式2
}

//结构三:多选一 
if(条件表达式){
	执行表达式3
}else if(条件表达式1){
	执行表达式4
}else if(条件表达式2){
	执行表达式5
}
...
else{
	执行表达式n
}

//else 结构是可选的

②switch-case选择结构

switch(表达式){
case 常量1:
	执行语句1;
	//break;
case 常量2:
	执行语句2:

...
default:
	执行语句n;
	//break;
	}

//说明:根据switch表达式中的值,依次匹配各个case中的常量。一旦匹配成功,则进入各个相应的case结构中,调用其执行语句。当调用完执行语句以后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case末尾结束。

//break,可以使用在switch-case结构中,表示一旦执行到此关键字,就跳出switch-case结构

//switch结构中的表达式,只能是如下的六种数据类型之一:byte、short、char、int、枚举类型(jdk5.0新增)、String类型(jdk7.0新增)

2.补充:Scanner用法

/*
如何从键盘获取不同类型的变量:需要使用Scanner类

具体实现步骤:
1.导包:import java.util.Scanner
2.Scanner的实例化:Scanner scan = new Scanner(System.in);
3.调用Scanner类的相关方法(  next()/nextxxx()  ),来获取指定类型的变量

注意:
需要根据相应的方法来输入指定类型的值,如果输入的数据类型与要求的类型不匹配时,会报异常:InputMisMatchException
导致程序中止。
*/

//1.导包:import java.util.Scanner
import java.util.Scanner;

class ScannerTest{

	public static void main(String[] args){
		//2.Scanner的实例化
		Scanner scan = new Scanner(System.in);
		//3.调用Scanner类的相关方法
		System.out.println("请输入你的姓名:");
		String name = scan.next();
		System.out.println(name);
		
		System.out.println("请输入你的年龄:");
		int num = scan.nextInt();
		System.out.println(num);

		System.out.println("请输入你的体重:");
		double weight = scan.nextDouble();
		System.out.println(weight);

		System.out.println("你是否相中了我?(true/false)");
		boolean man = scan.nextBoolean();
		System.out.println(man);

		//对于char型的获取,Scanner没有提供相关的方法,只能获取一个字符串
		System.out.println("请输入你的性别:(男/女)");
		String gender = scan.next();//"男"
		char genderChar = gender.charAt(0);//获取索引为0位置上的字符
		System.out.println(genderChar);
	}
}

3.循环结构*

1)循环结构四要素

①初始化条件
②循环条件 ————>是boolean类型
③循环体
④迭代条件
说明:通常情况下,循环结束都是从条件二中循环条件范围false了。

2)三种循环结构

①for循环
for( ①初始化语句 ; ②循环条件 ; ④循环操作 ){
		③循环体
}


执行过程:① ————> ② ————> ③ ————> ④ ————> ② ————> ③ .... ②不满足————>循环结束
执行过程
- 首次执行初始部分(仅一次)。
- 对布尔表达式进行判断,结果为true,则执行逻辑代码。
- 本次执行完毕后,执行迭代部分,再次判断,结果仍旧为true,则再次执行逻辑代码。
- 直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
②while循环
初始化语句
while(循环条件){
	循环体;
    循环操作;
}
执行流程:
- 先对布尔表达式进行判断,结果为true,则执行逻辑代码。
- 本次执行完毕后,再次进行判断,结果仍旧为true,则再次执行逻辑代码。
- 直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码。
③do-while循环
初始化语句;
do{
	循环体(循环操作)
}while(循环条件);

执行流程:
- 先执行一次循环操作之后,再进行布尔表达式的判断。
- 如果结果为true,则再次执行循环操作。
- 如果结果为false,才会退出循环结构,执行后续代码。

3)三种循环的区别

①三种循环的区别

for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)

do-while循环则是先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)

②for和while的区别

条件控制语句控制的自增变量,因为归属for循环的语句结构中,在for循环结束后,就不能再被访问到了

条件控制语句所控制的自增变量,对于while循环来说不属于其语法结构中,再while循环结束后,该变量还可以继续使用

③死循环格式
for(;;){}
while(true){}		//常用
do{}while{true};

4.流程控制关键字

①流程控制break:终止、跳出switch、循环结构.

②流程控制continue:结束本次、进入下一次循环。

四 Java方法(method)

Java方法介绍:(method)是将具有独立功能的代码块组织成一个整体,使具有特殊功能的代码及,达到代码复用的效果,减少main方法中代码冗余

标签:JAVA,变量,数据类型,基础,循环,执行,表达式,Scanner
From: https://www.cnblogs.com/jc1126/p/17590036.html

相关文章

  • java中的枚举类怎么获取其值
    Java中的枚举类可以通过以下方式获取其值:获取所有的枚举值:YourEnum[]values=YourEnum.values();这个方法返回一个包含所有枚举值的数组。获取单个枚举值:YourEnumvalue=YourEnum.valueOf("ENUM_VALUE_NAME");这个方法根据枚举值的名称返回相应的枚举值。需要注意的是,如果传入......
  • Java之不可变集合
    Java之不可变集合什么是不可变集合?不可变集合就是不可被修改的集合。集合的数据项在创建的时候提供,并且在整个生命周期中都不可被改变。否则报错为什么要创建不可变集合?如果当某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的选择。或者当集合对象被......
  • 编码基础
    1、比特比特是数字电路的产物,用于描述最基础的电路单元的状态。另一方面,比特作为最小单元用于对抽象的指令或者数据进行描述。也就是说,比特是计算机和计算机网络中最小的信息量单位。人为的规定并遵循其进行电路设计:一个比特有且只有两个状态,即0和1。2、字节字节是计算机中常......
  • Java学习-1.jdk和IntelliJ IDEA安装
    1.jdk下载与安装下载地址:https://www.oracle.com/java/technologies/downloads/#jdk20-windows 环境配置:1.我的电脑–》右键属性–》高级系统设置–》环境变量2.系统变量–》新建系统变量–》完成后点击确定3.双击系统变量下的PATH变量,新建两个路径(最下方两个)4. 新......
  • WEB漏洞—反序列化之php&java(上)
    PHP反序列化原理:---未对用户输入的序列化字符串进行检测,导致攻击者可以控制反序列化过程,从而导致代码执行,SQL注入,目录遍历等不可控后果。---其实跟文件解析差不多,都是由于传递的恶意参数被执行(序列化和反序列化相当于加解密过程)---在反序列化的过程中自动触发了某些魔术方......
  • 基于java实现的会展中心管理系统
    完整资料进入【数字空间】查看——搜索"writebug"1系统设计1.1设计目标在学习了数据库原理和SQLServer2008数据库管理系统后,采用Java编程语言开发工具,设计并实现会展中心管理系统。本课程的目的是培养学生数据库技术的综合应用能力,通过设计开发一个小型的数据库管理系统,将原理与......
  • JavaScript学习 -- SM3算法基本原理
    SM3算法是一种由国家密码管理局发布的哈希算法,被广泛用于数字签名和消息认证等应用中。在JavaScript中,我们可以使用第三方库来计算数据的SM3哈希值。本篇文章将介绍SM3算法的基本原理和相关技术,并提供一些实例来演示如何在JavaScript中使用SM3算法。SM3算法基本原理与MD5、SHA-1、S......
  • 【模板】数论基础:exGCD,exCRT,inverse,Lucas,BSGS,primitive root
    7.29数论WIP\(a\equivb\pmodp\Rightarrow\frac{a}{d}\equiv\frac{b}{d}\pmod{\frac{p}{d}},d=\gcd(a,b,p)\)。exGCD若\((a,b)=1\),则\(0\leqx<b\),\(ax\bmodb\)互不相同,有一个是\(1\)。证明:\(ax_1\equivax_2\pmodb\)则\((x_1-x_2)a|b\),因为......
  • Java设计模式-策略模式
    简介策略模式是指有一定行动内容的相对稳定的策略名称,策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法经验总结抽象策略角色:策略类,通常由一个接口或者抽象类实现具体策略角色:包装了相关的算法和行为环境角色:持有一个策略类的引用,最终给客......
  • javascript数据类型详解
    文章和代码已经归档至【Github仓库:https://github.com/timerring/front-end-tutorial】或者公众号【AIShareLab】回复javascript也可获取。数据类型JavaScript是一种弱类型或者说动态语言。不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。varage=10;//数字型v......