Java基础语法入门01
学习java你要先进行去了解JDK,JRE,JVM
JDK Java开发工具包
JRE Java语言开发的运行环境
JVM Java虚拟机,用于Java语言的跨平台所用。
当你下载jdk之后,jdk中包含jre,jre中包含jvm
java运行原理
java变量
变量用于保存数据,构成变量三个要素:变量类型,变量名称,变量值
变量的使用规则:
- 先声明后使用
- 声明进行初始化或声明后赋值
- 在刚开始赋值时,只能赋一个值,但可以修改多次
- mian方法中的变量先赋值才能输出
- 避免使用中文
变量分为三种:
局部变量
- 声明在构造方法、静态方法、实例方法、代码块中的变量,都是局部变量;
- 不能使用static和访问修饰符修饰;
- 可以使用final修饰,即为常量,不必在声明语句中赋值;
- 当执行局部变量所在的方法或代码块时,才有机会被创建,在方法或代码块执行结束后被自动销毁;
- 局部变量在内存的栈区分配;
- 局部变量在使用之前必须要先赋值;
成员变量
- 声明在所有方法体和代码块之外,并且没有使用static修饰的变量,叫做成员变量;
- 可以使用访问修饰符和final修饰;
- 使用final修饰时,一定要赋值;
- 实例变量是在对象被创建时创建,对象被销毁时销毁;
- 作用域范围在整个类中;
静态变量
- 声明在所有方法体和代码块之外,并且使用static修饰的变量;
- 可以使用访问修饰符修饰;
- 一般配合final使用,即public static fianl,标识符使用大写;
- 类变量被分配在静态存储区,是被所有该类的对象共享数据;
- 类变量是在程序开始时被创建,程序结束时销毁;
标识符:是用于给 Java 程序中变量、类、方法等命名的符号,简单一些,就是你给这个变量或者这个类,方法起的名字。
标识符的四个遵守规则:
1.由字母,数字,下划线_,$符号组成,但不能由其他特殊符号组成,不能以数字开头。
2.区分大小写。
3.要见名知意。
4.不能是Java中的关键字或保留字。
java数据类型
Java数据类型分为两种:
基本数据类型:
数值型:
整数类型(byte,short,int,long)
浮点类型(float,double)
字符型(char)
布尔型(boolean)
引用数据类型:
类(class)
接口(interface)
数组
特别提醒String为引用类型。
基本类型存储的是数据的本身,引用类型存储的是保存数据的空间地址
变量类型的转换分为自动类型转换和强制类型的转换:
自动类型的转换:
1.目标类型与源类型兼容
2.目标类型大于源类型(字节大小)
强制类型的转换
使用“(转换类型)变量名称”这种方式进行强制转换。
java运算符
运算符(一种带有功能的符号)分为以下几种:
算术运算符:
特别注意:++ --出现在操作数值的左边和右边结果是不一样的
int a=5;
int b=a++;
System.out.println(a);
System.out.println(b);
结果为:6,5
a++ 先进行将a的值赋予b,再进行了自增。
int a=5;
int b=++a;
System.out.println(a);
System.out.println(b);
结果为:6,6
++a 先进行自增,后赋值给b。
赋值运算符:
比较运算符:
特别注意:
1、 > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型
2、 == 、 != 两边的操作数既可以是数值类型,也可以是引用类型
逻辑运算符:
特别注意:
&与&&的区别:
使用&&时候,有短路功能,即当第一个条件为错误时,不在进行判断第二个。
使用&时候,当第一个条件为错误时,仍进行判断第二个。
|与||的区别:
与&和&&相同,|前后两个条件都会进行判断,||遇到第一个为真时就不再进行判断。
条件运算符:
也称为三目运算符。
语法形式:布尔表达式 ? 表达式1 :表达式2
String ss=(5>7)?"正确":"不正确";
System.out.println(ss);
输出为:正确。
当括号内容正确时,输出第一个,错误时输出第二个。
运算符的优先级:
java流程控制语句
Java中的流程控制语句分为以下几种:
if语句:进行简单的判断条件,条件满足执行大括号内的内容。
if else语句:先进行判断if中的条件语句,满足执行其中语句,不满足执行else里面的语句。
switch语句:
switch(表达式){
case 值1:
执行代码块1;
break;
case 值2:
执行代码块2;
break;
......
default:
默认代码块;
}
执行过程:当 switch 后表达式的值和 case 语句后的值相同时,从该位置开始向下执行,直到遇到 break 语句或者 switch 语句块结束;如果没有匹配的 case 语句则执行 default 块的代码。
特别注意:switch中的表达式的值类型必须是整数型或字符型。
while循环语句:循环语句,满足括号内的表达式,会进行循环,直到不满足,跳出循环。
do while循环语句:先进行循环在进行判断,先进行的do大括号内的语句,在进行判断do小括号内的表达式。
for循环语句:语法结构为
for(循环变量初始化;循环条件;循环变量变化){
执行代码块
}
Java循环跳转语句:
break:跳出循环,执行后面代码。
continue:跳过本次循环,进行下次循环。
java数组
数组就像一个大盒子,这个盒子规定了所放进物品的属性,所放进的物品,按照顺序进行放置,在进行取出来的时候,只需要知道它的位置信息就行了。
int[] a={7,8,9,10};
/*它的每一个值都有一个索引。索引从0开始,
当你想要取9这个值的时候,那么你输出语句应该这样写:*/
System.out.println(a[2]);
/*
a[0]=7;
a[1]=8;
a[2]=9;
a[3]=10;
*/
数组的使用
进行声明数组:
数组类型[] 数组名称;
或者 数组类型 数组名称[];
int [] a;
int a[];
给数组进行分配空间:
数组名称=new 数组类型[数组长度];
a=new int[5];
还可以将上面两个步骤进行合并:
int a=new int[5];
赋值:
a[0]=6;
a[1]=7;
还可以进行将上述三步合并成为一步:
int[] a={1,2,3,4}
//或者
int[] a=new int[]{1,2,3,4}
//注意 这个进行赋值new int[] 中括号的内容必须为空
学习数组时,会有这个操作,对数组进行排序,在java中有Arrays类进行操作数组
int[] a={3,2,5,9,6,};
//使用 Arrays.sort(数组名)对数组进行排序,但这个排序出来的顺序是从小到大的
Arrays.sort(a);
// 可以使用Arrays.toString(数组名);方法将一个数组转换成字符串,
//该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开
System.out.println(Arrays.toString(a));
//输出结果为:[2,3,5,6,9]
在进行输出数组所有的值的时候,除了使用for这些循环输出外,可以使用一种更为方便的foreach
格式为for(元素类型 元素名称:遍历对象名称){
执行代码
}
元素名称是随意起的名字,但要符合变量起名规范,遍历对象名称就是你要进行遍历对象的名称
int a[]={5,6,87,23,45};
for (int aa:a) {
System.out.println(aa);
}
二维数组
一维数组就是一条线,所有的数据在这个线上存着,而二维数组就是一个平面,所有的数据都在这个平面上存着。
二维数组的声明和分配空间格式:
数组类型[][] 数组名=new 数组类型[行数][列数];
或者
数组类型[][] 数组名;
数组名=new 数组类型[行数][列数];
//定义了一个3行2列的二维数组
int [][] a=new int[3][2];
/*
或者int [][] a;
a==new int[3][2];
*/
给二维数组赋值:
数组类型[][] 数组名={{值,… ,值},…,{值,…,值}}
数组名[行的地址][列的地址]={{值,… ,值},…,{值,…,值}}
举个例子:
//一个3行2列的二维数组
int[][] a={{1,2},{3,4,},{5,6}};
在输出二维数组特别注意:需要两个循环
for(int i=0;i<3;i++){
for(int j=0;j<2;j++){
System.out.println(a[i][j]);
}
}
java方法
怎么去定义java中的方法
定义方法的语法为:
访问修饰符 返回值类型 方法名(参数){
方法体
}
方法分为
1.无参无返回值方法
2.无参带返回值方法
3.带参无返回值方法
4. 带参带返回值方法
方法的使用
无参无返回值方法
public static void main(String[] args){
//创建一个名为tt的对象
myText tt=new myText();
//调用show方法
tt.show();
}
无参无返回值方法
public void show(){
System.out.println("hello world!");
}
无参带返回值方法
public static void main(String[] args){
myText tt=new myText();
int ss= tt.show();
System.out.println(ss);
}
// 无参带返回值方法
public int show(){
int a=10;
int b=20;
int sum;
sum=a+b;
return sum;
}
带参无返回值方法
public static void main(String[] args){
myText tt=new myText();
int a=10;
int b=20;
tt.show(a,b);
}
//带参无返回值方法
public void show(int a,int b){
int sum;
sum=a+b;
System.out.println(sum);
}
带参带返回值方法
public static void main(String[] args){
myText tt=new myText();
int a =10;
int b=20;
int ss=tt.show(a,b);
System.out.println(ss);
}
//带参带返回值方法
public int show(int a,int b){
int sum;
sum=a+b;
return sum;
}
方法的重载
什么是方法的重载?
方法的重载就是:
在同一个类中
1.方法名相同
2.方法参数个数不同
3.方法参数顺序不同
4.方法类型不同
public class myText {
public static void main(String[] args){
//创建一个对象
myText tt=new myText();
//调用方法
tt.show();
//调用重载方法
String name="菜鸟三四五";
tt.show(name);
//调用重载方法
int password=123;
tt.show(name,password);
}
public void show(){
System.out.println("无参无返回值方法");
}
public void show(String name){
//重载show方法,参数类型为字符串
System.out.println("name="+name);
}
public void show(String name, int password){
//重载show方法,参数个数两个,参数类型一个为字符串,一个为整数型
System.out.println("name="+name+"password="+password);
}
}
java类与面对对象
类是所有java程序中的组织单元,现有类才能创建对象。
类的通常格式:修饰符 class 类名
定义一个类:
类的名字
属性
方法
//创建一个名为computer的类
public class computer {
//类的属性(也叫成员变量)
String brand;//电脑的品牌
int price;//电脑的价格
String type;//电脑的类型 //类的方法
public void playGame(){
System.out.println("使用电脑打游戏");
}
public void netPlay(){ System.out.println("使用电脑上网!"+"brand:"+brand+" price:"+price+" type:"+type);
} }
使用类去创建对象
使用类去创建对象的过程叫做实例化
public class InitailComputer {
public static void main(String[] args){
//使用computer类进行创建computer对象,new computer()就是实例化
computer computer=new computer();、
//调用方法
computer.netPlay();
}
}
执行结果为:使用电脑上网!brand:null price:0 type:null
在没有给实例变量赋值的情况下,默认值为0和NULL