java学习之路--基础

1   第二天,java语言基础

 

1.1 关键字

1.1.1   什么是关键字

Java中具有特殊含义的单词。

关键字中所有字母都为小写。

1.1.2   Java关键字表及分类

1.2 标识符

1.2.1   什么是标识符。

Java中,起的名字。

0-9,a~z,A~Z,$,_

数字不可以开头

不可以使用关键字。

 

Java是严格区分大小写的,在起名字的时候要做到见名知意,提高阅读性。

 

1.2.2   定义标识符有什么规则

包:xxx,小写

类和接口:XxxxXxx,单词首字母大写

方法:xxxXxxx,方法第一个单词首字母小写,从第二个单词起,首字母大写。

变量:xxxXxxx, 第一个单词首字母小写,从第二个单词起,首字母大写

常量:XXX_XXX,大写,多单词之间用下划线分隔

 

见名知意。

1.3 注释

用于说明解释程序的文字。

 

注释是一个合格程序员良好的习惯。

 

代码只是,思想的一种体现形式而已。

 

写程序之前,应该先写注释。理清思路,步骤。

1.3.1   注释的作用

提高代码的阅读性。

阐述代码的功能,方便以后阅读。

1.3.2   Java中的三种注释

//,单行注释

/*…*/,多行注释

/**…*/,文档注释。会被编译器编译.会被javadoc工具解析,生成一套以网页形式提现的改程序的说明文档。

1.4 常量和变量

1.4.1   什么是常量,以及常量的种类,规则

常量,就是数值保持不变的

 

整数型常量,所有整数

浮点型常量,所有小数

字符型常量,char,单引号‘’标识

布尔型常量,boolean,只有两个值。true或false

字符串型常量,String,双引号“”,标识

Null常量,null

1.4.2   二进制,八进制,十进制,十六进制之间的转换

二进制中,负数的最高位都是1,整数的最高位都是0

负数二进制,取反再+1

 

计算机底层都是通过二进制计算的

 

二进制:满2进1,最高位为1

八进制,满8进1,最高位为7,以0开头

十进制,满10进1,最高位为9

十六进制,满16进1,最高位为15.0~9,A~F,以0x开头

 

转二进制,短除法。除2,得商。取余数。商继续除2,得商,取余数..重复。直到商为0为止(该方法也适用于8,16进制,只是除数为8,16而已,比较麻烦)

 

转十六进制,8421,四位一算

转8进制,421,三位一算

 

进制转换,可以先转换为二进制,然后再转换。

1.4.3   什么是变量,变量的定义规范以及作用

值可变的量。

变量是内存中一个存储空间。该空间用于自己的名字和类型

 

作用:

可以当存储用,

如果需循环利用也可以使用

 

变量的作用域:{},大括号内有效

 

定义变量:变量的类型 变量的名称 = 初始化值。

 

 

理解变量就是数学中的未知数

 

局部变量:必须手动初始化。

全局变量:有默认初始化。

1.4.4   Java中的数据类型

 

基本数据类型:四类,八种。

 

整数型,byte,short,int ,long。默认是Int为32位

浮点型,float,double,默认double

字符型,char

布尔型,boolean

 

引用数据类型,class,interfacae,数组

 

注意:String也是一对象。

 

Java定义的不同数据类型,是因为在内存中存储的大小或方式不同。

 

基本数据类型,一般放到栈内存中。并且都有各自的存储大小。

引用数据类型,通过new实例化,一般放到堆中。在栈中建立引用

1.4.5   Java中的自动类型转换和强制类型转换

char 

 

 

byte        short       int          long

 

 

                            float        double

 

单箭头表示自动转换,不会丢失精度

双箭头表示转换会丢失精度

强制类型转换,(转换为所需类型)原类型。

如,将一个float数据12.0232,强制转换为int型

(int)12.0232

 

强制类型转换,会丢失精度。

1.4.6   转义字符

\,加上特定字符,具有特殊的意义

转义字符:通过\ 来转变后面字母或者符号的含义。

 

如,

\t,制表符,相当于tab

\b,退格,相当于backspace

\n,回车

\r,换行,windows中相当于\r\n

\\,输出\

\?,输出?

1.5 运算符

1.5.1   Java中有哪些运算符,以及优先级,作用

1.5.2   算数运算符

+,-,*,/,%

 

当进行/(除法),运算时,如果两边都为整书,那么结果将会是整数。(如果有小数,会舍弃小数部分)

1.5.3   关系(比较)运算符

>,<,>=,<=,==,!=

1.5.4   逻辑运算符

&,|,&&,||,^,!

1.5.5   赋值运算符

=,+=,-=,%=,/=

1.5.6   位运算符

>>,<<,>>>,&,|,^,~

1.5.7   位运算

<<,乘2

>>,除2

 

1.5.1   三目运算符

条件表达式?数值1:数值2

 

如果表达式为true,则运算结果返回为数值1;如果为false,则运算结果返回为数值2

 

语句

语句一般以分号结尾’;’

例如:int a = 4;//语句,这条语句表示定义一个整型变量a并且初始值为4。

1.5.2   什么是块

{},括起来的叫做块。块里面可以包含多条语句

1.5.3   什么是语句,以及语句有啥作用

语句叫相当于平常我们语文中的造句。

 

我们之前学习的内容其实都可以说是语句的一部分。

 

当我们学习完以上单独的内容之后,就可以造句了。

 

Java中的语句,比我们语文的造句要简单多了。

1.5.4   If语句

判断语句,有三种形式:

 

1.if(表达式)

{

     语句;

};   

表达式的结果,只有true和false两种情况

2.if(表达式)

{

   语句1;

}

else

{

   语句2;

};

解释:如果表达式为true,则执行语句1;如果表达式的结果为false,则执行语句2

If语句和三目运算符区别,

三目运算符, 1.弊端,通过对表达式的判断,一定要有值的出现;

2.好处,可以写在语句中,简化if  else 的代码

3.if(表达式1)

{语句1;}

else if(表达式1)

{语句2;}

else if(表达式3)

{语句3;}

….

else if(表达式n)

{语句n;}

else

{语句n+1;}

 

else 与距离最近的if配对

 

1.5.5   Switch语句

选择结构

Swich(key) //表达式的结果为数值 byte,short,int ,char

{

 casevalue 1:

  语句1;

  break;

case value 2:

  语句2;

  break;

case value 3:

  语句3;

  break;

default:

语句n;

break;

}

 

解释,首先得到key的值。然后从第一个case的value开始逐个进行比较。如果key和value相等。则执行对应语。否则执行default。

 

每个case value,的值不能相等

 

Switch语句的执行顺序,与语句摆放的先后无关。换言之,当得到key的值之后,总是从第一个case开始执行。当没有case的value与之相等时,执行default

 

Break语句的作用,在这里是中断语句执行。当找到与之对应的case,执行完语句之后,中断语句的执行。如果不加break,程序则会继续执行下去,一直到遇到break或者执行到最后方才结束。

 

 

       if和switch语句很像。

              具体什么场景下,应用哪个语句呢?

              如果判断的具体数值不多,而是符合byte short int char这四种类型。

              虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。

 

              其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。

1.5.6   While语句

循环语句

 

初始化

While(循环表达式)

{

 循环体;

循环结束条件;

}

 

do

{

循环体;

循环结束条件;

}while(循环表达式);

 

While,和do—while区别是,do—while不管循环表达式成立与否,都会执行一次。

 

do—while,while后面的分后不能省略,代表着表达式的结束

1.5.7   For语句

For语句,也是一种循环结构。

 

For(初始化;循环表达式;循环结束条件) {

循环体;

}

 

While和do—while中,初始化,得放到外面;

而for可以放到语句中,也可放到外面。区别在于,放到语句里面,当语句执行完后,会释放变量,节约内存。

1.5.8   中断语句

break(跳出);可以放到switch,循环语句中

continue(继续);结束本次执行。继续下次一起执行。一般放到循环语句中

1.6 函数

函数就是定义在类中,具有独立功能的一个小程序。

函数也成语方法。Function

1.6.1   函数的定义

 

修饰符 返回值函数名(形式参数1,形式参数2….) {

return 返回值;

}

 

void,返回为空;可以省略return;

 

定义函数的时候,首先根据函数的功能决定函数的返回值

其次看是否需要传入未知参数参与运算,确定形参

1.6.2   函数的特点

1.      定义函数可以将代码进行封装

2.      便于对该功能的重复利用

3.      函数只有被调用才会执行

4.      函数的出现提高了代码的复用性

1.6.3   函数的应用(怎么定义函数)

 

注意:函数中只能调用函数,不能定义函数

     定义函数时,函数的结果应该返回给调用者,由调用者进行处理

 

定义函数,需要知道,两个明确:

1.      明确定义的功能的最后的结果是什么?(决定返回值)

2.      明确在定义该功能的过程中,是否需要未知的变量参与运算?(决定形参)

 

 

1.6.4   函数的重载

在同一个类中,允许存在一个以上的同名函数。只要他么参数的个数和参数的类型不一样即可

 

只与函数的参数列表(参数是有顺序的)有关系)(包括个数),与函数的返回值无关。

函数的名,要有意义。见名知意。增加阅读性。

 

至于参数的顺序,个数,类型有关

 

1.7 数组

1.7.1   数组的定义

数组就是一容器,存储同一种类型数据的集合。

 

好处是,数组中的元素都是有编号的。(数组会自动对元素进行编号,从0到length-1)

   

     格式一:

     元素类型[] 数组名 = new 元素类型[元素个数或数组长度];

     如,int[] abc = new int[5];

    

       格式二:

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

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

       int[] abc = {1,2,3,4,5};//简写

 

 数组的初始化

     1.静态初始化:在定义数组时,指定数组的元素。如, int[] abc = new int[]{1,2,3,4,5};

        2.动态初始化:先定义好数组,然后再后面初始化。

     如,int[] abc = new int[3];

            abc[0] = 1;abc[1] = 2; abc[2] = 3;

 

    

    

1.7.2   数组的内存结构

数组在内存中是放在堆中的。数组是一种引用类型

Java中new出来的东西,都是放在堆中

1.7.3   数组操作的常见问题

编译时,只检查语法问题。

运行时,才检查具体逻辑问题。

编译出错差不多就是语法不对,比如你写String str = 'str';这么写语法不对编译就会出错。运行出错是指语法没问题但是逻辑有问题,比如一个方法传进一个String类型的变量str,方法体中有类似于str.equals("str");的语句,但是传进的str是个null,那么那一句就相当于null.equals("str");这肯定会抛空指针异常。

 

//ArrayIndexOutOfBoundsException:3:操作数组时,访问到了数组中不存在的角标。

 

//NullPointerException:空指针异常:当引用没有任何指向值为null的情况,该引用还在用于操作实体。

1.7.4   数组常见操作

1.   获取数组中的元素。通常会用到遍历.

2.   获得数组的长度或元素个数。运用数组中的一个属性。数组名.length

3.   获取数组中的最大值和最小值

4.   对给定的数组进行排序

选择排序

冒泡排序

最快排序方式,希尔排序

5.   查找

折半查找

1.7.5   数组中的数组

 1.定义格式一:

 Int a[][]= new int[3][2];

 

 解释:

定义了三个一维数组,每一个一维数组的长度为2

三个一维数组,分别是,a[0],a[1],a[2]

给第一个维位数组的第一个元素赋值78:a[0][0] = 78

 

2.定义格式二

Int a[][] = new int[3][];

 

 解释:

定义了三个一维数组,每个一维数组的初始化为null

初始化,

a[0] = new int[3];

a[1] = new int[4];

a[2] = new int[5];

 

3.定义格式三

Int a[][] = {{1,2,3},{1},{2,3,4,5}};

解释,定义三个一维数组,长度分别为3,1,4

 每个一维数组的长度表示为,a[0].length
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值