Java基础

*Java基本情况*

不要下载最新版本的工具,包

Java的由来

Java的作用

Java的发展

*Java运行环境的安装*

按照需要区分jdk和jre

配置环境变量:

\1. 创建系统变量JAVA_HOME,变量值是按照jdk的路径D:\java\jdk

\2. 创建系统变量CLASSPATH,变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

\3. 配置path系统变量。变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

\4. 打开命令窗口,输入java -version指令,出现以下界面,环境变量配置成功
在这里插入图片描述

*手动去写第一个java程序*

在这里插入图片描述

具体实现流程

\1. 创建一个.java为后缀的文件

\2. 编写代码

public class HelloJava{

public static void main(String[] args){

​ System.out.println(“你好世界!”);

}

}

\3. 把编写好的文件放到对应的目录下面,打开dos命令窗口

\4. 通过javac指令,把.java文件编译成为.class文件

指令: Javac 文件名.java

\5. 通过java指令把编译后的.class文件运行

指令:java 类名(不带后缀的文件名)

在这里插入图片描述

*Java程序的规范要求*

\1. java代码是有层级关系,缩进区分层级关系

\2. 符号是成对出现,先敲成对出现的符号,在敲里面的内容

\3. 符号都是英文模式下面的,除了””内部可以有中文

\4. Java程序一句话写完,必须加;

*Java学习基础*

输出语句:

System.out.print();//不换行

System.out.println();//换行

注释:除了代码以外最重要的构造部分

对代码的解释

​ // :单行注释

多行注释:

文档注释:/** … */

//

报错:

\1. 语法错误,开发工具会直接提示,根据提示改错

\2. 写错方法,语法不报错,运行的时候在控制台报错,并给出提示

易错点:

\1. public修饰的类的名称必须与Java文件同名

\2. Java对大小写敏感,该大写就大写,该小写就小写

\3. 语法结构不能修改

一句话完毕,;号结尾

*变量*

在这里插入图片描述

使用变量:

在这里插入图片描述

变量名命名规范:

在这里插入图片描述

不能用Java关键字做为变量名

变量使用的常见错误:

\1. 变量要声明并赋值才能使用

\2. 要遵守变量的命名规范

\3. 不能有同名的变量

*数据类型*

常用的数据类型:

在这里插入图片描述

常用的数据类型:

在这里插入图片描述

*运算符*

*赋值运算符:把=右边的变量********值********赋值给左边的变量*
*算术运算符*

+ - * /

% :取余(求余数):求现在两个数除了之后的余数

​ 5%2=1

​ 5%10=5

++:自加1 5++ 6

​ Int a=1;

​ a++;//++在后,下次用到该变量自加1

​ System.out.println(a);//2

​ ++a;//++在前,不管用不用得到,先自加1

–:自减1 5-- 4

类型转换:

自动类型转换:把小范围的变量赋值给大范围的变量

强制类型转换:把大范围的变量赋值给小范围的变量

Int a=(int)(3/2.0) 小类型 变量名=(小类型)大类型表达式

*关系运算符:做比较运算*

> < == != >= <=

结果只能是true(真)或者false(假),比较运算符的结果是boolean类型的

boolean(布尔)类型:

真:true

假:false

在这里插入图片描述

*If选择结构*

运行流程

在这里插入图片描述

语法结构:

在这里插入图片描述

代码:

在这里插入图片描述

逻辑运算符:做复杂的条件判断

在这里插入图片描述

在这里插入图片描述

*If-else选择结构*

语法结构:
在这里插入图片描述

运行流程:

在这里插入图片描述

代码:
在这里插入图片描述

*If-else --if选择结构*

语法结构:

If(条件1){

代码块1

}else if(条件2){

代码块2

}else if(…N){

代码块N

}else{

如果上面的条件都为false执行最后的else中的代码

}

运行流程:
在这里插入图片描述

代码:
在这里插入图片描述

*Switch选择结构*

语法结构:
在这里插入图片描述

常见错误:

\1. 在case语句运行完毕可以不加break;

挨个运行case块,在遇到break后停止,如都没写break,会挨个把所有的都运行一遍

\2. 相同常量值

直接编译不通过

\3. default块可以放到任何地方

要加break,和只要运行顺序

多重if:

变量值在某个区间判断使用

Switch:

等值判断使用

if选择结构

基本if选择结构: 处理单一或组合条件的情况

if-else选择结构:处理简单的条件分支情况

多重if选择结构:处理复杂的条件分支情况

嵌套if选择结构:用于较为复杂的流程控制

switch选择结构

多重分支并且条件判断是等值判断的情况

判断输入的是否是需要数据类型:

Scanner工具

HashNext…();

*While循环*

循环的特点:

循环条件:循环能不能继续的条件

循环操作:循环要做的事情

运行流程:
在这里插入图片描述

语法结构:
在这里插入图片描述

特点:先判断在执行

*程序调试*

F5:单步跳入

F6:单步跳过(一步一步运行)

F8:单轮运行(一轮一轮运行)

*Do-while循环*

语法结构

do{

循环操作

}while(循环条件);

运行流程
在这里插入图片描述

特点,先运行在判断

在这里插入图片描述

循环的使用:
在这里插入图片描述

*For循环*

在这里插入图片描述

三个表达式:循环三要素

\1. 循环变量的初始化

\2. 循环条件

\3. 循环变量的更新

输入10个整数,判断这些数字中有多少个偶数,有多少个奇数

123454321

随机输入一个数,判断该数字是否是回文。

*Break关键字*

在循环中使用,作用:终止循环
在这里插入图片描述

在循环中使用要配合选择结构一起使用,否则break直接使用就没有任何意义。

For(){

If(){

Break;

}

}

*Continue关键字:只能在循环中使用*

跳过当轮循环,直接运行下一轮循环:

If(不是偶数){

Continue;

}

输出

*数组*

数组就是一个变量,在内存中开辟一串连续空间。

数组的基本要素:

标识符:数组名

数组元素:数组中的值

元素下标:元素编号

元素类型:数组能存放的数据类型
在这里插入图片描述

数组的使用:

\1. 声明

Int[] a; 数据[] 数组名; 数据类型 数组名[ ];

\2. 分配空间

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

边声明边分配空间:

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

\3. 赋值

a[0]=10; 数组名[下标]=值;

边声明边赋值:

数据类型[] 数组名={值1,值2…};

数据类型[] 数组名=new 数据类型[]{值1,值2…}

\4. 使用

a[1] 数组名[下标]

Length属性:获取该数组的长度

通过循环取每个元素的值:

For(int i=0;i<数组名.length;i++){

数组名[i];

}

*数组的中的最大值*

数组排序:对数组做升序排序

Arrays.sort(数组名);

*插入算法*

\1. 比数字:找到要插入的位置

\2. 挪数字:腾位置

\3. 插入数字

在这里插入图片描述

*类*

根据对象的共有属性和方法抽离出来

类是个概念,是抽象的

对象:是看得见摸得着的实体

类是对象的类型

对象是类的实体

*对象*

描述对象的方式:

静态特征:基本属性

属性:对象具有的各种特征

动态特征:行为习惯

方法:对象具有的各种特征

对象:用来描述客观事物的一个实体,由一组属性和方法构成

*创建类*

public class 类名{

属性

方法

}

*创建对象*

类名 对象名=new 类名();

Int a=值;

使用:.操作符

对象名.属性=值;//给属性赋值

对象名.属性;//获取属性的值

对象名.方法();

*无参方法*

方法的构成:返回值类型 方法名 参数列表 方法体

方法的语法:

​ public 返回值类型 方法名(){

​ 方法的主体

​ }

方法的返回值:

有返回值:必须给return 类型;

Public int sum(){

​ return 1;//return的类型要和方法定义的数据类型一致

}

Return作用:退出方法,放回结果

无返回值:返回值类型是void

Public void name(){

}

方法的调用:

​ 有返回值:

​ 数据类型 变量名=对象名.方法();

​ 无返回值:

​ 对象名.方法();

使用技巧:

\1. 方法之间可以相互调用:

​ 本类调用本类中的方法:

​ Public void 方法名(){

​ 方法名();

​ }

​ 本类中调用其它类的方法:

​ Public void 方法名(){

​ 类名 对象名=new 类名();

​ 对象名.方法名();

​ }

\2. Return后面不能加代码

常见错误:

\1. 当返回值为void,方法体内部不需要加return

\2. Return只能返回单个数据

\3. 不要在类的内部创建方法

\4. 不要在方法的外面写逻辑代码

*局部变量和成员变量*

放在类中的变量,就是成员变量

放在方法中的变量,就是局部变量

作用域:作用范围(使用范围)

成员变量的作用域:在整个类中

局部变量的作用域:在当前声明的{ }内部

成员变量初始值:

数值:int 初始值:0

Double 初始值: 0.0

String 初始值:null

在这里插入图片描述

把业务逻辑封装到方法中,需要用到相关业务逻辑的时候调用该方法

*带参方法*

方法组成

访问控制修饰符

返回值类型

方法名

参数列表

方法体

方法的定义(形参)

在这里插入图片描述

方法的调用(实参)

在本类其他方法中调用:

​ 方法名(实参列表);

其它类中调用:

创建对象:类名 对象名=new 类名();

​ 对象名.方法名(实参列表);

实参列表调用规则:

​ 实参的类型、数量、顺序都要与形参一一对应

常见错误:

\1. 调用方法时不能指定实参类型

\2. 实参的类型、数量、顺序都要与形参一一对应

\3. 方法定义了返回值类型,调用完方法之后必须接收返回结果

数组作为参数

Public void 方法名(数组){

​ 在方法体中把参数数组当作一个数组使用(添加,获取数据)

}

对象做为参数

Public void 方法名(对象){

​ 在方法体中把参数对象类型,做对象使用(调用属性,方法)

}

包的创建:

Package 包名;

引用包:

Import 包名.类名;可以在对应的包中引用该包下面的某个类

Import 包名.*; 可以在对应的包中引用该包中的所以类

*String类*

\1. String字符串定义之后不能修改

String s=”hello word”;在内存中开辟空间存“hello word”

s=”aaa”;//在内存中又开辟了一个空间存“aaa”

在这里插入图片描述

\2. String类是final修饰的

\3. 当创建一个字符串值为aaa,再次创建一个字符串也为aaa的时候,在String的内存空间中只会创建一份aaa

创建字符串的时候,String会拿这个值到内存中去判断有没有,有就直接指向这个地址,没有创建这个内存空间。

在Java.lang包中

计算字符串的长度

Int count=字符串.length();

\1. 字符串中空格也算一个字符

\2. Length()方法返回一个int类型结果,字符串长度

比较字符串

连接字符串

第一种:+拼接

第二中:concat()方法

字符串A.concat(字符串B);

把A拼接到B后面

提取字符串
在这里插入图片描述

在这里插入图片描述

split()方法:用什么作为条件,拆分字符串

字符串.split(条件(“ ”));

*== 和 equals*

==比较的是指向的地址值是否一样

==用来做基本数据类的比较

Equals比较是内存中的值是否一样

Equals一般用来做引用数据类型

equalsIgnoreCase()方法 :不管大小写,只要字符是一样的就为true(判断字符是否相同)

toLowerCase()方法:把字符转小写

toUpperCase( )方法:把字符串转大写

*StringBuffer对象:操作字符串*

创建对象:

StringBuffer sb = new StringBuffer();

StringBuffer sb = new StringBuffer(“aaa”);

使用:

sb.toString(); //转化为String类型

sb.append("**"); //追加字符串

sb.insert (1, “**”); //插入字符串

会拿这个值到内存中去判断有没有,有就直接指向这个地址,没有创建这个内存空间。

在Java.lang包中

计算字符串的长度

Int count=字符串.length();

\1. 字符串中空格也算一个字符

\2. Length()方法返回一个int类型结果,字符串长度

比较字符串

连接字符串

第一种:+拼接

第二中:concat()方法

字符串A.concat(字符串B);

把A拼接到B后面

提取字符串

[外链图片转存中…(img-MK8nju3R-1612437613247)]

[外链图片转存中…(img-mFMBW35l-1612437613248)]

split()方法:用什么作为条件,拆分字符串

字符串.split(条件(“ ”));

*== 和 equals*

==比较的是指向的地址值是否一样

==用来做基本数据类的比较

Equals比较是内存中的值是否一样

Equals一般用来做引用数据类型

equalsIgnoreCase()方法 :不管大小写,只要字符是一样的就为true(判断字符是否相同)

toLowerCase()方法:把字符转小写

toUpperCase( )方法:把字符串转大写

*StringBuffer对象:操作字符串*

创建对象:

StringBuffer sb = new StringBuffer();

StringBuffer sb = new StringBuffer(“aaa”);

使用:

sb.toString(); //转化为String类型

sb.append("**"); //追加字符串

sb.insert (1, “**”); //插入字符串

Sb长度:length();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值