基础语法

Posted liu的个人空间

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础语法相关的知识,希望对你有一定的参考价值。

java基础语法

注释:

​ 单行注释:

//这里是单行注释

​ 多行注释:

/*
	这里
	是
	多行
	注释
*/

​ 文档注释:

/**
	这里是文档注释
*/

关键字:

​ 关键字共50个,其中 const 和 goto 是保留字

​ true、false、null 不是关键字,是特殊值

标识符

​ 类名、变量名、方法名、包名等,称为标识符。

标识符命名规则

  1. 组成:英文大小写字母,数字,下划线_,美元符号$
  2. 不能以数字开头
  3. 严格区分大小写
  4. 不能使用Java的关键字(包含保留字)和特殊值

标识符命名规范

  1. 见名知意
  2. 类、接口名:每个单词首字母大写
  3. 变量、方法名:第二个单词开始首字母大写
  4. 包名:全小写
  5. 常量名:全大写

运算符

运算符:一种特殊的符号,用以表示数据的运算、赋值和比较等。

表达式:用运算符连接起来的式子

分类 运算符
算术运算符 +-*/%++--
赋值运算符 =+=-=*=/=%=
关系运算符 >>=<<===!=
逻辑运算符 &、`
条件运算符 (条件表达式)?结果1:结果2;
位运算符(了解) &、`
算术运算符 符号解释
+ 加法运算,字符串连接运算,正号
- 减法运算,负号
* 乘法运算
/ 除法运算,整数/整数结果还是整数
% 求余运算,余数的符号只看被除数
++-- 自增自减运算
赋值运算符 符号解释
= 将符号右边的值,赋值给左边的变量
+= 将符号左边的值右边的值进行相加操作,最后将结果赋值给左边的变量
-= 将符号左边的值右边的值进行相减操作,最后将结果赋值给左边的变量
*= 将符号左边的值右边的值进行相乘操作,最后将结果赋值给左边的变量
/= 将符号左边的值右边的值进行相除操作,最后将结果赋值给左边的变量
%= 将符号左边的值右边的值进行取余操作,最后将结果赋值给左边的变量
关系运算符 符号解释
< 比较符号左边的数据是否小于右边的数据,如果小于结果是true。
> 比较符号左边的数据是否大于右边的数据,如果大于结果是true。
<= 比较符号左边的数据是否小于或者等于右边的数据,如果大于结果是false。
>= 比较符号左边的数据是否大于或者等于右边的数据,如果小于结果是false。
== 比较符号两边数据是否相等,相等结果是true。
!= 不等于符号 ,如果符号两边的数据不相等,结果是true。
逻辑运算符 符号解释 符号特点
& 与,且 falsefalse
` `
^ 异或 相同为false,不同为true
! falsetrue,非truefalse
&& 双与,短路与 左边为false,则右边就不看
` `

条件运算符

int i = (2 > 3 ? 1 : 10); //意为: 若2>3为true,则将1赋值给i,否则将10赋值给i
位运算符 符号解释
& 按位与,当两位相同时为1时才返回1
` `
~ 按位非,将操作数的每个位(包括符号位)全部取反
^ 按位异或。当两位相同时返回0,不同时返回1
<< 左移运算符
>> 右移运算符
>>> 无符号右移运算符

位运算符的运算过程都是基于补码运算

位运算直接对二进制进行位移操作实现数值运算,所以运算效率高

运算符优先级

  1. 表达式不要太复杂
  2. 先算的可以使用()

标点符号

java中共有12个标点符号

  • 小括号()用于强制类型转换、表示优先运算表达式、方法参数列表
  • 大括号用于数组元素列表、类体、方法体、复合语句代码块边界符
  • 中括号[]用于数组
  • 分号;用于结束语句
  • 逗号,用于多个赋值表达式的分隔符和方法参数列表分隔符
  • 英文句号.用于成员访问和包目录结构分隔符
  • 英文省略号...用于可变参数
  • @用于注解
  • 双冒号::用于方法引用

常量

  • 值不可改的量

  • 通过final关键字定义

常量值

​ 直接在程序里写出来的值

变量

值可以发生改变的量

int i=0;
i=1;
i=2;
i=3;

变量三要素

​ 数据类型、变量名、当前值

变量的使用注意事项

  • 先声明后使用

    ​ 如果没有声明,会报“找不到符号”错误

  • 在使用之前必须初始化

    ​ 如果没有初始化,会报“未初始化”错误

  • 变量有作用域

    ​ 作用域为变量直接所属的范围内,如果超过作用域,也会报“找不到符号”错误

  • 在同一个作用域中不能重名

    ​ 同一个,不能同时声明两个同名变量

存储

存储单位

最小单位:位(bit)

最小的存储单位:字节(Byte)

存储范围

中文字符:

​ 变量:2字节

​ 常量:3字节

数据类型

基本数据类型(八种):byte, char, short, int, long, float, double, boolean

引用数据类型:类、数组、接口等

常量整数值都是int型

常量小数值都是double型

自动类型转换

注意:char只能转int!对照ASCII码表进行转换

强制类型转换

当高转低时需要进行强制类型转换

转换格式

数据类型 变量名 = (数据类型) 被强转数据值;

ES6 Class 基础语法

参考技术A

通过对比,可以明显看出来,es5 的写法是传统的面向对象,es6 的类,完全可以看作构造函数的另一种写法。
es6 写法,可以看到里面有一个 constructor 方法,这就是构造方法,而this 关键字则代表实例对象

在类的实例上调用方法,就是调用原型上的方法。
另外,类的内部所有定义的方法,都是不可枚举的,与 es5 的行为不一致

Per只在 Class 内部有定义。

如果内部没有用到,可以省略 Per,如:

es6 不提供私有方法,只能通过变通方法模拟实现。

类的方法内部如果含有 this,它默认指向类的实例。但是,必须非常小心,一旦单独使用该方法,很可能报错。

类默认就是严格模式,所以不需要使用 use strict 指定运行模式。

由于本质上,es6 的类只是 es5 的构造函数的一层包装,所以函数的许多特性都被 Class 继承,包括 name 属性。

上面可以看出,x 和 y 都是实例对象 person 自身的属性(定义在 this 变量上),所以 hasOwnProperty 方法返回 true,而 toString 是原型对象的属性(定义在 Person 类上),所以 hasOwnProperty 方法返回 false

p1 和p2 都是 Person 的实例,原型都是 Person.prototype,所以 proto 属性是相等的

以上是关于基础语法的主要内容,如果未能解决你的问题,请参考以下文章

BAT脚本基础语法

TS基础语法

Groovy基础语法详解

YAML最最基础语法

Python编程基础语法,你了解吗?

ES6 Class 基础语法