Java基础语法

Java—(后端开发)–语言基础–基础语法

1、关键字
关键字可以概括为有特定意义的字符串,java中的字符串都是小写

//八大基本数据类型
 byteshortintlong
 doublefloatcharboolean
//类关键字,接口关键字,继承关键字
classinterfaceextends
//流程控制
ifelsedowhileforswitchcasedefaultbreakcontinuereturntrycatchfinally//修饰符
publicprotectedprivatefinalvoidstatic、strict、abstracttransientsynchronizedvolatilenative//动作
packageimportthrowthrowsextendsimplementsthis、supper、instanceofnew//保留字
truefalsenullgotoconst

2、注释
注释:java 中的注释不会出现在任何可执行程序中
行内注释 : 在每行开头标价// ,注释内容是从// 开始到本行结尾
多行注释:使用/* 和*/注释界定符将一段比较常的注释括起来
文档注释:以/** 开始,以 / 结束,这种注释可以用来自动生成文档;
注意:在java 中,/**/ 注释不能嵌套,也就是说,不能简单的把代码用 / * 和
/括起来作为注释,因为这段代码本身可能也包含一个*/ 界定符
3、标识符
java 中用来给变量、方法、类、接口等命名的名称 称为标识符;(名称 = 标识符)

标识符的命名规则:

(1)、包名:所有字母一律小写。如:com.abc.demo。

(2)、类名和接口名:每个单词的首字母大写,其余小写。如:StudentDemo,HelloWorld。

(3)、常量名:所有字母都大写,单词间以下划线(_)连接。如:DAY_OF_MONTH。

(4)、变量名和方法名:第一个单词首字母小写,从第二个单词开始每个单词首字母大写。即驼峰式命名法。如:chineseScore,getTotalMoney()。

(5)、在程序中,应尽量使用有意义的英文单词来定义标识符,即见名知义,这样便于阅读。如:password表示密码,name表示姓名等
4、基本数据类型
java 是一种强类型语言,必须为每个变量声明一种类型;

java 中的数据类型主要分为4类8种:4种整型、2种浮点类型、1种字符类型和一种布尔类型

1、整数类型:
整型用于表示没有小数部分的值,允许是负数

int
4个字节
取值范围:-2147483648 ~ 2147483648(刚好超过20亿)
short
2个字节
取值范围:-32768 ~ 32767
long
8个字节
取值范围:
byte
1字节
取值范围:-128 ~127
2、浮点类型
浮点类型用于表示有小数部分的数值

float
4字节
取值范围:大约±3.40282347E+38F(有效位数约为6~7位)
float 类型的数字有一个后缀 f或F,没有后缀的默认是double
double
8字节
有效位数大为15位
注意:浮点数值不适用于无法接受舍入误差的金融计算 金融计算应该使用BigDecimal 类

3、char(字符) 类型
char 类型原本是用于表示单个字符的,不过现在有些Unicode 字符可以用一个char 值描述;

char 类型的值可以表示为16进制值,其范围从 \u0000 到 \uFFFF

例如:\u2122表示商标符号(™) \u03C0 表示希腊字母π

4、布尔类型 boolean
bollean 只有两个值 false 和 true,用来判定逻辑条件

整型和布尔类型之间不能进行相互转换

5、数据类型转换
将一种数值类型砖混为另外只用数值类型,但有些转换会造成数值丢失,损失精度

强制类型转换例:例如double 类型转换为 int 类型

double x = 9.9997;
int nx = (int)x;// 变量nx 的值为9

5、变量与常量
1、常量
常量就是值不变的变量

使用关键字 final 指示常量 - final 修饰后表示这个变量只能被赋值一次,一旦赋值就不能再更改;

常量名 - 常量名通常全部使用大写字母;

注意:

类常量的定义位于main方法的外部,同一个类的其他方法也可以使用这个常量;
如果一个常量被声明为public ,name其他类的方法也可以使用这个常量;
2、变量
每个变量都有一个类型(type);

在声明变量之前,需要先指定变量的类型,然后是变量名;

可以在一行中声明多个变量:(不提倡这个风格)

int i,j ;

变量名 :

必须遵循驼峰命名标准,变量名大小写敏感
不能使用java 保留字作为变量名
注意:

声明一个变量后,要使用必须使用赋值语句对变量进行初始化,千万不要使用未初始化的变量;
3、枚举类型
变量的取值只在一个有限的集合内;

自定义枚举类型,枚举类型包括有限的命名值:

// 自定义枚举

enum Size {SMALL,MEDIUM,LARGE,EXTRA_LARGE}
// 声明这种类型的变量
Size s = Size.MEDIUM
// Size 类型的变量只能存储这个类型声明中给定的某个枚举值,或特殊值null,null表示这个变量没有设置任何值

6、运算符
运算符用于连接值

1、算数运算符
(+ - * / %)加 减 乘 除 取模

2、逻辑运算符
( 与 - && 、或 - ||、非 - !)

3、关系运算符
4、位运算符
( >> 、 << 、>>> )

3、数学函数

//在Math类中,包含了各种各样的数学函数;

//java中没有幂运算,因此需要借助Math 类中的pow方法

double y = Math.pow(x,a); // 将x的a次幂 = y

4、结合赋值与运算符
二元运算符

x +=4;
x = x+4;
//自增 自减运算符
a++
a--
7//字符串

从概念上讲,java字符串就是Unicode 字符序列 - String
1、子串
String 类的substring方法可以从一个较大的字符串中提取一个子串
String greeting = “Hello”;
String s = greeting.substing(0,3); // s 的字符为"Hel"
2、拼接
java 语言允许使用+号连接(拼接)两个字符串
将一个字符串与一个非字符串的值进行拼接,后者会转换成字符串(任何一个java对象都可以转换成字符串)
String 每次拼接字符串都会构建一个新的String 对象
3、检测字符串是否相等
可以使用equals 方法检测两个字符串是否相当
s.equals(t);
注意:千万不要使用 == 运算符来检测两个字符串是否相等;
4、使用StringBuilder 类构建一个字符串
// 首先构建一个空的stringbuilder 字符串构建器

StringBuilder builder = new StringBuilder();

// 每次需要添加一部分内容,就直接调用append 方法

builder.append(ch);
builder.append(str);

// 最后调用toSring 方法,就可以得到一个字符串对象

String completedString = builder.toString();

8、控制流程
1、顺序结构
自上而下的执行

2、选择结构

if //单选择结构
if - else //双选择结构
if - else if - else //多选择结构
switch
//(JDK7 支持了String类型)
case//穿透现象
break
default

3、分支结构(循环结构)

while//尽量避免死循环
do... while
for - //可计次数一般用for循环 ,不可计次数一般用while 循环
for(int i=0;i<100;i++)
//经典案例 
- 99 //乘法表
//增强for循环
break & continue
break //跳出循环
continue //终止当此循环,继续下次循环
//(带标签的continue 废弃的)
return //结束方法的运行;

9、大数
如果基本的整数和浮点数精度都不能满足需求,那么可以使用java.math 包中两个很有用的类
这两个类可以处理包含任意长度数字序列的数值
BigInteger
可以实现任意精度的整数运算
BigDecimal
可以实现任意精度的浮点数运算
使用静态的 valueOf 方法可以将普通的数值转换为大数:

BigInteger a = BigInteger.valueOf(100);

对于更大的数,可以使用一个带字符串参数的构造器:

BigInteger reallyBig = new BigInteger("1232321312312312312312312312312324575868947474646894644")

注意:
不能使用我们熟悉的算数运算符(如:+ 、*) 处理大数,需要使用大数类的add 和multiply 方法进行运算;

BigInteger c = a.add(b) // c = a + b
BigInteger d = c.multiply(b.add(BigInteger.valueOf(2))); d = c*(b+2)

10、 数组
数组: 用来存储相同类型值得序列;

1、定义数组

int[] a = new int[5] // or var a = new int[5]
int[] a = {1,2,3,4,5};
//声明匿名数组:
new int[] {1,2,3,4,5}
//数组必须是同一个类型

2、数组的使用
通过下标拿到值
ArrayIndexoutofBounds - 数组下标越界异常

通过增强for循环遍历数组元素

for each 增强for 循环

for(a: b){
    
}

数组拷贝
java中允许将一个数组变量拷贝到另外一个数组变量,这时,两个数组变量将引用同一数组;
将一个数组所有值拷贝到一个新数组中,使用Arrays类的copyOf 方法:
int[] copiedLuckyNumbers =Arrays.copyOf(luckyNumbers,luckyNumbers.length);// 第二个参数是新数组的长度,这个方法通常用来增加数组的大小;
注意:如果数组元素是数值型,那么额外的元素将被赋值为0;如果数组元素是布尔型,则将赋值为false。相反,如果长度小于原始数组,则只拷贝前面的值;

数组排序

数值型数组排序

使用Arrays类中的sort 方法 - 使用了 快速排序(QuickSort)算法

3、多维数组
多维数组将使用多个下标访问数组元素

例如:

int[][] a = {{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
注意:java 中实际上没有多维数组,只有一维数组。多维数组实际就是“数组的数组” - (套娃数组)

4、数组算法
二分查找
冒泡排序
选择排序
直接插入排序
希尔排序
快速排序
归并排序
基数排序
堆排序
11、方法
1、什么是方法?语句块的集合
2、方法的定义

修饰符 返回值 方法名(参数名){
    return 返回值;
}

3、方法的调用类名.方法对象.方法
4、方法重载名字相同,方法形参列表不同;
5、命令行传参 - 给mian 方法传递参数 (涉及JVM调优)main 方法是自带了参数的,可以通过命令行的方式传递参数进运行程序;
12、JavaDoc - JDK工具
1、JDK 帮助文档由源文件生成一个HTML文档
2、命令 javadoc 生成文档

@author 作者
@Version 版本
@Since 最早支持哪个java版本
@param 参数
@return 返回值
@throws 抛出的异常
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值