java基础-编程基础
java中的注释
→单行注释://注释内容
→多行注释:/*...注释内容....*/ →文本注释:/**..注释内容....*/
java中的关键字
Java 标识符
Java 标识符由数字,字母A-Z或者a-z和下划线_,美元符号$组成。
所有的标识符都应该以字母A-Z或者a-z,美元符$、或者下划线_开始,首位不能是数字。
常量与变量
常量的语法格式如下:
final 数据类型常量名称= 值;
final 数据类型常量名称1 = 值1,常量名称2 = 值2,……常量名称n = 值n;
例子:final double PI = 3.14;
final char MALE = ‘m’,FEMALE =’F’;
变量的语法格式如下:
数据类型变量名= 值;
数据类型
→内置数据类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
byte:
byte 数据类型是8位、有符号的,以二进制补码表示的整数;
最小值是 -128(-2^7);
最大值是 127(2^7-1);
默认值是 0;
byte 类型用在大型数组中节约空间,主要代替整数,因为byte 变量占用的空间只有int 类型的四分之一;
例子:byte a = 100,byte b = -50。
short:
short 数据类型是16 位、有符号的以二进制补码表示的整数
最小值是 -32768(-2^15);
最大值是 32767(2^15 - 1);
Short 数据类型也可以像byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
默认值是 0;
例子:short s = 1000,short r = -20000。
int:
int 数据类型是32位、有符号的以二进制补码表示的整数;
最小值是 -2,147,483,648(-2^31);
最大值是 2,147,483,647(2^31 - 1);
一般地整型变量默认为int 类型;
默认值是 0 ;
例子:int a = 100000, int b = -200000。
long:
long 数据类型是64 位、有符号的以二进制补码表示的整数;
最小值是 -9,223,372,036,854,775,808(-2^63);
最大值是 9,223,372,036,854,775,807(2^63 -1);
这种类型主要使用在需要比较大整数的系统上;
默认值是 0L;
例子:long a = 100000L,Long b = -200000L。
"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。float:
float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
float 在储存大型浮点数组的时候可节省内存空间;
默认值是 0.0f;
浮点数不能用来表示精确的值,如货币;
例子:float f1 = 234.5f。
double:
double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
浮点数的默认类型为double类型;
double类型同样不能表示精确的值,如货币;
默认值是 0.0d;
例子:double d1 = 123.4。
boolean:
boolean数据类型表示一位的信息;
只有两个取值:true 和false;
这种类型只作为一种标志来记录true/false 情况;
默认值是 false;
例子:boolean one = true。
char:
char类型是一个单一的16 位Unicode 字符;
最小值是 \u0000(即为0);
最大值是 \uffff(即为65,535);
char 数据类型可以储存任何字符;
例子:char letter = 'A';。
→引用类型
在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
对象、数组都是引用数据类型。
所有引用类型的默认值都是null。
一个引用变量可以用来引用任何与之兼容的类型。
例子:Site site = new Site("Runoob")。
运算符
→算术运算符 + 加法 - 相加运算
符两侧的值
A +
B 等于 30
- 减法 - 左操作数
减去右操作数
A –
B 等于 -10 * 乘法
- 相乘操作
符两侧的值
A *
B 等于200 / 除法 - 左操作数
除以右操作数
B / A 等于2 % 取余 - 左操作数
除以右操作数的
余数
B%A 等于0 ++ 自增: 操作数的
值增加1
B++ 或 ++B 等于 21(区别详见下文) -- 自减: 操作数的
值减少1
B-- 或 --B 等于 19(区别详见下文)
关系运算符
→位运算符
→逻辑运算符
→赋值运算符
= 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋
给C
+ = 加和赋值操作符,它把左操作数和右操作数相加赋值给左
操作数
C + = A等价于C = C + A
- = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数C - = A等价于C = C - A
* = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左
操作数
C * = A等价于C = C * A
/ = 除和赋值操作符,它把左操作数和右操作数相除赋值给左
操作数
C / = A等价于C = C / A
(%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值
给左操作数
C%= A等价于C = C%A
<< = 左移位赋值运算符 C << = 2等价于C = C << 2 >> = 右移位赋值运算符 C >> = 2等价于C = C >> 2 &= 按位与赋值运算符C&= 2等价于C = C&2
^ = 按位异或赋值操作符 C ^ = 2等价于C = C ^ 2
→条件运算符
(布尔值)?表达式1:表达式2 //布尔为真执行前面,否则执行后面
→instanceof运算符
(表达式1)instanceof (表达式2)
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。→优先级
后缀() [] . (点操作符) 左到右
一元+ + - !?从右到左
乘性* /%左到右
加性+ - 左到右
移位>> >>> << 左到右
关系>> = << = 左到右
相等== != 左到右
按位与&左到右
按位异或^ 左到右
按位或| 左到右
流程控制语句→关于if 语句
例1:判断语句
if(条件)
{ 代码}
else
{代码2}
例2:多重判断
if(条件)
{ 代码}
else if(条件2)
{代码2}
else if(条件3)
{代码3}
else
{代码4}
例3:(if内可嵌套)
if(条件1) {
if(条件2) {代码1}
else {代码2} }
else
{代码3;}
例4:if可当作判断语句
if (条件)
{条件成立时的代码} //没有else,直接执行下面的
→Switch语句用法
例:(表达式=值)
Switch(表达式){
case 值1:
代码1
break;
case 值2:
代码2
break;
default: //表达式中没有提供的值默认默认执行的代码块
}
→循环语句while
例:1
while(条件) //条件为true执行1下,直到为false {代码} //先判断后执行
例2:
do{
代码
}while(条件) //先执行,后判断,即使条件为false
→for循环语句
例:
for (int i = 1;i<2;i++){代码}
break用来终止语句
continue用来结束本次循环
for(元素类型元素变量:遍历对象){
执行的代码
}
方法
→方法的语法
访问修饰符返回值类型方法名(参数列表){
方法体
}
例:
先创建对象
printscore a = new printscore();
//定义一个变量来接受方法的返回值
int rsum;
//调用方法来计算
rsum = a.cal(78,99);
//78和99被调入到a和b里进行计算
public int cal (int a,int b){ //在这的a和b 为形参,实际的定义数字为实参int rsum =a+b;
return rsum;
}
//所以调用方法的语法是对象名.方法名(参数) //或方法名();
public static void cal ()
{ System.out.println("fuck"); }
方法中的参数
public void printName(String name) { //String name 就是参数System.out.println(name); //String为参数类型 name 为参数名}
当需要传参的时候语法为
对象名.方法名(参数1,参数2)
当方法调用结束后,系统会自动释放由方法所产生的空间
方法重载
方法名相同,但参数列表不同
访问修饰符构造方法名(){ //构造方法名与类名一致初始化代码 //()为空是无参有定义参数为有参}
例:
public class people {
double height;
int age;
int sex;
//构造函数,初始化了所有属性
public people(double h, int a,int s){
height = h;
age = a;
sex = s;
}
}
→创建对象语法:
类名对象名 = new 类名();
people LiLei = new people();
使用对象
//引用对象属性
对象名.属性
LiLei.height
//引用对象方法
对象名.方法
LiLei.cry()
数组
→声明数组
数据类型[] 数组名 //或者数据类型数组名[];
例:int[] ages;
int ages[];
数组名 = new 数据类型[ 数组长度 ];
例: ages = new int[10];
→或者直接在声明数组的时候分配好空间
例:
数据类型[] 数组名 = new 数据类型[ 数组长度 ];
数据类型[] 数组名 = {数组元素};
int [] ages = {12,18,9,33,45,60}; //声明并初始化了一个int整型数组,它有6个元素char [] symbol = new char[10] //声明并分配了一个长度为10的char型数组
ages.length 用来获取数组长度
数组第一个下标为0
→二维数组
数据类型 [][] 数组名 = new 数据类型[行的个数][列的个数];
String [][] name = new String[1][2];
//或者
数据类型 [][] 数组名;
数组名 = new 数据类型[行的个数][列的个数];
//也可以
数据类型 [][] 数组名 = {
{第一行值1,第一行值2,...},
{第二行值1,第二行值2,...}
...
}
String[][] name = {
{1,2,3}{4,5,6}
}
//二维数组的赋值和访问,跟一维数组类似,可以通过下标来逐个赋值和访问,注意索引从 0 开始
数组名[行的索引][列的索引] = 值;
System.out.print(数组名[行的索引][列的索引]); //来获得数组值