大家好,欢迎来到IT知识分享网。
Java 基础语法
1、标识符
java 中用来给变量、方法、类、接口等命名的名称 称为标识符;(名称 = 标识符)
标识符的命名规则:
(1)、包名:所有字母一律小写。如:com.abc.demo。
(2)、类名和接口名:每个单词的首字母大写,其余小写。如:StudentDemo,HelloWorld。
(3)、常量名:所有字母都大写,单词间以下划线(_)连接。如:DAY_OF_MONTH。
(4)、变量名和方法名:第一个单词首字母小写,从第二个单词开始每个单词首字母大写。即驼峰式命名法。如:chineseScore,getTotalMoney()。
(5)、在程序中,应尽量使用有意义的英文单词来定义标识符,即见名知义,这样便于阅读。如:password表示密码,name表示姓名等
2、关键字
java 中赋以特定的含义的,有专门用途的字符串称为关键字;并且java中所有的关键字都是小写;
数据类型:boolean、int、long、short、byte、float、double、char、class、interface。
数据类型:boolean、int、long、short、byte、float、double、char、class、interface
流程控制:if、else、do、while、for、switch、case、default、break、continue、return、try、catch、finally。
修饰符:public、protected、private、final、void、static、strict、abstract、transient、synchronized、volatile、native。
动作:package、import、throw、throws、extends、implements、this、supper、instanceof、new。
保留字:true、false、null、goto、const。
3、注释
注释:java 中的注释不会出现在任何可执行程序中
-
行内注释 : 在每行开头标价// ,注释内容是从// 开始到本行结尾
-
多行注释:使用/* 和*/注释界定符将一段比较常的注释括起来
-
文档注释:以/** 开始,以 */ 结束,这种注释可以用来自动生成文档;
注意:在java 中,/**/ 注释不能嵌套,也就是说,不能简单的把代码用 / * 和* /括起来作为注释,因为这段代码本身可能也包含一个*/ 界定符
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[]
- 数组必须是同一个类型
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 抛出的异常
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/29060.html