Java-Java基础—(1)基础语法

1、Java简单描述

1.1Java语言背景

计算机语言:人与计算机之间信息交流的一种特殊语言

Java语言:美国Sun公司在1995年推出的计算机语言

2009年,Sun公司被甲骨文公司收购,oracle官网即可https://www.oracle.com

java语言的三个版本:

​ JavaSE: (标准版),用于桌面应用的开发,是其他两个版本的基础

​ JavaME: (小型版),嵌入式电子设备的使用

​ JavaEE: (企业版),Web网站开发的使用

1.2 Java的跨平台性

Java程序(*.java)并不是通过是直接运行的,Java编译器将Java源程序(*.java)编译成字节码文件(*.class文件),然后由Java的虚拟机(JVM)对字节码文件运行。

导致的在不同的操作系统下也可以使用同一个Java源文件。

在不同的操作系统下,只需安装与系统相对应的Java虚拟机即可实现java程序的跨平台运行。

1.3 JRE、JDK

JVM,Java虚拟机

JRE,Java运行环境,包含了JVM和Java的核心类库(Java API)

JDK,称为Java开发工具,包含了JRE和开发工具

总结:我们只需安装JDK即可,它包含了java的运行环境和虚拟机。

1.4 JDK的下载与安装

1.4.1 下载

JDK官网:http://www.oracle.com

注意:不同的操作系统,下载对应版本的JDK。

1.4.2 安装

简易安装,下一步即可。

默认安装路径在C:\Program Files下,为了日后的便捷使用,建议将Java的安装文件保存在一次,便于查找。

注意:安装路径使用纯英文目录(源程序代码对于实现汉字目录可能有部分偏差)。

1.4.3 JDK的安装目录

目录名称说明
bin存放JDK的各种工具命令。javac(编译)和java(运行)就放在这个目录
conf存放JDK的配置文件
include存放一些特定的头文件
jmods存放JDK的各种模块
legal存放JDK各模块的文档
lib存放JDK工具的一些补充JAR包

2.第一个Java源程序演示

2.1使用DOS窗口命令操作

1.打开cmd命令行窗口。(win+R,cmd);

2.cmd的操作指令

操作说明
盘符名称:盘符切换。E:回车,表示切换到E盘。
dir查看当前路径下的内容。
cd 目录进入单级目录。
cd ..回退到上一级目录。
cd \回退到盘符目录。
cls清屏。
exit退出命令提示符窗口。

2.3HelloWord

2.3.1Java源程序的运行流程示意

首先,编写准确无误的Java程序。

其次,通过javac进行编译程序。

最后,通过java直接运行字节码文件。

2.3.2代码编写

创建记事本编写下面代码,然后将文件名改为HelloWord.java。

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
    }
}

2.3.3编译与运行

使用cmd命令窗口,将其目录切换到HelloWord.java文件所在的目录,输入"javac Hello Word.java",会在该目录下得到一个字节码文件"HelloWord.class",然后再cmd命令窗口输入“java HelloWord”,则可以运行class文件,得到运行结果。

2.4代码解析

public class HelloWord:固定格式,class为定义一个类,HelloWord为类名,而且要与文件前缀同名。

main:为主方法

System.out.println("HelloWord"):输出格式,会返回到命令窗口。

3.基础语法

3.1注释

注释可以用来对代码进行解释和说明,提高代码的可读性。

单行注释://这是注释

多行注释:/*

                   多行注释

                    多行注释

                   */

文档注释:/**

                       文档注释

                  */

3.2关键字

关键字表示再Java中已经被赋予特定意义的单词

关键词的特点:全部小写

3.3常量


常量:在java代码的运行过程中,常量的值无法发生改变。

在Java中常量发分类:

字符串常量 用双引号括起来的多个字符(可以包含0个、一个或多个),例如"a"、"abc"、"中国"等

​ 整数常量 整数,例如:-123、0、1234等

​ 小数常量 小数,例如:-23.45、1.25、567.89等

​ 字符常量 用单引号括起来的一个字符,例如:'A'、'a'、'1'、'大'等

​ 布尔常量 布尔值,表示真假,只有两个值true and false

​ 空常量 一个特殊的值,空值,值为null

除空常量外,其他常量均可使用输出语句直接输出。

3.4数据类型

3.4.1存储单元

计算机存储设备的最小单元叫做"位(bit)",又称为"比特位"。

计算机中最基本的存储单元叫做“字节(byte)”;

1B(字节) = 8bit       1KB = 1024B       1MB = 1024KB

1GB = 1024MB          1TB = 1024GB

3.4.2Java自带的数据类型

Java中数据类型包括,基本数据类型和引用数据类型

基本数据类型:

数据类型关键字内存占用取值范围
整数类型byte1-128~127
short2-32768~32767
int(默认)4-2的31次方到2的31次方-1
long8-2的63次方到2的63次方-1
浮点类型float4负数:-3.402823E+38到-1.401298E-45 正数: 1.401298E-45到3.402823E+38
double(默认)8负数:-1.797693E+308到-4.9000000E-324 正数:4.9000000E-324 到1.797693E+308
字符类型char20-65535
布尔类型boolean1true,false

应用数据类型在后期会介绍到,如String, Integer,等等。

3.5变量

定义变量:数据类型 变量名=数据值;

在代码程序的运行过程中,变量的值,可以随时发生改变,前提是变量存在。

(变量的作用域 : 只在它所在的大括号中有效)

输出变量:System.out.println(变量名);

注意:尽量不要一行代码创建和赋值多个变量,会大大降低可读性。

修改变量的值:变量名=新值;

3.6定义变量容易出现的错误

        1.变量名必须独一使用,不可重复。

        2.在引用变量时,必须先进行变量的初始化。

        3.在long类型,赋值时,在数字末尾加L;在float类型,赋值时,在数字末尾加F。

3.7简单的键盘录入数据

使用java自带的Scanner包,可以用来获取键盘的输入值。

创建Scanner对象:Scanner scanner = new Scanner(System.in);

获取键盘录入:int x = scanner.nextInt();       String y = scanner.nextLine();

3.8标识符

标识符用于类名,变量名,方法名,常量名等命名。

标识符的规则:

        由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字。

​不能使用java中的关键字作为标识符。​ 标识符对大小写敏感(区分大小写)。

标识符的命名规定:

        小驼峰式命名:变量名、方法名;首字母小写,从第二个单词开始每个单词的首字母大写。

​         大驼峰式命名:类名;每个单词的首字母都大写。

4.类型转换

不同的数据类型时间是可以相互转换的。可以分为自动类型转换和强制类型转换。

4.1隐式转换(小转大)

数据类型中占用字节数少的转为占用字节数多的,可以直接隐式转换。

从小到大:byte->short->int->long->float->double;

                   char->int->long->float->double;

整数的默认类型为int类型,浮点数的默认类型为float类型。

注意:byte,shourt,char在进行运算时,均会转换为int类型,进行计算,最后结果也为int。

4.2强制转换(大转小)

强制类型转换格式:目标数据类型 变量名 = (目标数据类型)值或者变量;

如果有原数据有小数,则在转换后,小数直接省略。

4.3类型转换注意

在强制转换的过程中,原数据大于新数据类型的最大取值,则会从新数据的最小值网上加,造成数据的错误。

5.运算符

5.1算术运算符

运算符的功能:对程序中常量和变量进行固定操作的符号

表达式:用运算符将常量和变量连接起来并且没有语法错误的语句

符号作用说明
+1+1=2
-2-1=1
*2*3=6
/7/3=2
%取余7%3=1

注意:

        1.在进行算术运算的时候,如果运算符两侧都都是整数型,那么其结果就是整数型。如果有任何一方为小数型,则结果为小数型。

        2.char类型的进行“+”运算,进行ASCII码运算,如A+1,其结果为:66

        3.String类型的进行“+”运算,进行字符串拼接,其结果为新的字符串,如123+“ABC”,结果为:123ABC

        4.若String类型的进行“+“运算,出现多个相邻的数字相加,则从左到右按照顺序,依次相加,如,1+2+”ABC“+3+5+6,结果为:3ABC356

5.2自增自减运算符

符号作用说明
++自增变量的值加1
--自减变量的值减1

注意:

        1.自增自减运算符既可以放到变量的前面,也可以放到变量的后面。

        2.++在前面:则先加1,再引用。++在后面:先引用,再加1。减法以此类推。

5.3赋值运算符

该运算符是将变量经过运算符与后面的常量或者变量进行运算,最后将值赋值给变量。

符号

作用说明
=赋值a=100,将100赋值给变量a
+=加后赋值a+=b,将a+b的值给a
-=减后赋值a-=b,将a-b的值给a
*=乘后赋值a*=b,将a×b的值给a
/=除后赋值a/=b,将a÷b的商给a
%=取余后赋值a%=b,将a÷b的余数给a

注意:赋值运算符其中包含了强制类型转换。

5.4关系运算符

关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。

关系运算符的结果为:true或false

如果表达式成立则结果为true,如果表达式不成立则结果为false

5.5逻辑运算符

符号作用说明
&逻辑与a&b,a和b都是true,结果为true,否则为false
|逻辑或a|b,a和b都是false,结果为false,否则为true
^逻辑异或a^b,a和b结果不同为true,相同为false
!逻辑非!a,结果和a的结果正好相反

注意:逻辑与、逻辑或、逻辑异或、逻辑非的运算过程中,会将运算符两侧的结果都得出来,最后进行比较。

5.6短路逻辑运算符

符号作用说明
&&短路与作用和&相同,但是有短路效果
||短路或作用和|相同,但是有短路效果

在短路逻辑运算符中,如果&&的左侧为false,那就不执行右侧,直接返回最后结果false;如果||的左侧为true,那就不执行右侧,直接返回最后结果true。

5.7三元运算符

三元运算符表达式:关系表达式?表达式1:表达式2;

如果关系表达式结果为true,那执行表达式1;如果关系表达式结果为false,那执行表达式2。

6.流程控制

6.1流程控制的分类

        1.顺序结构

        2.选择结构

        3.循环结构

6.2顺序结构

        按照代码的先后顺序,依次执行

6.3选择结构

6.3.1if语句

格式:
if (关系表达式) {
    语句体;	
}

注意:如果关系表达式结果为true,则执行语句体;如果关系表达式结果为false,直接跳过语句体

格式:
if (关系表达式) {
    语句体1;	
} else {
    语句体2;	
}

 注意:如果关系表达式结果为true,则执行语句体1;如果关系表达式结果为false,则执行语句体2

格式:
if (关系表达式1) {
    语句体1;	
} else if (关系表达式2) {
    语句体2;	
} 
…
else {
    语句体n+1;
}

 注意:如果关系表达式1结果为true,则执行语句体1;如果关系表达式1结果为false,则判断关系表达式2,如果为true则执行语句体2,如果为false则判断下一条关系表达式。如果每个关系表达式都不成立,则执行最后一条语句体。

6.3.2Switch语句

switch (表达式) {
	case 1:
		语句体1;
		break;
	case 2:
		语句体2;
		break;
	...
	default:
		语句体n+1;
		break;
}

switch语句的执行:通过计算表达式的值,然后与case后 值进行一一匹配。如果存在相匹配到的值,则执行case后面对应的语句体,然后通过break退出switch语句。如果未找到相匹配的值,则执行default后面的语句体,再通过break退出switch语句。

注意:case穿透,如果在表达式匹配case值的过程中,匹配到后,执行完语句体,未存在break语句,则会继续执行下面的语句体,直至遇到break退出switch语句。

6.4循环语句

循环:在语句满足循环条件的情况下,就会执行循环体语句,直至循环条件不满足,则跳出循环语句。

6.4.1for循环

for (初始化语句;条件判断语句;条件控制语句) {
	循环体语句;
}

for循环执行顺序:初始化语句->条件判断语句->true->循环体语句->条件控制语句->条件判断语句->false->跳出循环。

初始换语句:可以用来标识循环开始的初始化设置。

条件判断语句:在判断语句返回true,则执行循环体语句;如果判断语句返回false,则跳出循环。

条件控制语句:用来控制循环是否能够继续执行。

循环体语句:循环过程执行的语句。

6.4.2while循环

初始化语句;
while (条件判断语句) {
	循环体语句;
    条件控制语句;
}

while循环执行顺序:和for循环的执行顺序一止,但有时候可能条件判断语句为”true“,不断执行,退出循环的标准是循环体中存在break语句。

6.4.3dowhile循环

初始化语句;
do {
	循环体语句;
	条件控制语句;
}while(条件判断语句);

dowhile循环执行顺序:初始化语句->循环体语句->条件控制语句->条件判断语句->true->循环体语句->条件控制语句->条件判断语句->false->跳出dowhile循环

6.4.4三种循环的对比

先判断:for循环、while循环

先执行:dowhile循环

在循环体中定义了变量,在跳出循环体之后再无使用权了,因为在循环体内的变量属于局部变量。

6.4.5循环控制语句

break:跳出循环语句

continue:跳出当前循环语句

7.Random

Random是java自带的一个类功能,类似于之前讲到的Scanner,Random可以用于产生随机数。

Random random  = new Random();

int number = random.nextInt(100);

number的值可以是0-99的整数值,属于左包右闭。

8.IDEA的安装与使用

8.1IDEA简介

IDEA全称为IntelliJ IDEA,是用于Java语言开发的集成环境,它是业界公认的目前用于Java程序开发最好的工具。

集成环境就是把代码编写,代码编译,代码执行,代码调试等等多种功能综合到一起的开发工具。

IDEA下载地址:https://www.jetbrains.com/idea/

8.2 项目结构介绍

project(项目)->module(模块)->package(包)->class(类)

8.3IDEA中常用的快捷键

psvm+回车:快速写出main方法

sout+回车:快速写出输出语句

Alt+1:打开或者关闭工程目录结构

Alt+4:打开过着关闭控制台

Ctrl+D:向下复制一行

Ctrl+X:剪切当前行

Ctrl+Alt+L:格式化代码

Alt+Enter:修正代码

Ctrl+/:单行注释

Ctrl+Shift+/:多行注释

Alt + shift + ↑:上移行

Alt + shift + ↓:下移行

9.数组

数组可以存放同一类型的多个数据

9.1数组的定义

//第一种
int[] a;
char[] b;
double[] c;

//第二种
int a[];
char b[];
double c[];

9.2数组的动态化

数据类型[] 数组名 = new 数据类型[数组长度];

 动态化定义后直接规定数组固定的长度,为不可变数组

9.3数组访问

索引:成功的定义数组长度后,在调用某一个数组元素时,采用数组的索引调用,从0开始。

数组名[索引];

9.4静态初始化数组

静态化初始化是在数组创建的过程中,给数组元素赋值。

数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...}

数据类型[] 数组名 = {元素1,元素2,元素3...}

9.5数组操作遇到的问题

1.数组索引应该小于数组的长度,如果索引值大于等于数组长度则会抛出ArrayIndexOutOfBoundsException 数组越界异常。

2.若数组为空(空不代表数组的元素值为0,而是数组指向的地址为空),调用数组元素会抛出 NullPointerException 空指针异常。

9.6数组的遍历

for(int i = 0; i<arr.length;i++){
    System.out.println(arr[i]);
}

9.7.二维数组

动态初始化格式:

数据类型[][] 变量名 = new 数据类型[m][n];

数据类型 变量名 = new 数据类型{ {元素1, 元素2...} , {元素1, 元素2...};

数据类型 变量名 = { {元素1, 元素2...} , {元素1, 元素2...} ...};

10.方法

10.1概念

方法是具有一定功能的已命名代码块。

10.2方法的定义和使用

public static void 方法名 (   ) {
	// 方法体;
}
方法名();

注意:方法必须先定义,再调用,否则会报错

10.3带参方法的定义和使用

public static void 方法名 (参数1) {
	方法体;
}

public static void 方法名 (参数1, 参数2, 参数3...) {
	方法体;
}

方法名(参数);

方法名(参数1,参数2);

注意:调用方法使用的是实参,将实参的值传递给方法的形参中。

10.4有返回值方法的定义和使用

public static 数据类型 方法名 ( 参数 ) { 
	return 数据 ;
}

注意:

        1.return返回的数据,其数据类型要与方法名前的数据类型一致。如果无返回值,则数据类型为void。

        2.方法内可以调用方法,但是方法内不能嵌套定义方法。

        3.void类型的方法中,最然没有返回值,但是可以使用return,退出方法。

10.5方法重载

方法重载:在一个类中,定义相同名称的方法,但是方法的参数数量、参数类型不一致。在调用方法时,Java会根据参数的不同,自动的匹配想通过的方法。(方法重载与返回值无关,不能通过返回值来判定两个方法是否相互构成重载 )

10.6参数的传递

对于基本类型的传递,将实参的值传递给方法中的形参。方法结束后,并不会影响实参的值。

对于引用类型的传递,将实参的地址值传递给方法中的形参。方法结束后会影响实参的值。

11.进制

11.1进制的格式

        十进制:Java中,数值默认都是10进制,不需要加任何修饰。
        二进制:数值前面以0b开头,b大小写都可以。
        八进制:数值前面以0开头。
        十六进制:数值前面以0x开头,x大小写都可以。

        注意: 书写的时候, 虽然加入了进制的标识, 但打印在控制台展示的都是十进制数据.

System.out.println(10);
System.out.println("二进制数据0b10的十进制表示为:" + 0b10);
System.out.println("八进制数据010的十进制表示为:" + 010);
System.out.println("十六进制数据0x10的十进制表示为:" + 0x10);

11.2原码反码补码

由于在计算机中,所有的数据都是以二进制补码的形式在进行运算,而补码是通过原码和反码得出的。

原码:将十进制直接转换为二进制,但是八位二进制中,首位标识数值的正负。

反码:正数的反码与原码相同;负数的反码与原码逐位相反,但符号位除外。

补码:正数的补码与原码相同;负数的补码为反码+1。

11.3位运算

& 位与 : 遇false则false, 遇0则0

| 位或 : 遇true则true, 遇1则1

^ 位异或 : 相同为false, 不同为true

~ 取反 : 全部取反, 0变1, 1变0  (也包括

<<左移:左边符号位丢弃,右边补0

>>右移:右边符号位丢弃,左边补0

---------------------------------------------------------------------------------------------------------------------------------

内容有部分存在书籍、课堂、网络记录,如有雷同纯属巧合

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值