Java基础语法入门01

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运算符

运算符(一种带有功能的符号)分为以下几种:
算术运算符:

特别注意:++ --出现在操作数值的左边和右边结果是不一样的

1 int a=5;
2 int b=a++;
3 System.out.println(a);
4 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

猜你喜欢

转载自www.cnblogs.com/cainiaosansiwu/p/10745962.html