JavaSE基础-(2)Java基础语法:Hello World

系列文章目录

JavaSE基础-(1)面向对象特征
JavaSE基础-(2)Java基础语法:Hello World
JavaSE基础-(3)类和对象
JavaSE基础-(4)数据类型
JavaSE基础-(5)流程控制
JavaSE基础-(6)异常处理
JavaSE基础-(7)修饰符


ps:以上文章属于博主 菜菜bu菜 专栏 《今天开始学Java》| 欢迎关注收藏哟~

一、第一个Java程序

Hello World 用java来跟世界说你好

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

static是比较难以理解的一个关键字,在《Java编程思想》有一句话: “static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途”。简单来说,被static修饰的不需要依赖于任何对象就可以进行访问。
来源于:RUNOOB.COM
来源于:RUNOOB.COM
但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。

二、基本语法

为增强程序可读性,Java有以下的约定:

  1. 类、接口:通常使用名词,且单词首字母要大写(例:HelloWorld )
  2. 方法:通常使用动词,首字母小写,其后用大写分割每个单词(驼峰法:eatFoodFunction)
  3. 常量:全部大写,单词之间用下划线分割(例:PI )
  4. 变量:通常用名词,其后用大写分割每个单词,避免$符号

同时要注意以下几点:

  1. 大小写敏感,Hello与hello在java中是不一样的
  2. 不能使用关键字
  3. 见名知意!尽量一看到变量名就知道这个变量代表什么意思
  4. 源文件的文件名与公共类名一致,并保存为.java
  5. java中基本数据类型:char 2字节(在字符串中一个英文字符或者数字、英文符号等占一个字节)
  6. 静态导入:当使用同一包下静态方法较多时,可以采用静态导入的方法
  7. 构造函数不能使用递归
  8. 递归函数可以有返回值也可以没有
  9. 任何类都可以声明为抽象
  10. 注意:一个类只能具有“ final”,“ abstract”和“ public”作为修饰符
  11. 数字是指0~9,字母指大小写英文字母、下划线(_)和美元符号($),也可以是Unicode字符集中的字符,如汉字
  12. 包(其实就是文件夹,用于对类进行管理):全部小写,多级包用点隔开。一般公司域名反写
  13. 不要使用中文汉字!
  14. 多敲多思考!!!

三、Java注释

Java 支持单行以及多行注释,注释中的字符将被 Java 编译器忽略。
实例:

/**
 * 多行注释
 * @Author:菜菜bu菜
 */

//单行注释:这是一个Java入门程序
public class HelloWorld {
	 public static void main(String[] args) {
		 /* 这个也是单行注释 输出 Hello World*/
	        System.out.println("Hello World"); 
	    }
}

四、关键字&标识符

关键字概念及特征

概念:

  • Java关键字是事先定义好的对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。

特征:

  • 完全小写
  • 在高级编译器当中有特殊颜色,例如在增强版记事本中(例如Notepad++)有特殊颜色

关键字大全

java中有50个关键字3个保留字,均不能用来命名标识符,分别是
关键字:

关键字说明关键字说明关键字说明关键字说明关键字说明
private私有的protected受保护的public公共的default默认abstract声明抽象
class声明类extends继承final最终的implements实现(接口)interface声明接口
native原生方法(非 Java 实现)new创建static静态strictfp精准synchronized线程
transient短暂volatile易失break跳出循环caseswitch 选择continue继续
default默认do执行else否则for循环if如果
instanceof实例return返回switch根据值选择执行while循环assert断言表达式是否为真
catch捕捉异常finally有没有异常都执行throw抛出一个异常对象throws声明一个异常可能被抛出try捕获异常
import引入packageboolean布尔型byte字节型char字符型
double双精度浮点float单精度浮点int整型long长整型short短整型
super父类this该类void无返回值goto关键字const关键字

保留字:true、false、null,保留字是java预留的关键字

标识符是什么

凡是可以由自己命名的地方都称为标识符.

  • 例: 项目名 ,包名 ,类名 .方法名

标识符命名规范

  • ① 不能是关键字
  • ② 所有标识符必须由一个字母(a~z 或 A~Z)或数字0-9,$和_
  • ③ 不能以数字开头
  • ④ 区分大小写,驼峰命名:FirstName、UserName
  • ⑤ 包名全部小写,类名全部大驼峰式
  • ⑥ 见名知意

例如:项目名:writetest 包名:com.cai.test 类名:TestDemo

五、常量&变量

常量:程序运行过程中不会改变的量。(字符 ‘b’、字符串 ‘abc’、整数 1、布尔 true|false)
变量:运行过程中可以改变的量。(局部变量、类变量(静态变量)、成员变量(非静态变量))
作用域 : 从定义变量的一行开始,一直到直接所属的大括号结束。

基本数据类型

类型字节数最大存储数据量数据范围
byte8位255-128~127
short16位65536-32768~32767
int32位2的32次方减1-2的31次方到+2的31次方减1
long64位2的64次方减1-2的63次方到+2的63次方减1
float32位3.4e-45~1.4e38直接赋值时必须在数字后加上f或F
double64位4.9e-324~1.8e308赋值时可以加d或D也可以不加
boolean1位默认值是 false只有true和false两个取值
char16位存储Unicode码用单引号赋值

数据类型转换

自动类型转换(隐式):代码不需要进行特殊处理,自动完成,小到大

long num1 = 2021112

强制类型转换(显式):代码需要进行特殊的格式处理,不能自动完成,大到小

int num=int2021112

注意

  • 1.强制类型转换有可能发生精度损失、数据溢出。

  • 2.byte / short / char这三种类型都可以发生数学运算,例如加法“+”.

  • 3.byte/short/char这三种类型在运算的时候,都会被首先向上提升成为int类型,然后再计算。符合ASCII编码表。

六、运算符&表达式

在这里插入图片描述

算术运算符

算术运算符:常见的四则运算符、自增、自减,它们的作用和在数学中的作用一样。

运算符描述例子
+1+1-2
*2-1=1
*2*5=10
/10/2=5
++自增int a=1;a++ or ++a =2
自减int a=1;–a or a-- =0
%取余 - 左操作数除以右操作数的余数24%=3

实例:

public class Test1{
    public static void main(String[] args){
        int a = 3;
        int b = 3;
        int x = 2*++a;
        int y = 2*b++;
        System.out.println("自增运算符前缀运算后a="+a+",x="+x);
        System.out.println("自增运算符后缀运算后b="+b+",y="+y);
    }
}

结果:

自增运算符前缀运算后a=4,x=8
自增运算符后缀运算后b=4,y=6

关系运算符

关系运算符:关系运算符有6种关系,分别为小于、大于、小于等于、大于等于、等于、不等于。比较的结果是一个布尔值( true 或 false )

运算符描述例子结果
>大于2>1true
>=大于等于2>=1true
<小于2<1false
<=小于等于2<=1true
==等于2==1false
!=不等于2!=1true

逻辑运算符

逻辑运算符:主要用于进行逻辑运算,连接两个Boolean值,代表两个条件

假设布尔变量A为真,变量B为假

运算符描述例子结果
&&(A && B)false
II(AIIB)true
!(A && B)true
^异或2<=1(A ^ B)

异或:有且只能有一个为true

实例:

public class Test2 {
  public static void main(String[] args) {
     boolean a = true;
     boolean b = false;
     System.out.println("a && b = " + (a&&b));
     System.out.println("a || b = " + (a||b) );
     System.out.println("!(a && b) = " + !(a && b));
     System.out.println("(a^b) = " + (a ^ b));
  }
}

结果:

a && b = false
a || b = true
!(a && b) = true
(a^b) = true

赋值运算符

赋值运算符:基本的赋值运算符是“=”。他的优先级别低于其他的运算符,所以对该运算符往往最后读取。

运算符描述例子结果
=简单的赋值运算符,将右操作数的值赋给左侧操作数C = A + B将把A + B得到的值赋给C
+ =加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数C + = A等价于C = C + A
- =减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数C - = A等价于C = C - A
* =乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数C * = A等价于C = C * A
/ =除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数C / = AC 与 A 同类型时等价于 C = C / A(%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数
<< =左移位赋值运算符C << = 2等价于C = C << 2
>> =右移位赋值运算符C >> = 2等价于C = C >> 2
&=按位与赋值运算符C&= 2等价于C = C&2
^ =按位异或赋值操作符C ^ = 2等价于C = C ^ 2
I=按位或赋值操作符C I= 2等价于C = C I2

位运算符

位运算符:位操作是程序设计中对位模式按位或二进制数的一元和二元操作。在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多。

运算符描述例子结果
如果相对应位都是1,则结果为1,否则为0(A&B)-得到12,即0000 1100
I如果相对应位都是 0,则结果为 0,否则为 1- (AB)
^-如果相对应位值相同,则结果为0,否则为1-(A ^ B)-得到49,即 0011 0001
-按位取反运算符翻转操作数的每一位,即0变成1,1变成0。-(〜A)-得到-61,即1100 0011
<<-按位左移运算符。左操作数按位左移右操作数指定的位数-A << 2-得到240,即 1111 0000
>>-按位右移运算符。左操作数按位右移右操作数指定的位数-A >> 2-得到15即 1111
>>>-按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充- A>>>2-得到15即0000 1111

实例:

//来源https://www.runoob.com/java/java-operators.html
public class Test2 {
	  public static void main(String[] args) {
	     int a = 60; /* 60 = 0011 1100 */ 
	     int b = 13; /* 13 = 0000 1101 */
	     int c = 0;
	     c = a & b;       /* 12 = 0000 1100 */
	     System.out.println("a & b = " + c );
	 
	     c = a | b;       /* 61 = 0011 1101 */
	     System.out.println("a | b = " + c );
	 
	     c = a ^ b;       /* 49 = 0011 0001 */
	     System.out.println("a ^ b = " + c );
	 
	     c = ~a;          /*-61 = 1100 0011 */
	     System.out.println("~a = " + c );
	 
	     c = a << 2;     /* 240 = 1111 0000 */
	     System.out.println("a << 2 = " + c );
	 
	     c = a >> 2;     /* 15 = 1111 */
	     System.out.println("a >> 2  = " + c );
	  
	     c = a >>> 2;     /* 15 = 0000 1111 */
	     System.out.println("a >>> 2 = " + c );
	  }
	} 

结果:

a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 2  = 15
a >>> 2 = 15

其他运算符

条件运算符(?:):件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
实例:

public class Test3 {
	 public static void main(String[] args) {
         //x ? y : z
         //如果x==true,则结果为y,否则结果为z
         int score = 80;
         String type = score < 60 ? "不及格":"及格";//必须掌握
         //if
         System.out.println(type);
//         System.out.println(type);​
         int score1 = 50;
         String type1 = score < 60 ? "不及格":"及格"; //必须掌握
         //if​
         System.out.println(type1);
	 }
}

结果:

及格
及格

instanceof 运算符:该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
实例:

String name = "Test";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真

表达式

表达式:用运算符连起来的式子叫做表达式。由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。例如:20+5 。 又例如:a+b

在java中 以 ;结尾的一段代码,即为一个表达式

public class HelloWorld {
    public static void main(String[] args) {
        //每一句话都是一个表达式
        int i = 5;  //①
        System.out.println(5); //②
        ; //③
        ; //④
        ; //⑤
       
    }
}

七、数组

数组(array)是一种最简单的复合数据类型,它是有序数据的集合,数组中的每个元素具有相同的数据类型,可以用一个统一的数组名和不同的下标来确定数组中唯一的元素。根据数组的维度,可以将其分为一维数组、二维数组和多维数组等。

实例:

public class Test4 {
	public static void main(String args[]) {
		int data[] = new int[3]; /*开辟了一个长度为3的数组*/
		data[0] = 10; // 第一个元素
		data[1] = 30; // 第二个元素
		data[2] = 50; // 第三个元素
		for(int x = 0; x < data.length; x++) {
			System.out.println(data[x]); //通过循环控制索引
		}
	}
}

结果:

10
30
50

三种方法定义Java数组:

  1. 1.先声明   2.分配空间  3.赋值
  2. 1.声明并分配空间  2.赋值
  3. 1.声明并分配空间然后.赋值

实例:

public class Test5{
	public static void main(String args[]) {
			System.out.println("-----方法一-----");
		    int[] arr;    //先声明
	        arr=new int[5];  //分配空间
	        for(int i=0;i<5;i++)arr[i]=i*10;  //赋值
	        for(int i=0;i<5;i++){
	            System.out.println("arr["+i+"]="+arr[i]);
	        }
	        
	        System.out.println("-----方法二-----");
	        int[] arr1=new int[5];    //声明并分配空间
	        for(int i=0;i<5;i++)arr1[i]=i*10;    //赋值
	        for(int i=0;i<5;i++){
	            System.out.println("arr["+i+"]="+arr1[i]);
	        }
	        
	        System.out.println("-----方法三-----");
	        int[] arr2={20,68,34,22,34}; //声明并分配空间然后.赋值    等同于 int[] arr= new []{20,68,34,22,34};
	        for(int i=0;i<5;i++){ 
	        	System.out.println("arr["+i+"]="+arr2[i]); 
	        	}   
	}
}

结果:

-----方法一-----
arr[0]=0
arr[1]=10
arr[2]=20
arr[3]=30
arr[4]=40
-----方法二-----
arr[0]=0
arr[1]=10
arr[2]=20
arr[3]=30
arr[4]=40
-----方法三-----
arr[0]=20
arr[1]=68
arr[2]=34
arr[3]=22
arr[4]=34

八、方法

方法:Java方法是语句的集合,这个集合一起执行能完成某个功能。

语法格式:

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){ 
	 执行语句
	 ……… 
	 ……… 
	 return 返回值;
}

实例:

 public static void main(String[] args){
   int sum = add(1,2); // 1、2是实参
   System.out.println(sum); //输出3
 }
 // a、b属于形式参数,可以定义为任何符合命名规则的名字
 public static int add(int a, int b){
   return a+b;
 }

注:在设计程序的时候尽量把main方法中的内容都抽象出来,作为一个方法调用,因为main方法在栈中(先进后出)。

致谢

  1. Java中数组定义的三种方式
  2. Java中数组的定义与使用(一)
  3. Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
  4. 5、位运算符(7个):实例
  5. JAVA运算符及实例
  6. 浅谈Java变量赋值运算符及相关实例
  7. Java赋值运算符
  8. 逻辑运算符&& || !
  9. 逻辑运算符
  10. 什么是Java的表达式
  11. 表达式
  12. .runoob.com
  13. Java基础语法(总结篇)
  14. java中什么是方法以及方法怎么定义
  15. Java方法详解,什么是方法?
  • 36
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜菜bu菜

夏日炎炎 有你超甜

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

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

打赏作者

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

抵扣说明:

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

余额充值