JAVA基础

java基础

计算机基础知识

计算机软件分为系统软件与应用软件。

常用的DOS命令:

e: 进入e盘

dir 列出当前目录下的目录和文件

mkdir 新建文件夹

rmdir 删除文件夹

cd java 进入java目录

cd .. 退到上层目录

cd / 退到根目录

exit : 退出dos命令行

cls : (clear screen)清屏

Java语言特点

简单性 高性能

编译性 解释性

面向对象 分布式处理

健壮性 安全性

开源 跨平台

什么是跨平台性?

​ 通过Java语言编写的应用程序在不同的系统平台上都可以运行。

原理是什么?

只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。

因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。

(既JVM可以跨平台,所以java也可以跨平台)

检验是否安装,配置了jdk

DOS命令 java -version

/*

* 第一行的作用,定义一个包

* package 包,关键字;专门用来定义包的

* cn.tedu.test--包名--全小写,公司域名倒着写;

* ; --java语句结束符;

*/

package cn.tedu.test;

/*

* 定义一个类;

* public --java关键字,公开公共的,专门用来修饰类的访问权限

* class --关键字,专门用来定义类;

* ex --类名-- 驼峰命名法

* {java代码}

*/

public class ex {

​ /*

​ * 用来定义一个主函数/主方法/main函数 --用来作为程序的入口;

​ * public --关键字,公开的公共的,用来修饰main方法的访问权限;

​ * static --关键字,静态的,用来修饰main方法是静态的;

​ * void --关键字,main方法没有返回值

​ * main --方法名

​ * () --看做方法的标志

​ * String[] args --方法的参数

​ * {java代码}

​ */

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

​ /*

​ * 指向控制台输出的数据;

​ * System --发出一个系统的指令;

​ * out --向外输出的动作;

​ * println --打印后换行;

​ * () --小括号里要输出的数据;

​ */

​ System.out.println("阿巴阿巴");

​ }

}

数据类型

基本类型(8种)

short long int boolean byte float double char

img

在使用char类型存储数据时,可以直接存入一个整数,但是在使用中会查到数字对应的字符,使用的是字符本身而不是输入的数字。参照acsii码表,该表只规定了0-127的字符。

个数只能是一个

引用类型

整数类型默认为int类型,byte/short/char类型在取值范围内可以直接赋值。

浮点数的字面值是double类型。

0b -2进制

0x - 16进制

0 -8进制

\u -char类型,16进制

//复制一行ctrl alt 下箭头

运算规则

计算结果的数据类型,与最大类型一致

3/2 得1 ,而不是1.5,结果是int类型

3d/2 得1.5,相当于double/int,结果是double类型

byte,short,char三种比int小的整数,运算时会先自动转换成int

byte a=3;
byte b=4;
byte c=a+b;//错,运行时,byte会先自动转成int再运算,int+int还是int

整数运算溢出

整数运算,类似于一个中标,转到最大时,再转会回到最小。

计算:光速运行一年的长度是多少米

System.out.println(300000000*60*60*24*365);//错误
System.out.println(300000000l*60*60*24*365);
 

浮点数运算不精确

java提供了解决方案,后面就会讲到。

System.out.println(1-0.8);
System.out.println(4.35*100);

浮点数的特殊值

Infinity 无穷大 3.14/0

Nan not a number 0/0.0

运算符

算数运算符:+ - * / = % ++(符号在前,先自增,后使用 符号在后先使用再自增) --

比较运算符(结果为boolean类型):== !=

逻辑运算符(结果为boolean类型):&&(短路) & 与

​ ||(短路) | 或

​ ! 非

三元运算符a?B:c;

a为真运行b

a为假运行c

If循环

If(判断条件){
执行代码}
else{
}

If(判断条件1){
执行代码1}
else if(判断条件2){
执行代码2}

PS.变量同时满足判断条件1和判断条件2的时候,只会运行并输出执行代码1而不会再次运行执行代码2。

Swtich

Swtich(判断条件){(//只支持byte short int char String类型)
case 1:语句1;
case 2:语句2;
case 3:语句3;
case 4:语句4;
case 5:语句5;
case 6:语句6;
default:语句7;}

满足条件后执行之后所有语句(如case 4符合执行语句4567)

FOR循环

for(循环开始的位置;循环的条件;更改条件){
循环体}
For(1;2;3){
4}

执行顺序

1243243......

嵌套FOR循环

for(1;2;3){    //外循环
for(1;2;3){    //内循环
循环体
}
}

特点

--外循环执行一次,内循环执行多次

--外循环控制行,内循环控制列。

img

WHILE循环

while(判别式){//先判断是否符合为true运行
循环体
}
do{//先运行一次循环体,然后在判断为true再次执行。

循环体}

while(判别式)

创建随机数

1.Math.random (随机的小数,double类型)

2.int a=new Random().nextInt(50); (50以内的随机数,)

break和continue

用于循环结构中,用来结束循环

break--立即结束循环

continue--结束本次循环还能进行下一轮

变量

就近原则

--成员变量 定义在类里不赋值时有默认值

--局部变量 定义在方法里,必须赋值

方法

语法:

方法的修饰符 + 方法的返回值 + 方法名 + ([参数列表]){

方法体

}

public void main(String[] args){}

使用:

--方法的调用:

调用指定方法

把方法执行完毕,并返回指定位置

继续执行方法调用之后的代码

img

--方法的传参:

接受参数

方法的修饰符 + 方法的返回值 + 方法名 + (参数类型 参数名,参数类型 参数名)

--方法的返回值:

定义方法时方法的返回值的类型--要看返回数据的类型。

数组

概述

array。标志[]用来储存多个相同类型的数据

每个元素都有下标。从0开始

创建数组

--语法:数组类型[] 数组名 = new数组类型[数组长度];

--动态初始化

int[] a=new int[];

--静态初始化

int[] b=new int []{1,2,3,4,5};

int[] c = {1,2,3,4,5};

int[] a=new int[10];

\1. 在内存中,开辟空间,存放数据,长度为10

\2. 给每个位置的元素完成初始化(设置默认值),存入10个0.

\3. 给数组分配唯一的标志--地址值。

\4. 把数组的地址值交给引用类型的变量a保存。

int[] b =new int[]{1,2,3,4,5}

1.在内存中,开辟空间,存放数据,长度为10

2.给每个位置的元素完成初始化(设置默认值),存入10个0.

3.显示赋值,修改默认值。

4.给数组分配唯一的标志--地址值。

\5. 把数组的地址值交给引用类型的变量a保存。

数组工具类

概述

专门用来对数组的常见操作。

常用方法

Arrays.toString(arr)

把数组里的数据,用逗号连接成字符串

Arrays.sort(arr)

排序,默认为从小到大。

Arrays.copyOf(arr,?) 

​ 把arr数组变成?列

把数组复制成一个指定长度的新数组。

新数组长度大于原数组,相当于复制,并增加位置。--数组的扩容

新数组长度小于原数组,相当于截取前一部分数据。--数组的缩容java基础

计算机基础知识

计算机软件分为系统软件与应用软件。

常用的DOS命令:

e: 进入e盘

dir 列出当前目录下的目录和文件

mkdir 新建文件夹

rmdir 删除文件夹

cd java 进入java目录

cd .. 退到上层目录

cd / 退到根目录

exit : 退出dos命令行

cls : (clear screen)清屏

Java语言特点

简单性 高性能

编译性 解释性

面向对象 分布式处理

健壮性 安全性

开源 跨平台

什么是跨平台性?

通过Java语言编写的应用程序在不同的系统平台上都可以运行。

原理是什么?

只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。

因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。

(既JVM可以跨平台,所以java也可以跨平台)

检验是否安装,配置了jdk

DOS命令 java -version

/*

  • 第一行的作用,定义一个包
  • package 包,关键字;专门用来定义包的
  • cn.tedu.test--包名--全小写,公司域名倒着写;
  • ; --java语句结束符;

*/

package cn.tedu.test;

/*

  • 定义一个类;
  • public --java关键字,公开公共的,专门用来修饰类的访问权限
  • class --关键字,专门用来定义类;
  • ex --类名-- 驼峰命名法
  • {java代码}

*/

public class ex {

/*

  • 用来定义一个主函数/主方法/main函数 --用来作为程序的入口;
  • public --关键字,公开的公共的,用来修饰main方法的访问权限;
  • static --关键字,静态的,用来修饰main方法是静态的;
  • void --关键字,main方法没有返回值
  • main --方法名
  • () --看做方法的标志
  • String[] args --方法的参数
  • {java代码}

*/

public static void main(String[] args) {

/*

  • 指向控制台输出的数据;
  • System --发出一个系统的指令;
  • out --向外输出的动作;
  • println --打印后换行;
  • () --小括号里要输出的数据;

*/

System.out.println("阿巴阿巴");

}

}

数据类型

基本类型(8种)

short long int boolean byte float double char

在使用char类型存储数据时,可以直接存入一个整数,但是在使用中会查到数字对应的字符,使用的是字符本身而不是输入的数字。参照acsii码表,该表只规定了0-127的字符。

个数只能是一个

引用类型

整数类型默认为int类型,byte/short/char类型在取值范围内可以直接赋值。

浮点数的字面值是double类型。

0b -2进制

0x - 16进制

0 -8进制

u -char类型,16进制

//复制一行ctrl alt 下箭头

运算规则

计算结果的数据类型,与最大类型一致

3/2 得1 ,而不是1.5,结果是int类型

3d/2 得1.5,相当于double/int,结果是double类型

byte,short,char三种比int小的整数,运算时会先自动转换成int

 byte a=3;
 byte b=4;
 byte c=a+b;//错,运行时,byte会先自动转成int再运算,int+int还是int

整数运算溢出

整数运算,类似于一个中标,转到最大时,再转会回到最小。

计算:光速运行一年的长度是多少米

 System.out.println(300000000606024365);//错误
 System.out.println(300000000l606024365);
 

浮点数运算不精确

java提供了解决方案,后面就会讲到。

 System.out.println(1-0.8);
 System.out.println(4.35*100);

浮点数的特殊值

Infinity 无穷大 3.14/0

Nan not a number 0/0.0

运算符

算数运算符:+ - * / = % ++(符号在前,先自增,后使用 符号在后先使用再自增) --

比较运算符(结果为boolean类型):== !=

逻辑运算符(结果为boolean类型):&&(短路) & 与

||(短路) | 或

! 非

三元运算符a?B:c;

a为真运行b

a为假运行c

If循环

 If(判断条件){
 执行代码}
 else{
 }
 ​
 If(判断条件1){
 执行代码1}
 else if(判断条件2){
 执行代码2}

PS.变量同时满足判断条件1和判断条件2的时候,只会运行并输出执行代码1而不会再次运行执行代码2。

Swtich

 Swtich(判断条件){(//只支持byte short int char String类型)
 case 1:语句1;
 case 2:语句2;
 case 3:语句3;
 case 4:语句4;
 case 5:语句5;
 case 6:语句6;
 default:语句7;}

满足条件后执行之后所有语句(如case 4符合执行语句4567)

FOR循环

 for(循环开始的位置;循环的条件;更改条件){
 循环体}
 For(1;2;3){
 4}

执行顺序

1243243......

嵌套FOR循环

 for(1;2;3){ //外循环
 for(1;2;3){ //内循环
 循环体
 }
 }

特点

--外循环执行一次,内循环执行多次

--外循环控制行,内循环控制列。

WHILE循环

 while(判别式){//先判断是否符合为true运行
 循环体
 }

 do{//先运行一次循环体,然后在判断为true再次执行。
 ​
 循环体}
 ​
 while(判别式)

创建随机数

1.Math.random (随机的小数,double类型)

2.int a=new Random().nextInt(50); (50以内的随机数,)

break和continue

用于循环结构中,用来结束循环

break--立即结束循环

continue--结束本次循环还能进行下一轮

变量

就近原则

--成员变量 定义在类里不赋值时有默认值

--局部变量 定义在方法里,必须赋值

方法

语法:

方法的修饰符 + 方法的返回值 + 方法名 + ([参数列表]){

方法体

}

public void main(String[] args){}

使用:

--方法的调用:

调用指定方法

把方法执行完毕,并返回指定位置

继续执行方法调用之后的代码

--方法的传参:

接受参数

方法的修饰符 + 方法的返回值 + 方法名 + (参数类型 参数名,参数类型 参数名)

--方法的返回值:

定义方法时方法的返回值的类型--要看返回数据的类型。

数组

概述

array。标志[]用来储存多个相同类型的数据

每个元素都有下标。从0开始

创建数组

--语法:数组类型[] 数组名 = new数组类型[数组长度];

--动态初始化

 int[] a=new int[];

--静态初始化

 int[] b=new int []{1,2,3,4,5};
 ​
 int[] c = {1,2,3,4,5};
 ​
 int[] a=new int[10];

  1. 在内存中,开辟空间,存放数据,长度为10
  2. 给每个位置的元素完成初始化(设置默认值),存入10个0.
  3. 给数组分配唯一的标志--地址值。
  4. 把数组的地址值交给引用类型的变量a保存。

 int[] b =new int[]{1,2,3,4,5}

1.在内存中,开辟空间,存放数据,长度为10

2.给每个位置的元素完成初始化(设置默认值),存入10个0.

3.显示赋值,修改默认值。

4.给数组分配唯一的标志--地址值。

  1. 把数组的地址值交给引用类型的变量a保存。

数组工具类

概述

专门用来对数组的常见操作。

常用方法

 Arrays.toString(arr)

把数组里的数据,用逗号连接成字符串

 Arrays.sort(arr)

排序,默认为从小到大。

 Arrays.copyOf(arr,?)

把arr数组变成?列

把数组复制成一个指定长度的新数组。

新数组长度大于原数组,相当于复制,并增加位置。--数组的扩容

新数组长度小于原数组,相当于截取前一部分数据。--数组的缩容

你可能感兴趣的:(java)