JAVA学习之路——基础

标识符与变量

标识符命名规则:

  1. 由大小写字母,数字,_ ,$,组成。
  2. 数字不能作为标识符的开头。
  3. Java中的关键字和保留字 不能使用。
  4. java严格区分大小写。

常量:在程序运行中,有些值是不能改变的,此时可以使用常量来表示,常量的命名规则遵循标识符规则。

  1. 常量名通常大写。
  2. 不同字符使用下划线分隔。
  3. 只能被赋值一次,通常定义时即对其初始化。

数据类型:

Java中的数据类型可以分为基本数据类型,引用数据类型

基本数据类型有八个:

整数4个:byte,short,int,long

小数2个:double,float

字符:char,用单引号--' '

boolean类型:boolean

引用数据类型:字符串--String(" "),数组,集合,类,对象

键盘录入

第一步:导入Scanner类

import java.util.*;

第二步:创建Scanner对象

Scanner input = new Scanner(System.in);

第三步:获得键盘输入的数据:

int now = input.nextlnt();

类型转换

一种数据类型转换为另一种数据类型称作为数据的类型转化;类型转换分为自动类型转换和强制类型转换。

自动类型转换:

只要double参与的运算,都会自动转换为double类型

两种数据类型要兼容(整数和小数)

目标类型大于源类型,如double和int

强制类型转换:

需要手动转换,可能会丢失精度(精准度)

目标类型 变量名=(目标类型)源类型

运算符:

1.赋值运算符

变量名 = 变量值;

变量值是一个表达式的结果:如两个数的和

2.算术运算符

基本的算术运算符:+,-,*,/,%,++,--

//		++ 自增1。  可以跟在变量的前面也可以跟踪后面,
//		如果仅仅是单纯的自增的话,前面和后面是一样的,除了自增以外没有其他的操作,
//		如果还有其他的操作,++在前的话则先加在做其他操作,++在后则是先做其他的操作,完成之后在自增
		
//		i++;  12
//		++i;  12
//		System.out.println(i++);  11
//		System.out.println(i);    12
//		System.out.println(++i);  //12
//		System.out.println(i);    //12

复合算术运算符:+=,-=,*=,/=,%=

3.关系运算符
 == 比较2个值是不是相等的, !=  > < >= <= 

一定会有一个结果,这个结果是一个boolean类型的值

4.逻辑运算符

&,|,!

会有一个结果,结果是一个Boolean类型的值

&&,||

具有短路的功能, // 短路 : 如果第一个表达式已经确定了整个表达式的结果了,那么第二个表达式则不会进行操作

! 表达式,! true - false   ! falsse -- true

5.三元运算符/三目运算符/条件运算符

结果 = 表达式? 结果1:结果2,

表达式是一个布尔类型的值,为true的时候结果1作为整个表达式的结果,为false的时候,结果2为整个表达式的结果

程序流程说明

程序流程可以分为以下三种:

顺序结构:程序从上向下逐行执行,只能向下;

分支结构:选择结构,判断语句

循环结构:重复执行一段或一条语句

if语句

if语句主要用于分支结构,表示判断的意思,主要分为3种表现方式:

1:if语句:

if一般用于单个判断,表示如果的意思;条件成立则会执行相应的代码。

if(表达式){
//当表达式为true时,才会执行这里的代码


}
//表达式的结果必须是一个布尔值,如果条件有多个可以使用逻辑运算符&&-并且, || - 或者, !-非,取反

if——else

if else 结构一般用于二选一的情况,如果if成立执行if的代码块,否则执行else中的代码块。

if(表达式){

//代码块,当表达式为true时,才会执行这里的代码

}else{

//表达式为false时,执行这里的代码

}

if - else if - else

多重if结构主要用于多重判断的情况

if(表达式1){
//表达式1为true时,执行这里的代码
}else if(表达式2){
//表达式2为true时,执行这里的代码
}else if(表达式3){
//表达式3为true时,执行这里的代码

}else{
//所有条件都不满足的时候,会执行这里的代码
}

if小结:

一次判断用if语句

两次判断(一个真一个假)用if - else语句

两次以上判断使用if - else if - else

嵌套if

嵌套if就是在if判断语句中还有if判断的语句,嵌套if控制语句可以通过外层语句和内层语句的协作,增强程序的灵活性。

if(条件1) {
      if(条件2) {
              代码块1
      } else {
              代码块2
      }
} else {
      代码块3
}

switch语句

switch语句是一种选择语句,可以通过匹配某个条件,来执行某块代码。

switch (表达式) {
   case 常量 1:
		语句;
		break; // 跳出switch语句
   case 常量 2:
		语句;
		break;
	…
	default:
		语句;
}

 表达式可以接受的类型有:int ,short,byte,char,枚举类型,String

Switch语句的特点:

  1. switch用于多重分支且条件判断是等值判断的情况
  2. switch结束有两种情况:遇到break;或执行到switch语句结束;
  3. case和default是没有先后顺序的,但执行时先执行case语句,如果没有符合的会执行default语句:Default语句一般是放在最后。

switch语句和if语句比较

  1. 相同点: 都可以用来处理多分支结构
  2. 区别:if多用区间判断,switch用于等值条件的判断
  3. 用switch能做的,用if都能做,但反过来则不行

循环

循环是学习java常用的语句之一。for循环语句是最灵活也是最常用的循环结构。

常用的循环结构有三大类: While循环, do-while循环,for循环。

while循环

while(循环条件){

//循环操作/循环体

}
  1.  While是先判断在执行, 编写循环时,明确循环条件和循环操作。
  2. 只有当循环条件为true时,才会执行循环操作
  3. 注意在循环体中更新循环条件,否则容易造成死循环(条件永远成立)

do - while循环

do{

//循环操作(先执行一次)

}while(循环条件);

while 和 do - while的区别

  1. 语法不同,注意do - while 后面的分号不能丢;
  2. 执行次序不同
    1. while是先判断在执行,如果不满足条件,一次都不会执行
    2. do - while 是先执行一次,再做判断,如果不满足,至少执行了一次
  3. 当初始情况不满足循环条件时
    1. while循环一次都不会执行
    2. do - while 循环不管任何情况都至少执行一次

for循环

for(参数初始化;循环条件;更新循环变量){

//循环体

}

For 循环中必须要参数初始化,否则报错

For循环中必须要有循环条件,且必须更新循环条件,否则就是死循环

补充break,continue break 主要是在循环或 switch 语句中,用来跳出整个语句块的. break用于完全结束一个循环,跳出循环体,执行循环后面的语句 continue是跳过本次循环中剩下的语句,执行下一次循环。 简单点说就是break是结束本次循环,continue终止本次循环。

双层循环

所谓双层(双层)循环,就是在循环内部嵌套循环。

for(变量 i; 循环条件;跟新变量){ // 外层循环
     //循环操作1
     for(变量 j; 循环条件;跟新变量){ // 内层循环
          //循环操作2
}
}

1:外层循环控制行,内层循环控制列 2:外层循环更新一次,内层循环更新一轮 闹钟- 外层循环可以理解为分针,秒针转一圈

简单点说就是break完全结束循环,continue终止本次循环。 break和continue的比较: 1:使用场合: break常用于switch结构和循环结构中 continue只能用于循环结构中 2:在循环中的作用 break用于完全结束一个循环 continue是跳过本次循环,执行下一次循环

3:常用的调试说明 可以在程序中打断点进行调试:说明如下 在程序中双击,做个断点,budeg启动程序进入调试模式

说明: 1表示当前继续执行代码(放行),直到遇到下一个断点,快捷键F8(resume), 2表示停止调试(terminate), 3表示进入当前方法内部,一步一步执行,快捷键F5(step into), 4表示运行下一行代码(下一步),执行当前行,但不进入执行细节,快捷键F6(step over), 5表示退出当前方法,返回到调用层,快捷键为F7(step return)

另外调试中鼠标移到代码编辑窗口,放在变量上时会显示当前变量的值。

注意:必须debug模式下的启动才会进入debug调试视图,否则断点无效 取消断点方式: 1:直接双击断点,可以取消 2:在debug视图可以取消所有的断点

数组是什么

 

数组是一个容器,可以用来存储相同数据类型的一组数据。

特点:

1:数组是有长度的;长度:这个数组可以存储几个值。长度从1开始;

2:数组是有下标的;下标:用来操作存取数组中的值,表示数组中元素的位置。下标从0开始;最大值都是长度-1

数组的定义方式

方式一:先创建数组,然后赋值

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

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

如:

int[] arr = new int[5]; 创建了一个长度为5的整数类型的数组;

String[] arr = new String[10]; 创建了一个长度为10的字符串类型的数组;

特点:1:数组的长度一旦定义了,就不能在改变了,数组的长度是固定的

  2:数组在创建的时候就已经有了初始值,初始值是根据数据类型而定。Int:0,String-null

       3:通过下标来操作数组(存取值),下标是从0开始的,到长度-1结束

操作数组:

向数组中存值:

arr[0] = 12; //向下标为0的空间存值

      arr[1] = 5; //向下标为1的空间存值

      arr[2] = 109; //向下标为2的空间存值

取值:

int one = arr[0]; //取出下标为0的值,并赋给变量one

int two = arr[1]; //取出下标为1的值,并赋给变量two

int three = arr[2]; //取出下标为2的值,并赋给变量three

方式二:创建数组的同时,就赋值

数据类型[]  数组名 = {值,值,值,----};

如:

int[] arr = {12,11,9,76,56};创建了一个整数类型的数组,数组名为 arr, 数组中的值为:12,11,9,76,56

String[] str = {"abc","aaa"}; 创建了一个字符串类型的数组。

 

数组的使用

1:数组的循环,数组的长度

 2:高级for循环

 

冒泡排序

1:比较相邻的元素。如果第一个数比第二个数大,就交换他们两个位置。

2:对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。此时第一轮,最后的元素应该会是最大的数。

3:针对所有的元素重复以上的步骤,除了最后一个。

4:持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

冒泡排序可以使用双重循环来实现

外层循环:控制比较的轮数,比较多少轮

内层循环:控制每轮比较多少次,

数组常见异常

ArrayIndexOutOfBoundsException: 5

数组下标越界异常 : 你的下标超过了最大的下标值了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值