Java初学

1、永不过时的HelloWorld

  1. public class Hello,用于定义一个公共类的关键字。在Java中,类是一种面向对象编程的基本构建块,它封装了数据和方法,并提供了对他们的访问控制。其中Hello是类名。

  2. public static void main的简写psvm。它是方法,程序的入口方法

  3. public static void main 是java程序的主入口方法,它是程序执行的起点。当运行一个Java程序时,JVM会自动调用这个方法。在这个方法中,你可以编写程序的逻辑代码。

  4. System.out.println 的简写sout,用于在控制台输出信息。

    public class Hello {
        public static void main(String[] args) {
            System.out.println(
                    "HelloWorld"
            );
        }
    }

2、标识符规则

  1. 标识符由字符、数字、下划线、汉字、美元符号"$"组成,第一个符号不能是数字。

  2. 不能把java关键字和保留字作为标识符。

  3. 标识符没有长度限制。

  4. 标识符对大小写敏感。

3、常量与变量

无论是常量还是变量的定义都是在类中进行的,常量的定义如下:

定义常量,在改常量声明的时候赋值,后面就不可以变更其值

变量名称:所有的字母全部大写,如果是多个单词组成、单词之间以下划线连接

定义常量的语法:final 数据类型 常量名 = 初始值;

//定义一个类,文件名和类名保持一致
public class Demo1{
    /**
	*修饰符:
	*public:公共的、基础的,一旦成员被public修饰那么该成员可以在任意的地方调用
	*
	*static:被static修饰的成员优先被装载到内存中,反之则后被加载
	*
	*final:最终的、最后的、如果成员(变量)被final修饰,则表示该成员(变量)无法被重新赋值
    **/
    public static final double decimals=3.15;
    //定义变量
    int x=10;
}

4、数据类型

基本数据类型
  1. 整形(int、byte、short),占4、1、2
    //基本数据类型
    int age=10;
    //除于2.2
     System.out.println(age/2.2);
  2. 浮点型(float、double),占4/8个字节
  3. 字符型(char),2个字节

    //定义一个字符型,单引号中间只能存在一个字符
    char r='1';
  4. 字符串(string),不是基本数据类型,而是Java中的类,用于表示一系列字符

    //定义一个字符串
    String str="哈哈哈";
    //字符串连接符 +
    System.out.println(str + 10 + 20);
  5. 布尔型(Boo lean)

类型转换
  1. 自动转换:取值范围(表数范围)小的向取值范围大的数据类型转换,java能自动实现转换
    double a=10;
    System.out.println(a);
    //最后结果是10.0

  2. 强制转换:取值范围大的向取值范围小的转换,需要强制转换,强制转换容易出现精度丢失。
    double d=100.6;
    int x=(int)d;
    System.out.println(x);
    //最后结果就是100

注意事项:
  1. Boolean不参与类型转换

  2. byte、short、char如果转换,需要先转成int然后再转

  3. 字符类型转成int类型的原因是每个字都有一个数字与之对应(字符编码)
    char c="中";
    System.out.println((int)c);

5、算术运算符

加法减法乘法除法取余自增自减
+-*/%++--
关系运算符
相等不等大于小于大于等于小于等于
==!=><>=<=
逻辑运算符
&&||!=

在Java中,单&和双&&都是逻辑与操作符,但它们之间有一些区别:

  1. 单&(按位与)操作符:当两个操作数都为true时,结果为true;否则,结果为false。它主要用于整数类型的按位运算。

  2. 双&&(逻辑与)操作符:它是短路操作符,当第一个操作数为false时,不会计算第二个操作数,直接返回false;只有当第一个操作数为true时,才会计算第二个操作数。如果两个操作数都为true,结果为true;否则,结果为false。

单|和双||的区别

  1. 单个| 是无论前面是否为真,都判断后面的语句

  2. 双|| 是前面为真,就不执行后面的语句了

注意:括号里面加个!,表示取反

sSystem.out.println(!(3>2  || 5>3))
条件运算符(三元运算符)
public class Test{
	public static void main(String[] args){
	int a,b;
     a = 10;
     // 如果a等于1成立,则设置b为 20,否则为 30
     b = (a==1)?20:30;
     System.out.println("value of b is :" + b);
	}
}
赋值运算符
等于加等于减等于乘等于除等于取余等于
=+=-=*=/=%=

a+=b就等于a=a+b

6、语句

流程控制

顺序流程:代码的执行顺序是自左向右,自上而下的顺序执行

if

格式一:

if(逻辑表达式){
    当逻辑表达式的结果为true时执行的代码
}

格式二:

if(逻辑表达式){
    当逻辑表达式的结果为true时执行的代码
}else{
    当逻辑表达式的结果为false时执行的代码
}

格式三:

if(逻辑表达式1){

}else if(逻辑表达式2){

}else if(逻辑表达式3){

}else{
	表示以上所有的逻辑表达式都不成立时所执行的代码
}

switch

名词解释:

· case穿透:从某个符合情况的case开始一直向下执行直至遇到结束语句或者整体执行完成。

( 整体的意思可以理解为当该变量的值等于某个case后面的值时,执行这个case对应的代码。同时在JDK1.8之后switch开始支持字符串类型 )

基础语法
switch(含有具体值的变量){
    case 变量的某个值:要执行的语句;
    case 变量的某个值:要执行的语句;
}
public class Demo{
	public static void main(String[] args){
		int month=2;
		//case穿透
		switch (month){
			case 1:System.out.println("1月");
			case 2:System.out.println("2月");
			case 3:System.out.println("3月");
            default:
                System.ou-t.println("这个是前面都不成立时,执行")
		}
	}
}
//执行结果是2月 3月
//如果在要执行的语句后面加上break或return等,就会避免case穿透,
避免case穿透,具体的玩法有以下几种:
  • break:跳出它所在的语句块,它是语句级别的控制

  • return:它是方法级别的控制,终止它所在的方法的运行,向该方法的调用者提供一个值(返回值)

  • System.exit(0):退出Java虚拟机,一般不用。

判断取值范围时一般使用if、而判断具体值的时候使用switch

for循环

循环结构:根据循环条件,重复性的执行某段代码

基础语法

for(表达式1;表达式2;表达式3){
    循环执行的语句
}

流程解析:

  • 表达式1:当for循环首次执行时,它会被执行,后面循环则不执行该表达式

  • 表达式2:作为循环的控制条件,该表达式会被反复执行一直到结果为false

  • 表达式3:每次循环它都是最后执行,执行多次

退出循环:

  • break:跳出它所在的语句块,它是语句级别的控制

  • return:它是方法级别的控制

  • System.exit(0):退出Java虚拟机,一般不用

  • continue:表示跳过本次执行

注意:将一个循环写到另一个循环里面这种情况称为嵌套循环。而这种情况下需要知道的是外层循环执行一次,内层循环执行多次。

while

基础语法

while(逻辑表达式){
    循环执行的代码
}

do-while

基础语法

do{
    循环执行的代码
}while(逻辑表达式)

7、方法

这种方法也称为静态方法

	/**
	 *名称
	 *		-自定义的标识符
	 *		-第二个单词开始首字母大写
	 *参数列表
	 *		-当前方法和未来调用者之间的通讯的桥梁
	 *返回值(return)
	 *		-终止方法的运行
	 *		-给当前方法的调用者提供一个值
	 *void
	 *		-一种比较特殊的返回值类型
	 *		-代表的值一般没有具体值,类似于"" ''
	 */
	 public static void demo1(){
		System.out.println("HelloWorld")
	 }

	 /**
	  *方法,程序的入口方法
	  */
	 public static void main(string[] args){
         //方法的调用
         demo1();
     }

8、数组

理论上就是相同类型的数据的一个集合,Java中数组是定长(属组在声明的时候,它的大小就会被确定)

名词解释

索引:数组对其成员的编号,该编号从0开始

数组长度:数组的最大可用下标、数组长度、数组的组成成员,它的计数方式是从1开始计算的。

定义方式

	public static void main(Strint args[]){
        //第一种方式只声明长度不声明具体内容
        int mode1[]=new int[5];
        //第二种方式既有长度也有具体元素
        int mode2[]={100,60,80,90};
        //第三种方式,其实是前面两种的综合属于扩展写法
        int mode3[]=new int[]{80,60,90};
	}
}

默认值

数组中元素的默认值是根据其类型来决定的

Object:上帝类型(任意类型)Object arr[]= new Object[10] 默认值是null

指定对应的类型:定义一个长度为10的属组 int arr[] =new int[10] 默认值是0

public class Demo1{
    //这个也是属组
	public static void main(Strint args[]){
		Systm.out.println(args[]);
	}
}

遍历数组:

    public static void main(Strint[] arrgs){
		int arr[] = {10,30};
		//Ctrl + Shift + Enter自动补全
    
   		 //方式一:通过索引+循环的形式,在不停的改变索引值的同时获取数组元素
		for (int i = 0;i < 2;i++){
			//0--1 代表数组索引值
			System.out.println(arr[i]);
		}
	
		Strint brr[] = {"hello","World"};
		//增强for循环
        //方式二:需要注意的是String的类型需要和属组中元素的类型一致
		for (String i:brr){
			System.out.println(i);
		}
    }
}

排序:

public class sort {
    public static void main(String[] args) {
        int arr[]= {52,44,33,99};
        //让属组从小到大排序
        for(int i=0;i<arr.length;i++){
            for(int x=0;x< arr.length;x++){
                if(arr[i]<arr[x]){
                    int num=arr[i];
                    arr[i]=arr[x];
                    arr[x]=num;          
                }
            }
        }
        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }
    }
}

二维及多维

二维数组可以理解为数组中的数组。

public class Demo1{
	pubic static void main(Strint args[]){
		//具体元素
		int numbers[]={{100},{60,80},{90}};
		//只定义个数
		int arr[][]=new int[5][5];
	}
}
方法重载(概念):
  1. 方法名相同

  2. 参数列表不同

9、类和对象

定义:

  • 类:将某一类事物中所有的共同点抽离出来,形成一个模板,而这个模板我们在编程中称为类,需要注意的是类只是个概念

  • 对象:依托于某个模板(类)而产生的某个个体,个体是真实存在的

类的定义

类的定义其实并不复杂,涉及到的关键字也只有一个class

public class Demo{

}

对象

类似于现实世界一样,只有类没有对象是没有任何用途的。类似于我们都知道钱的概念,可是在你没有拿到一张纸人民币之前,这个概念可能对你没有任何用途。

在编程中对象的主要作用

  • 方便我们更好的去使用某些功能,隐藏一些不必要暴漏在外面的细节,使我们的程序更加安全

  • 将我们类中的数据全部加载到内存中,我们可以通过内存地址指向类中的某一个成员

对象的创建方式:new 该类的构造器();【类的构造器其实就是和类名相同的一个方法】。

public class User{

}
public class Demo1{
    public staticvoid main(String args[]){
        //创建User类的对象
        new User();
    }
}

包机制

作用:

  • 为了解决类文件的命名冲突

  • 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

  • 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类

包名的定义方式: src右键,点击New,再选择Package,之后再新建一个class文件

使用包名:

  • 第一种使用方式:int c=demo1.test01.add(10,20) 【分别是包名,类名,方法名】

    	//方法的调用
    	int c=demo1.Test01.add(10,20);
    }
  • 统一在类文件的开始位置,同时低于package的定义,import demo1.Test01;

    import demo1.Test01;
    public class Demo2{
        public static void main(Strint[] args) {
    	//方法的调用
    	int c=Test01.add(10,20);
        System.out.println(c);
    	}
    }

包名的定义

  • 一般采用公司的域名反过来写。例如:com.coder123.项目名称.功能名词.类名

  • 包名的所有字母全部小写

关键字import

为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用”import“语句可完成此功能。

在Java源文件中import语句应位于 package 语句后,所有类的定义之前,可以没有,也可以有多条,其语法格式为:

import 包名.类名

完整案例

package com.coder163.demo1

import com.coder163.domain

public class Boss{
	public void payEmployee(Employee e){
	e.mailCheck();
	}
}

访问权限

我们遵循的法则:隐藏细节,提供特定的访问方式(读、获取和写、设置)

关键字使用频率控制范围
public:公共的常用随意调用
private:私有的常用当类或者类的成员被private修饰时,表示该类的成员只能在本类中使用,一般情况下成员变量会使用private修饰
protected:受保护的较少只能在同一个包中调用
Default:默认的一般如果使用的话,在声明部分不要书写任何访问权限

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ys52IT

你的鼓励将是我创作的最大动力你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值