加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java基础语法

发布时间:2020-12-15 05:30:43 所属栏目:Java 来源:网络整理
导读:1.java语言发展史 ·詹姆斯·高斯林 ·SUN-(斯坦福大学网络公司) ·1995年5月23日,java语言诞生 ·1996年1月 JDK1.0 ·1997年2月 JDK2.0 ·1998年12月 JDK1.2(将java分成J2SE,J2EE,J2ME) ·2000年5月 J2SE1.3 ·2002年2月 J2SE1.4 ·2004年10月 JDK1.5(

1.java语言发展史

·詹姆斯·高斯林

·SUN-(斯坦福大学网络公司)

·1995年5月23日,java语言诞生

·1996年1月 JDK1.0

·1997年2月 JDK2.0

·1998年12月 JDK1.2(将java分成J2SE,J2EE,J2ME)

·2000年5月 J2SE1.3

·2002年2月 J2SE1.4

·2004年10月 JDK1.5(改名JavaSE5.0,JavaEE,JavaME)

·2006年12月 JavaSE6.0

·2009年04月20日,甲骨文(oracle)74亿美元收购sun

·2011年7月 JavaSE7.0

·2014年3月JavaSE8.0

?

2.Java语言跨平台原理

·平台:指的是操作系统(windows,linux,mac)

·跨平台:Java程序可以在任意操作系统上运行,一次编写到处运行

·原理:实现跨平台需要依赖Java的虚拟机JVM(Java Virtual Machine)

?

3.JRE和JDK

JRE(Java Runtime Environment java运行环境)

包括java虚拟机(JVM)和java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需安装JRE即可

JDK(Java Develpment Kit Java开发工具包)

JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括JRE。所以安装了JDK,就不用在单独安装JREl .其中的开发工具:编译工具(java.exe)运行工具(java.exe)等--->使用JDK开发完成的java程序,交给JRE去运行

?

4.HelloWorld案例

源文件(编写)---->编辑器---->字节码文件---->解释器------>结果

HelloWorld案例编写

·首先定义一个类

-public class 类名

·在类定义后加上一对大括号

-{}

·在大括号中间添加一个主方(main)法/函数

-public static void main(String [] args){}

·在主方法的大括号中间添加一行输出语句

-system.out.println("HelloWorld");

完整代码

public class HelloWorld{

??? public static void main(String [] args){

??????? System.out.println("HelloWorld");

??? }

}

(文件路径:../HelloWorld.java)

HelloWorld 案例编辑

cmd中

进入HelloWorld.java文件的目录

输入:

javac HelloWorld.java

进行编译

输入:

java HelloWorld

进行运行

?


5.注释

注释:用于解释说明程序的文字

分类:单行 、多行

作用:解释说明程序,提高程序的阅读性

//这是单行注释

/*

这是多行注释

*/

例子:

//这是一个Helloworld的类

public class HelloWorld{

???? public static void main(String [] args){

???????? /*

???????? ???????? 这是多行注释

???????? */

???????? System.out.println("HelloWorld"); //在控制台输出Hellow

???? }

}

运行结果

?

注释内的内容不显示

6.关键字

被java语言赋予了特定含义的单词

特点:

??????? A:组成关键字的字母全部小写

?????? B:常见的代码编辑器对关键字有特殊的颜色标记

?

关键字含义

abstract:表明类或者成员方法具有抽象属性

asser:t断言,用来进行程序调试

boolean:基本数据类型之一,声明布尔类型的关键字

break:提前跳出一个块

byte:基本数据类型之一,字节类型

case:用在switch语句之中,表示其中的一个分支

catch:用在异常处理中,用来捕捉异常

char:基本数据类型之一,字符类型

class:声明一个类

const:保留关键字,没有具体含义

continue:回到一个块的开始处

default:默认,例如,用在switch语句中,表明一个默认的分支。Java8 中也作用于声明接口函数的默认实现

do:用在do-while循环结构中

double:基本数据类型之一,双精度浮点数类型

else:用在条件语句中,表明当条件不成立时的分支

enum:枚举

extends:表明一个类型是另一个类型的子类型。对于类,可以是另一个类或者抽象类;对于接口,可以是另一个接口

final:用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量

finally:用于处理异常情况,用来声明一个基本肯定会被执行到的语句块

float:基本数据类型之一,单精度浮点数类型

for:一种循环结构的引导词

goto:保留关键字,没有具体含义

if:条件语句的引导词

implements:表明一个类实现了给定的接口

import:表明要访问指定的类或包

instanceof:用来测试一个对象是否是指定类型的实例对象

int:基本数据类型之一,整数类型

interface:接口

long:基本数据类型之一,长整数类型

native:用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的

new:用来创建新实例对象

package:包

private:一种访问控制方式:私用模式

protected:一种访问控制方式:保护模式

public:一种访问控制方式:共用模式

return:从成员方法中返回数据

short:基本数据类型之一,短整数类型

static:表明具有静态属性

strictfp:用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范

super:表明当前对象的父类型的引用或者父类型的构造方法

switch:分支语句结构的引导词

synchronized:表明一段代码需要同步执行

this:指向当前实例对象的引用

throw:抛出一个异常

throws:声明在当前定义的成员方法中所有需要抛出的异常

transient:声明不用序列化的成员域

try:尝试一个可能抛出异常的程序块

void:声明当前成员方法没有返回值

volatile:表明两个或者多个变量必须同步地发生变化

while:用在循环结构中

7.常量

在程序的执行过程中,其值不可以发生改变的量

常量分类:

A:字符串常量 ? ? "HelloWorld"

B:整数常量 ? ? ? ? 12,-23

C:小数常量???????? 12.23

D:字符常量????????? ‘a‘,‘e‘

E:布尔常量 ? ? ?? true,false

F:空常量?????????? null

例子:

?

public class changliang{

???? public static void main(String [] args){

???????? //字符串常量

???????? System.out.println("HelloWold");

???????? //整数常量

???????? System.out.println(12);

???????? System.out.println(-23);

???????? //小数常量

???????? System.out.println(12.23);

???????? //字符常量

???????? System.out.println(‘a‘);

???????? System.out.println(‘0‘);

???????? //布尔常量

???????? System.out.println(true);

???????? System.out.println(false);

???? }

}

运行结果:

?

8.变量

变量:是内存中的一小块区域,在程序的执行过程中,其值可以在一定范围内发生改变

组成

???? A:对区域有限定------>用数据类型来限定

???? B:必须对区域给一个名称----->变量名

???? C:区域必须内必须有内容------>初始化值

定义格式

???? 数据类型 变量名 = 初始化值

9.数据变量

数据类型:Java是一种强类型语言,针对每一种数据都给出明确的数据类型。

数据类型分类:

A:整数?????????? 占用字节数

? byte???????? ????????? 1

? short??????? ????????? 2

? int???????????? ???????? 4

? long ?????????? ?????? 8

B:浮点数

? float ?????????? ?????? 4

? double ?????????? ?? 8

C:字符

? char ?????????? ?????? 2

D:布尔

? boolean?????????? ? 1

注意:

A:整数默认是int类型,浮点数默认是double类型

B:定义long类型数据的时候,要加L或者l,建议加L定义float类型的时候要加F或者f,建议加F

例子:

/*

???? 变量的定义格式:

???? 数据类型 变量名 = 初始化值

???? 数据类型:

???? ???? byte,short,long,float,double,boolean

???? 注意:

???? ???? 定义long类型的变量时,最好直接加L

???? ???? 定义float类型的变量时,最好直接加F

*/

public class VariableDemo{

???? public static void main(String [] args){

???? ???? //定义byte类型的变量

???? ???? byte b =10;

???? ???? System.out.println(10);

???? ???? System.out.println(b);

???? ???? //定义short类型的变量

???? ???? short s = 100;

???? ???? System.out.println(s);

???? ???? //定义int类型的变量

???? ???? int i = 1000;

???? ???? System.out.println(i);

???? ???? //定义long类型的变量

???? ???? long l = 10000000000000L;

???? ???? System.out.println(l);

???? ???? //定义float类型的变量

???? ???? float f = 12.34F;

???? ???? System.out.println(f);

???? ???? //定义char类型的变量

???? ???? char c = ‘a‘;

???? ???? System.out.println(c);

???? ???? //定义boolean类型的变量

???? ???? boolean bb = true;

???? ???? System.out.println(bb);

???? }

}

运行结果:

?

例子2:

/*

???? 变量定义的注意事项:

????????A:变量未赋值,不能直接使用

????????B:变量只在它所属的范围内有效

????????????变量属于它所在的那块大括

????????C:一行上可以定义多个变量,但不建议

*/

public class VariableDemo2{

????public static void main(String [] args){

????????//定义一个变量

????????int a = 10;

????????System.out.println(a);

????????int b ;

????????//System.out.println(b);? //----这里未赋值前使用变量,是错误的

????????b = 20;

????????System.out.println(b);

????????{

????????????//代码块

????????????int c = 30;

????????????System.out.println(c);

????????}

????????//System.out.println(c); //-----这里的c是不存在的,因为变量只在它所属的范围内有效

????????/*????int aa,bb;

????????????aa = 10;

????????????bb = 20;

????????????System.out.println(aa);

????????????System.out.println(bb);

????????????//但是不建议这么写

????????*/

????????//这么写比上面的写法清晰,和规范

????????int aa = 10;

????????int bb = 20;

????????System.out.println(aa);

????????System.out.println(bb);

?????? }

}

运行结果:

?

10.标识符

标识符:就是用来给包,类,方法,变量起名字的符号

组成规则:

???? A:unicode字符:

???? ???? 数字字符,英文大小写字母,汉字(不建议使用)

???? B:下划线_

???? C:美元符号$

注意事项:

???? A:不能以数字开头

???? B:不用以java中的关键字命名

常见命名规则:

???? A:基本要求----->见名知意

???? B:常见的命名

? ? ???? a,包(其实是文件夹,用于对类进行管理)

???? ???? ???? 全部小写,多级包.隔开

? ? ???? b,类

???? ???? ???? 一个单词首字母大写? eg:Student,Car

???? ???? ???? 多个单词每个单词的首字符大写?? eg:HelloWorld

? ???? c,方法和变量

???? ???? 一个单词首字母小写? eg:age,show()

???? ???? 多个单词组成从第二个单词开始每个首字母大写? eg:maxAge,getAge()

11.类型转换

当数据类型不一样时,将会发生类型转换

自动类型转换(隐式)

???? 1.特点:代码不需要进行特殊处理,自动转换

???? 2.规则:数据范围从下到大

?

例子:

public class DataTypeDemo{

???? public static void main(String[] args){

???? ???? System.out.println(1024);//这就是一个整数,默认就是int类型

???? ???? System.out.println(3.14);//这就是一个浮点数,默认就是double类型

???? ???? //左边是long类型,右边是默认的int类型,左右不一样

???? ???? //一个等号代表赋值,将右侧的int常量,交给左侧的long变量进行存储

???? ???? //这一行代码发生了自动类型转换

???? ???? long num1 = 100;

???? ???? System.out.println(num1);//100

???? ???? //左侧是double类型,右侧是float类型,左右不一样

???? ???? //float ---->double,符合从小到大的规则

???? ???? //也发生了自动类型转换

???? ???? double num2 = 2.5F;

???? ???? System.out.println(num2);//2.5

???? ???? //左侧是float类型,右侧是long类型,左右不一样

???? ???? //long--->float,范围是float更大一些,符合从小到大的规则

???? ???? //也发生了自动类型转换

???? ???? float num3 = 30L;

???? ???? System.out.println(num3);

???? }

}

运行结果:

?

强制类型转换(显式)

???? 1.特点:代码需要进行特殊的格式处理,不能自动完成

???? 2.格式:范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的类型

注意事项:

???? 1.强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出

???? 2.byte/short/char这三种类型都可以发生数学运算,例如加法‘+’

???? 3.byte/short/char这三种类型在运算的时候,都会被首先提升成int类型,再进行运算

???? 4.boolean类型不能发生数据类型转换

例子:

public class DataTypeDemo2{

???? public static void main(String[] args){

???? ???? //左边是int类型,右边是long类型,不一样

???? ???? //long-->int,不是从小到大

???? ???? //不能发生强制类型转换

???? ???? //格式:范围小的类型 范围小的变量名 = (范围小的类型)原本范围大的类型

???? ???? int num = (int)100L;

???? ???? System.out.println(num);

???? ???? //long强制转换成int类型

???? ???? int num2 = (int)6000000000L;

???? ???? System.out.println(num2);//1705032704---->数据溢出

???? ???? //double--->int,强制类型转换

???? ???? int num3 = (int)3.99;

???? ???? System.out.println(num3);//3----->精度损失,这不是四舍五入,而是所有的小数位被舍

???? ???? //弃

???? ???? char zifu1 = ‘A‘;//这是一个字符变量,里面是大写字母A

???? ???? System.out.println(zifu1+1);//66,也就是大写字母A也被当做65进行运算

???? ???? //计算机的底层会用一个数字(二进制)来表示字符A,也就是65

???? ???? //一旦char类型进行数学运算,那么字符会按照一定的规则翻译成一个数字

???? ???? byte num4 = 40;//注意:右侧的数值大小不能超过右侧的类型范围

???? ???? byte num5 = 50;

???? ???? //byte + byte ---->int + int ---> int

???? ???? int result1 = num4+num5;

???? ???? System.out.println(result1);

???? ???? short num6 = 60;

???? ???? //byte + short ---->int + int ---> int

???? ???? //int 强制转换成short,注意必须逻辑上真实大小没有超过short范围

???? ???? short result2 = (short)(num4 + num6);

???? ???? System.out.println(result2);

???? }

}

运行结果:

?


12.ASCII码表

数字和字符对照关系表(编码表):

???? ASCII码表:American Standard code for Information Interchage -美国信息交换标准代码表

??? Unincode码表:也是数字和符号的对照关系,开通0-127部分和ASCII码表一样,但从128开始包?? ??? ??? 含更多字符

??? 48 - ‘0‘

??? 65 - ‘A‘

??? 97 - ‘a‘

?

?

例子:

public class DataCharDemo{

???? public static void main(String[] args){

???? ???? char zifu1= ‘1‘;

???? ???? System.out.println(zifu1+0);//49

???? ???? char zifu2 = ‘A‘;//其实底层保存的是65数字

???? ???? char zifu3 = ‘c‘;

???? ???? //左侧是int类型,右边是char类型

???? ???? //char -- > int,符合从小到大

???? ???? //发生自动类型转换

???? ???? int num = zifu3;

???? ???? System.out.println(num);

???? ???? char zifu4 = ‘中‘;//正确写法

???? ???? System.out.println(zifu4+0);//20013

???? }

}

运行结果:

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读