java语言编程基础
Posted 你七啊?
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java语言编程基础相关的知识,希望对你有一定的参考价值。
java语言基本要素
高级语言如c++、c#、java等都有一些共同性的东西:关键字、标识符、
运算符、注释、数据类型、常量和变量、语句、函数、数组。高级语言在这些要素上大同小异。
Java关键字:一些有特定含义,有专门用途的字符串(keyword)。Java中关键字均为小写。如do while if int等。不需要记,用多了自然会知道。
标识符
自定义的名称。如类名、变量名、方法名等。合法标识符规则:1 不可使用关键子字 2 不能以数字开头。在java中标识符可有26个英文大小写字母、数字0~9、_$组成。Java中严格区分大小写。
★:编程中一般起有意义的标识符,方便阅读。这也是一个良好的编程习惯。
注释
顾名思义,就是对代码进行一些标注,说明,或者暂时的”删除”。
Java的注释格式为://单行注释 /* xxxxx */多行注释。注意:注释的代码不参与编译,即不包含在字节码中。
数据类型
Java 是强类型语言,每一种数据都定义了明确的数据类型,在内存总分配了不同的大小的内存空间。注:整数默认int,小数默认double。类型转换:分为强制类型转换(显示)和自动类型转换(隐式)。表达式中byte、short、char的值会提升至int,其他的long、double、float,对应自身类型
例:System.out.println(\'a\' + 1);//char自动类型转换 98
System.out.println( (char)(\'a\' + 1));//强转 b ACSII码
byte b = 4; //byte 范围-128~127 在此范围内的值java会自动强转为byte
byte = b1 + b2;// 变量不可检测,编译会出错,应加强转 举一反三 以下类型一样
Byte 8位带符号整数 -128到127之间的任意整数
Short 16位无符号整数 -32768~32767之间的任意整数
Int 32位带符号整数 -2^31到2^31-1之间的任意整数
Long 64位带符号整数 -2^63到2^63-1之间的任意整数
Float 32位单精度浮点数 根据IEEE754-1985标准
Double 64位双精度浮点数 根据IEEE754-1985标准 一些提示:
不象其它程序设计语言,Java语言中的整型的位数是固定的,而不会根据硬件平台以及操作系统的不同而不同。
值传递:(形式参数类型是基本数据类型加上String类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。
引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。
常量与变量
常量表示不可以改变的数值。Java中的常量:1 整数常量,所有整数 2 小数常量,所有小数。 3 布尔型常量,true和false。 4字符常量 用‘’标识 5 字符串常量 用“”标识 6 null常量,就一个null。
变量:内存中的一块区域,其中有名称(变量名)和类型(数据类型),该区域的数据可以在同一数据类型下不断变化。用途:不断的存放该数据类型的常量,可重复使用。变量的作用范围:在{}中有效。需要初始化。定义变量格式:
数据类型变量名 = 初始化值;在java中的基本类型变量都有一个默认的初始化值,因此也可以 基本类型 变量名;前提是该变量是类的成员变量时才有默认值,作为局部变量时必须要初始化;
运算符
算数运算:+ 加,连接符如“3” + 2 输出32 - 减 *乘 /除 取商 %取余
++自增(原有基础+1,再赋给原数据 a++等价与 a = a+1 ) --自减
+=加等于a+= 4等价与a = a+4
★:a++参与其他运算时,a原值参与运算后再+1, ++a 则是a+1后参与运算
赋值运算: = 、+= 、-=、/=、%=
比较运算:
>大于 <小于 ==等于 !=不等于 <=小于等于 >=大于等于
instanceof 检查是否是类对象 例:"Hello" instanceof String //true
比较运算符的结果只有两个true 或 false
逻辑运算:&&与 ||或 & |亦可,单个与2个的区别: 表达式1&表达式2:两边同时运算后,结果相与;表达式1&&表达式2:表达式1若=false,表达式2不再运算。 用于连接两个boolean类型的值
位运算:直接对二进制进行操作 <<左移 >>右移 >>>无符号右移 &与 | 或 ^异或 ~反码
★ 2<<3 =16 左移3位后低位补零 等价与 2 * 2(3)
6>>1 = 3 右移后1位,若高位为0,空位补零,否则补1 等价与 6/2(1)
用位运算比算数运算更高效 3*8 ,3<<3 前提:2的整数倍
两个数值型变量交换值的方法:
1.a = temp, a = b, b = temp;
2.a =a + b, b= a-b, a = a-b;
3.a=a^b; b=a^b; a=a^b; 一个数异或两次等于原来的数
三元运算:格式:(条件表达式)?表达式1:表达式2 如果条件表达式为 true结果等于表达式1,为false,结果为表达式2。可看做简 化的if else 语句,但区别是三元运算一定会有结果。
例:获取两数中较大者: int a=4,b=3,c;c= a>b?a:b;结果c=4
语句(程序流程控制)
判断结构、顺序结构、循环结构、选择结构。
顺序结构:没什么好说的,就是程序从上到下执行。
判断结构:if 语句,if else 语句 ,if else if else if..语句:
if(条件判断){
true执行
} else{
false执行};
不写else默认if的以下的程序就是else要执行的程序,如果没有中括号,但按照一定的格式(如上去掉中括号)if else 语句也成立。
{}的作用:括起来的代码叫局部代码块,可决定局部变量的生命周期。
选择结构:switch语句:switch(表达式){
case(取值1):
执行;break;//已取1值,中断选择,执行switch的下一条
case(取值2):
执行;break;
......
default:语句;break;//如果都没选择case的值(先判断case值,不论default写在哪里),则取默认值。
}
注:只有四种数据类型供给switch选择,byte、short、int、char、Enum(枚举类型)、String(java7新增)。紧跟}的语句可以不写break;
循环结构:语句:while、 do while、 for.
While(条件表达式){ do{
执行语句; 执行语句;
}while(条件表达式);//注意分号
}
while(){} 若条件为true,执行语句后 再次判断条件,若为true再执行第二次语句,再判断...,直到条件为false为止。
do while 无论条件如何至少会执行一次do中的执行语句。先做后判断。
for语句:格式for(初始化表达式;循环条件表达式;循环后的操作表达式){
执行语句;//循环体
}
运行顺序:首先执行初始化表达式,然后判读循环条件表达式,若真,执行循环体,然后在执行循环后的操作表达式,接着再判断条件表达式,重复过程,知道调教不满足为止。For语句可以嵌套for 、if。
注:while和for可以交换使用,在于for中定义的变量包括在初始化表达式中定义的变量在循环结束后被内存释放。 无限循环:while(true) for(;;)
其他语句:break跳出循环应用与选择和循环结构、continue跳出本次循环,执行下次一循环,应用于循环结构。
注:两个语句必须作用于自己的应用范围里才有效。这两个语句单独存在时后不跟其他语句,因为执行不到。
函数
函数即方法,指在类中具有特定功能的代码块。运用函数可以将功能代码进行封装,并切只有在被调用时才会执行,提高了代码的复用性。
如何设计一个函数:以函数的功能为中心,考虑功能如何实现?需要几个形参?返回值是什么,自然而然就能下手了。
注:函数内不能再定义另一个函数,能调用其他函数(需要看修饰符,后文会提),函数的结果应返回给调用者。函数调用完,便被内存移除,当被调用时再加载进内存(形参会挂..)。
格式:修饰符 返回类型 函数名(参数类型 形式参数1,参数类型 形式参数2...){
执行语句;
return ;返回值
}
特殊:函数无返回值,不需要返回值时返回类型用void,return可以不写。
函数的重载:在一个类当中允许存在多个重名的函数,只要它们的形参个数或形参类型不同即可。
重载:同类,同名 ,同返回值,不同参数。
注:与返回类型没有关系,区别仅在于参数列表。
数组
同一种类型数据的集合,数组其实就是一个容器。
格式:
元素类型[] 数组名 = new 元素类型[数组长度]
元素类型[] 数组名 = new 元素类型{元素1,元素2,....}
数组自动给元素标号,从0开始。不明确具体的数据是什么时用格式1,
已知具体数据用格式2.
数组常见的异常:
ArrayIndexOutofBoundsException: 下标越界,即访问了数组不存在的角标。
NullpointerException: 当引用的变量没有任何实体指向时arr=null,出现该异常。
对数组的操作通过操作角标完成,arr[x] = xx; print(arr[x]);...可以用for循环遍历数组。遍历数组能完成很多有用的功能,查找某个特定数据,求和,求最大,排序等。
基本的遍历方式:for(int = 0;i<arr.length;i++){
arr[i];
}
二维数组:数组中的数组。
格式:int[][] arr = new int[2][3];//二维数组中有2个含有三个元素的一维数组。
int[]][] arr = new int[3][];//二维数组中有三个一维数组。
排序与查找: 记于数据结构与算法中。
以上是关于java语言编程基础的主要内容,如果未能解决你的问题,请参考以下文章