【JavaSE】之基础语法

简介: 【JavaSE】之基础语法

前言


本文为【JavaSE】基础语法相关介绍,Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~


一、注释

//单行注释
/* 
多行
注释 
*/
/**
* @Description    文档注释
* @author 某某    
*/

二、标识符和关键字


1.标识符定义


标识符定义:


包名、类名、方法名、参数名、变量名等,这些符号被称为标识符

标识符可以由字母、数字、下划线(_)和美元符号($)组成

标识符不能以数字开头,不能是java中的关键字

首字符之后可以是字母(A­Z 或者 a­z),美元符($)、下划线(_)或数字的任何字符

标识符对大小写敏感


正确的标识符:

Username、username123、user_name、_userName、$username

不正确的标识符:


2.Java标识符规则


包名所有字母必须小写。例如:cn.itcast.test 类名和接口名每个单词的首字母都要大写。例如:ArrayList

常量名所有的字母都大写,单词之间用下划线连接。例如:DAY_OF_MONTH

变量名和方法名的第一个单词首字母小写,从第二个单词开始,每个单词首字母大写。例如:lineName、getLingNumber

在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。例如:使用userName表示用户名,password表示密码。


3.Java关键字


下面列出了 Java 关键字。这些保留字不能用于常量、变量、和任何标识符的名称

所有的关键字都是小写

程序中的标识符不能以关键字命名

const和goto是保留字关键字,虽然在java中还没有任何意义,但在程序中不能用来作为自定义的标识符

true、false和null不属于关键字,它们是一个单独标识类型,不能直接使用


类别 关键字 说明
访问控制 private 私有的
访问控制 protected 受保护的
访问控制 public 公共的
类、方法和变量修饰符 abstract 声明抽象
类、方法和变量修饰符 class
类、方法和变量修饰符 extends 扩充,继承
类、方法和变量修饰符 final 最终值,不可改变的
类、方法和变量修饰符 implements 实现(接口)
类、方法和变量修饰符 interface 接口
类、方法和变量修饰符 native 本地,原生方法(非 Java 实现)
类、方法和变量修饰符 new 新,创建
类、方法和变量修饰符 static 静态
类、方法和变量修饰符 strictfp 严格,精准
类、方法和变量修饰符 synchronized 线程,同步
类、方法和变量修饰符 transient 短暂
类、方法和变量修饰符 volatile 易失
程序控制语句 break 跳出循环
程序控制语句 case 定义一个值以供 switch 选择
程序控制语句 continue 继续
程序控制语句 default 默认
程序控制语句 do 运行
程序控制语句 else 否则
程序控制语句 for 循环
程序控制语句 if 如果
程序控制语句 instanceof 实例
程序控制语句 return 返回
程序控制语句 switch 根据值选择执行
程序控制语句 while 循环
错误处理 assert 断言表达式是否为真
错误处理 catch 捕捉异常
错误处理 finally 有没有异常都执行
错误处理 throw 抛出一个异常对象
错误处理 throws 声明一个异常可能被抛出
错误处理 try 捕获异常
包相关 import 引入
包相关 package
基本类型 boolean 布尔型
基本类型 byte 字节型
基本类型 char 字符型
基本类型 double 双精度浮点
基本类型 float 单精度浮点
基本类型 int 整型
基本类型 long 长整型
基本类型 short 短整型
变量引用 super 父类,超类
变量引用 this 本类
变量引用 void 无返回值
保留关键字 goto 是关键字,但不能使用
保留关键字 const 是关键字,但不能使用
保留关键字 null


三、数据类型


1.Java基本数据类型


位(bit):计算机内部数据储存的最小单位,1100 0111是一个八位二进制数

字节(byte):是计算机中处理数据的基本单位,习惯上用大写B来表示

1B(byte,字节) = 8bit(位)

字符:是指计算机中使用的字母、数字、字和符号


1bit表示1位, 1Byte = 8bit, 1024B = 1KB, 1024KB = 1MB,1024MB = 1GB


基本类型 占据空间大小 取值范围 默认值
boolean 不确定 true/false 0
byte 一个字节 -128——127 0
short 2个字节 -215-215-1 0
int 4个字节 -231-231-1 0
long 8个字节 -263-263-1 0L
float 4个字节 -2128-2128 0.0F
double 8个字节 -21024-21024 0.0D
char 2个字节 \u0000


2.Java引用数据类型


类、接口、数组 String Byte Integer ……


四、类型转换


//---------强制转换
//强制转换  高-->低
int i = 128;    
byte b = (byte)i;  // -128  内存溢出
//---------自动转换
//自动转换  低-->高
int i2 = 128;
double d = i2; 
//精度丢失
System.out.println((int)23.7); //输出23
System.out.println((int)-45.89f); //输出-45
char c = 'a';
int d = c+1;
System.out.println(d);        // 输出 98
System.out.println((char)d);  // 输出b

转换中需要注意的问题:

不能对布尔类型进行转换

不能把对象类型转换为不相干的类型

再把高容量转换到低容量时后,强制转换

转换的时候可能存在内存溢出,或精度问题!

JDK7新特性,数字之间可以用下划线间隔:

   int money = 10_0000_0000;  // int范围  -2^31 ~ 2^31-1
   System.out.println(money);    // 输出1000000000

五、变量、常量、作用域


1.变量


Java语言支持的变量类型有:

类变量:独立于方法之外的变量,用 static 修饰。

实例变量:独立于方法之外的变量,不过没有 static 修饰。

局部变量:类的方法中的变量。

public class Variable{
  //类变量 static 
  static int allClicks=0;    // 类变量
   //实例变量:从属于对象,如果不自行初始化 数值默认值为0 0.0,
   //boolean 默认为 false
   //除了基本类型,其他默认都为null
  String str="hello world";  // 实例变量
  public void method(){
       //必须声明和初始化值
      int i =0;  // 局部变量
  }
}

2.变量的命名规范


所有变量、方法名、类名:见名知意!

类成员变量:首字母小写和驼峰原则:userName,除了第一个单词以外,后面的单词首字母都大写。lastName

局部变量:首字母小写和驼峰命名

常量:大写字母和下划线:MAX_VALUE

类名:首字母大写和驼峰原则,GoodMan

方法名:首字母小写和驼峰原则:run() getUser()


3.常量


  • 常量:初始化后不能在改变的值!不会变动的值。
  • 所谓常量可以理解为一种特殊的变量,它的值设定以后,在程序运行期间不允许被改变。
final 常量名 = 值
final double PI = 3.14;
常量常用大写字母来表示。

六、基本运算符


1.java语言支持的运算符总览


算数运算符:+,-,*,/,%,++,—

赋值运算符:=

关系运算符:>,<,>=,<=,==,!=,instanceof

逻辑运算符:&&,||,!

条件运算符: ?

扩展赋值运算符:+=,-=,/=,*=


        long a = 1153132165465155L;
        int b = 1234;
        short c = 10;
        byte d = 1;
        //相加会自动到大类型
        System.out.println(a+b+c+d); //类型 long
        System.out.println(b+c+d);  //类型 int
        System.out.println(c+d);    //类型 short

2.自增,自减运算符

        //++ -- 自增,自减  一元运算符
        int a = 3;
        int b = a++; //执行代码后,先给b赋值,再自增
        //a++ a = a+1;
        int c = ++a; //执行完这行代码前,先自增,再给c赋值
        System.out.println(a);  //输出5
        System.out.println(b);  //输出3
        System.out.println(c);  //输出5

3.逻辑运算符

//与(and) 或(or) 非(取反)
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));

4.位运算符

/*
            A = 0011 1100
            B = 0000 1101
            ------------------
            A&B = 0000 1100  与运算
            A|B = 0011 1101  或运算
            A^B = 0011 0001  异或,相同为0,不同为1
            ~B  = 1111 0010  取反
            2*8 = 16    ---> 2*2*2*2
            <<  左移运算  *2
            >>  右移运算  /2
            0000 0000    0
            0000 0001    1
            0000 0010    2
            0000 0100    4
            0000 1000    8
            0001 0000    16
         */
        System.out.println(2<<3);  //输出16

5.运算的特殊情况

int a =10;
int b =20;
a+=b;   // a = a+b;
System.out.println(a); //输出 30
a-=b;   // a = a-b;
System.out.println(a); //输出 10
System.out.println("===============");
//对于String字符串类型的,当进行+时,会自动把所有类型转换成String类型
//字符串在前面,后面的都转换成了String类型所以输出1020
System.out.println(""+a+b); //输出1020
//这时先进行 a+b的操作算成30 然后 30再转换成String类型,所以输出30
System.out.println(a+b+""); //输出30

6.三元运算符


// x ? y :z
//如果x==true,则结果为y,否则结果为z
int score = 80;
String type = score>60?"及格":"不及格";
System.out.println(type); // 及格

七、包机制


为了更好的组织,JAVA提供了包机制,用于区别类名的命名空间。

包语句的语法格式为: package com..

package必须发放在最上面(第一行)

一般利用公司域名倒置作为包名

为了能够使用某一个包的成员,我们需要再java程序中明确导入改包。


使用import语句可完成此功能;如:


import java.util.Date;


八、JAVADoc生成文档


javadoc命令是用来生成java文档的


  1. 首先编辑java代码
package basic;
/**
 1. @author Console__
 2. @version 1.0.0
 3. @ClassName Doc.java
 4. @Description 测试JavaDoc
 5. @createTime 2021年02月24日 16:32:00
 */
public class Doc {
    String name;
    /**
     * @author Console__
     * @param name
     * @return 返回某某
     */
    public String test(String name){
        name = "某某";
        return name;
    }
}

进入到程序的文件夹,在路径栏中直接输出cmd

3c66da2862e249fe8e4e5f73bcc42463.png

在命令行中输入 以下内容,注意Doc.java换成你的java文件名,然后回车

7cb5879c654942bca264f769ad0689ce.png

到源代码目录中会发现自动生成了很多html页面

7cb365f9f6e14be9b9c8c12de918d5ef.png

点击index.html进入文档页面

bc152cd7f4af4d769b325f58b8673776.png


九、


后记


本文下接:XXXX

Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~

相关文章
|
12月前
|
消息中间件 网络协议 NoSQL
1000W长连接,如何建立和维护?千万用户IM 架构设计
最近有小伙伴在面试 美团,又遇到了 IM 架构问题。小伙伴支支吾吾的说了几句,面试挂了。 所以,尼恩给大家做一下系统化、体系化的梳理,使得大家内力猛增,可以充分展示一下大家雄厚的 “技术肌肉”,**让面试官爱到 “不能自已、口水直流”**,然后实现”offer直提”
|
8月前
|
机器学习/深度学习 机器人 网络架构
YOLOv11改进策略【模型轻量化】| 替换轻量化骨干网络:ShuffleNet V1
YOLOv11改进策略【模型轻量化】| 替换轻量化骨干网络:ShuffleNet V1
475 11
YOLOv11改进策略【模型轻量化】| 替换轻量化骨干网络:ShuffleNet V1
|
12月前
|
缓存 算法 Java
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
这篇文章详细介绍了Java虚拟机(JVM)中的垃圾回收机制,包括垃圾的定义、垃圾回收算法、堆内存的逻辑分区、对象的内存分配和回收过程,以及不同垃圾回收器的工作原理和参数设置。
545 4
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
|
11月前
|
前端开发 Java 测试技术
多商户入驻系统开发源码案例
多商户入驻系统的开发涉及需求分析、系统架构设计、开发实现、测试优化及部署上线等关键步骤。项目需明确核心功能,选择合适的技术栈,确保系统的稳定性、扩展性和用户体验,最终实现商业目标和长期成功。
|
12月前
|
存储 开发框架 Java
什么是Spring?什么是IOC?什么是DI?IOC和DI的关系? —— 零基础可无压力学习,带源码
文章详细介绍了Spring、IOC、DI的概念和关系,解释了控制反转(IOC)和依赖注入(DI)的原理,并提供了IOC的代码示例,阐述了Spring框架作为IOC容器的应用。
739 1
什么是Spring?什么是IOC?什么是DI?IOC和DI的关系? —— 零基础可无压力学习,带源码
|
11月前
|
XML 缓存 Java
搞透 IOC、Spring IOC ,看这篇就够了!
本文详细解析了Spring框架的核心内容——IOC(控制反转)及其依赖注入(DI)的实现原理,帮助读者理解如何通过IOC实现组件解耦,提高程序的灵活性和可维护性。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
|
12月前
|
存储 Java 程序员
SpringIOC和DI的代码实现,Spring如何存取对象?@Controller、@Service、@Repository、@Component、@Configuration、@Bean DI详解
本文详细讲解了Spring框架中IOC容器如何存储和取出Bean对象,包括五大类注解(@Controller、@Service、@Repository、@Component、@Configuration)和方法注解@Bean的用法,以及DI(依赖注入)的三种注入方式:属性注入、构造方法注入和Setter注入,并分析了它们的优缺点。
191 0
SpringIOC和DI的代码实现,Spring如何存取对象?@Controller、@Service、@Repository、@Component、@Configuration、@Bean DI详解
|
边缘计算 运维 监控
阿里云超大规模边缘容器云助力应用全球化部署
第十四届亚太内容分发大会,阿里云邓茜演讲内容分享
254 0
|
12月前
|
XML Java 应用服务中间件
SpringMvc的具体操作,如何配置springMvc(完整教程)
一个完整的Spring MVC配置教程,包括引入依赖、配置Tomcat、设置DispatcherServlet、编写Spring配置文件、创建Controller以及测试结果。
1221 0
SpringMvc的具体操作,如何配置springMvc(完整教程)
|
关系型数据库 MySQL Linux
Centos7下在线安装mysql
【7 月更文挑战第 2 天】Centos7、mysql