关键词

常用关键字53个(含2个保留字):

1、保留关键字(2个)

const ——常量

常数:用于修改字段或局部变量的声明。

goto——转到

指定跳转到标签,找到标签后,程序将处理从下一行开始的命令

2、访问修饰符的关键字(3个)

public (公有的)

可跨包

protected (受保护的)

当前包内可用

private (私有的)

当前类可用

3、定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象(6个)

class (类):

public class A(){}花括号里是已实现的方法体,类名需要与文件名相同

interface (接口):

public interface B(){}花括号里有方法体,但没有实现,方法体句子后面是英文分号;结尾

abstract (声明抽象):

public abstract class C(){}介于类与接口中间,可以有,也可以没有已经实现的方法体

implements (实现):

实现接口public class A implements B(){}

extends (继承):

继承类public class A extends D(){}

new (创建新对象):

A a=new A();A表示一个类

4、包的关键字(2个)

package (定义包的关键字):

将所有相关的类放在一个包类以便查找修改等

import (引入包的关键字):

引入包

5、数据类型的关键字(12个)

byte (字节型):8bit

char (字节型):16bit

short (短整型):16bit

int (整型):32bit

long (长整型):64bit

float (浮点型):32bit

double (双精度):64bit

boolean (布尔型):

true (真)

false (假)

void (无返回):

public void A(){}其他需要反回的经常与return连用

null (空值)

6、条件循环(流程控制)(12个)

if (如果) :

if(条件语句{执行代码}

如果条件语句成立,就开始执行{}里面的内容

else (否则,或者) :

常与if连用,用法相同:

if(...){...}else{...}

while (当什么时候):

while(条件语句){执行代码}

do (运行) :

通长与while连用 do {} while()

for(带序号的遍历):

for(初始化循环变量;判断条件;循环变量值{}

break (跳出循环):

直接跳出循环,执行循环体后的代码

continue (继续) :

中断本次循环,并开始下一轮循环

switch (选择结构):

代码如下

switch(表达式){
case 常量表达式1:语句1;
...
case 常量表达式2:语句2;
default:语句;

case (匹配switch的表达式里的结果) :同上

default (默认): default就是如果没有匹配的case就执行它, default并不是必须的

return (返回) :

返回方法指定类型的值或结束方法的执行

instanceof(实例):

一个二元操作符,和==、>、<是同一类的。测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据

7、修饰方法、类、属性和变量(9个)

static(静态的):

  • 属性和方法都可以用static修饰,直接使用【类名.属性和类名.方法名】。

  • 只有内部类可以使用static关键字修饰,调用直接使用【类名.内部类类名】进行调用。

  • static可以独立存在,静态代码块,初始化静态变量。

final(最终的不可被改变):

  • 方法和类都可用final来修饰;
  • final修饰的类是不能被继承的;
  • final修饰的方法是不能被子类重写。
  • 常量的定义:final修饰的属性就是常量

super(调用父类的方法):

常见public void paint(Graphics g){super.paint(g);...}

this(当前类的对象):

调用当前类中的方法(表示调用这个方法的对象)this.addActionListener(al):等等

native(本地):

native 关键字可以应用于方法,以指示该方法是用 Java 以外的语言实现的。

strictfp(严格,精准,strict float point 精确浮点):主要针对浮点数运算

  • 在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令人满意。

  • 一旦使用了strictfp来声明一个类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。因此如果想让浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。

  • 可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字

transient(短暂的) 美[ˈtrænziənt],修饰字段,该字段不被序列化

对象在持久化或网络传输时,都需要序列化,而有一些没有必要出现在序列化结果中的字段,就可以添加关键词 transient

synchronized(线程,同步):

一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块

volatile(易变的) 美[ˈvɑ:lətl]

  • volatile 关键字用于表示可以被多个线程异步修改的成员变量。
  • 在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比sychronized关键字更轻量级的同步机制。
  • 声明变量是 volatile 的,JVM 保证了每次读变量都从内存中读,跳过 CPU cache 这一步,保证读到的都是内存中的值。
  • 使用场景:1.状态标记量 2,单例中的double check

8、错误处理(5个)

try 尝试执行,可能有异常

{ //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 }

catch 捕捉异常

{ //除非try里面执行代码发生了异常,否则这里的代码不会执行 }

finally 不管是否有异常都会执行

{ //不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally }

throw 语句 抛出一个异常

语法:throw (异常对象);

throw e;

throws是声明方法可能抛出的异常。

(用在声明方法时,表示该方法可能要抛出异常)

如下例子:

public void doA(int a) throws Exception1,Exception3{......}

9、其它(2个)

enum(枚举,列举)

assert(断言)


标识符

标识符就是用于给 Java 程序中变量、类、方法等命名的符号。

按照【阿里巴巴Java开发手册】执行比较好。下面摘抄几个:

1. 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。

反例:name / name / $name / name / name$ / name

2. 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。

说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式也要避免采用。

正例:alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。

反例:DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3

3. 【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID 等。

4. 【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从驼峰形式。

正例: localValue / getHttpMessage() / inputUserId

5. 【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。

6. 【强制】抽象类命名使用 Abstract 或 Base 开头,如AbstractCollection;

异常类命名使用 Exception 结尾,如IOException;

测试类命名以它要测试的类的名称开始,以 Test 结尾,如HomeControllerTest。

7. 【强制】类型与中括号紧挨相连来表示数组。

正例:定义整形数组 int[] arrayDemo;

反例:在 main 参数中,使用 String args[]来定义。

8. 【强制】POJO 类中布尔类型的变量,都不要加 is 前缀,否则部分框架解析会引起序列化错误。

反例:定义为基本数据类型 Boolean isDeleted 的属性,它的方法也是 isDeleted(),RPC框架在反向解析的时候,“误以为”对应的属性名称是 deleted,导致属性获取不到,进而抛出异常。

9. 【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。

正例:应用工具类包名为 com.alibaba.ai.util、类名为 MessageUtils(此规则参考 spring的框架结构)

10. 【强制】杜绝完全不规范的缩写,避免望文不知义。

反例:AbstractClass“缩写”命名成 AbsClass;condition“缩写”命名成 condi,此类随意缩写严重降低了代码的可阅读性。


运算符

算术运算符

操作符	描述
+ 加法
- 减法
* 乘法
/ 除法
% 取余
++ 自增
-- 自减

关系运算符

运算符	描述
== 检查如果两个操作数的值是否相等,如果相等则条件为真。
!= 检查如果两个操作数的值是否相等,如果值不相等则条件为真。
> 检查左操作数的值是否大于右操作数的值,如果是那么条件为真。
< 检查左操作数的值是否小于右操作数的值,如果是那么条件为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。

位运算符

操作符	描述
& 如果相对应位都是1,则结果为1,否则为0
| 如果相对应位都是0,则结果为0,否则为1
^ 如果相对应位值相同,则结果为0,否则为1
~ 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
<< 按位左移运算符。左操作数按位左移右操作数指定的位数。
>> 按位右移运算符。左操作数按位右移右操作数指定的位数。
>>> 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

逻辑运算符

操作符	描述
&& 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。
|| 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。
! 称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。

赋值运算符

操作符	描述
= 简单的赋值运算符,将右操作数的值赋给左侧操作数
+= 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数
-= 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数
*= 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数
/= 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数
(%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数
<<= 左移位赋值运算符
>>= 右移位赋值运算符
&= 按位与赋值运算符
^= 按位异或赋值操作符
|= 按位或赋值操作符

其他运算符

条件运算符(?:)

条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
variable x = (expression) ? value if true : value if false
比如 b = (a == 1) ? 20 : 30;

instanceof 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
instanceof运算符使用格式如下: ( Object reference variable ) instanceof (class/interface type)
比如: boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真

字面量

字面量是指由字母,数字等构成的字符串或者数值,它只能作为右值出现,所谓右值是指等号右边的值,

如:int a=123这里的a为左值,123为右值。

参考

java基础-03基本语法的更多相关文章

  1. JAVA基础1(语法)

    一.标识符和关键字 在程序中用于定义名称的都为标识符,如文件名称.类名称.方法名称或变量名称等. 在Java中标识符的定义格式由字母.数字._(下划线),$所组成,其中不能重复,不能以数字开头,不能是 ...

  2. java基础四 基本语法

    java基本语法: 1:java严格区分大小写,好比main和Main是完全不同的概念. 2:一个java的源文件中可以定义多个类,但是其中最多只能一个类被定义成public类,若源文件中包括publ ...

  3. java基础03变量和基本数据类型

    package cn.bdqn.test; /** * * @author 小豆腐 * * 变量:会变化的量?? * 一个数据在内存中存储空间的表示!在运行期间可以动态改变! * * 关键字:在jav ...

  4. Java基础_基本语法

    Java基本语法 一:关键字 在Java中有特殊含义的单词(50). 二:标志符 类名,函数名,变量名的名字的统称. 命名规则: 可以是字母,数字,下划线,$. 不能以数字开头. 见名之意. 驼峰规则 ...

  5. 【Java基础】基本语法-程序流程控制

    基本语法-程序流程控制 程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: 顺 ...

  6. 【Java基础】基本语法-变量与运算符

    基本语法-变量与运算符 关键字和保留字 关键字定义:被 Java 语言赋予了特殊含义,用做专门用途的字符串(单词). 关键字特点:关键字中所有字母都为小写. 用于定义数据类型:class.interf ...

  7. Java基础00-基础语法3

    1. 注释 1.1 注释概述 1.2 注释分类 1.3 示例 2. 关键字 2.1 关键字概述 2.2 关键字的特点 3. 常量 3.1 常量的概述 3.2 常量分类 以上常量除了空常量都是可以直接输 ...

  8. Java基础之编程语法(二)

    1.常量: 整型:整数,4个字节. 长整型:整数,8个字节.以L结尾. 单精度浮点数:小数,4个字节.以F结尾. 双精度浮点数:小数,8个字节. 布尔:只有两个值,真(true)或假(false),1 ...

  9. Java基础之编程语法(一)

    1.基本格式 所有Java代码都应该在一个class中. Java是严格区分大小写的. Java是一种自由格式的语言.Java代码分为结构定义语句和功能执行语句,功能执行语句最后必须以分号结束. 2. ...

随机推荐

  1. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十五║初探SSR服务端渲染(个人博客二)

    缘起 时间真快,现在已经是这个系列教程的下半部 Vue 第 12 篇了,昨天我也简单思考了下,可能明天再来一篇,Vue 就基本告一段落了,因为什么呢,这里给大家说个题外话,当时写博文的时候,只是想给大 ...

  2. 从零开始搭建一个规范的vue-cli 3.0项目

    在这一集我们将讲到如何从安装vue-cli开始,到新建一个本地项目,再到vscode中关于eslint的配置,以及本地项目关联公司远程项目的基本操作. 一,初始化本地项目 1,首先,全局安装vue-c ...

  3. 数据结构系列(4)之 B 树

    本文将主要讲述另一种树形结构,B 树:B 树是一种多路平衡查找树,但是可以将其理解为是由二叉查找树合并而来:它主要用于在不同存储介质之间查找数据的时候,减少 I/O 次数(因为一次读一个节点,可以读取 ...

  4. WKWebView讲解与使用

    随着IOS开发的应用,对于网页嵌入也越来越多了,在IOS 8之前我们使用UIWebView展示详情页,自从IOS 8之后就出现了WKWebView,相比UIWebView,WKWebView优化了较多 ...

  5. C#的dapper使用

    Dapper是一款轻量级ORM工具(Github).如果你在小的项目中,使用Entity Framework.NHibernate 来处理大数据访问及关系映射,未免有点杀鸡用牛刀.你又觉得ORM省时省 ...

  6. 了解spring

    一.spring简介 Spring是一个JavaEE轻量级的一站式的开发框架(spring的可插拔特性,企业用于整合其他框架)轻量级:使用最少的代码启动程序,根据所需选择功能选择模块使用一站式:提供了 ...

  7. springMVC报404,没有显示地址

    正常报404会显示你的错误地址信息,而针对本问题 如果你使用的是springMVC框架,这就代表你的请求被拦截了

  8. 【spring实战第五版遇到的坑】4.2.3中LDAP内嵌服务器不启动的问题

    按照4.2.3中的指导一步一步的去做,在登录界面进行登录时,报错了,报错信息是LDAP服务器连接不上. 后来查了一些资源发现还需要加入一些其他的依赖,如下: <dependency> &l ...

  9. Java 工厂模式(一)— 工厂方法(Factory Method)模式

    一.工厂方法(Factory Method)模式: 1.什么是工厂方法模式? 工厂方法模式是类的创建型模式,又叫做虚拟构造子模式或者多态工厂模式.它的意义是创建产品对象的工厂接口,将实际创建工作推迟到 ...

  10. vue学习之ajax 简单快速使用axios

    vue2.x 推荐使用axios 1.首先使用安装 npm install axios -S 2.在哪用在哪引入 import axios from 'axios' 或则在main.js 中引入 在申 ...