Java基本语法
Java基础知识
1.idea中一个项目中可以包含多个module
2.建类需要先建包 包的名字是公司域名的反向
例:
net.suncaper
3.建立测试类 按ctrl+shift+T alt+Enter下载需要的东西
在测试类中的方法之前加上@Test注解
4.在测试类中可以添加@Before注解 使被标记的方法在所有测试方法在测试之前运行
5.在测试类中可以添加@After注解 使被标记的方法在所有测试方法在测试之后运行
Java基础知识
1.Java中的注释类型:
单行注释: //
多行注释: /xxx/
文档注释(java 特有): /** xxx*/在开始的 /** 之后,第一行或几行是关于类、变量和方法的主要描述。之后,你可以包含一个或多个何种各样的 @ 标签。每一个 @ 标签必须在一个新行的开始或者在一行的开始紧跟星号(*).
如:
基础类
* @author xx
* @version v1.2
*/
注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。
文档注释:
例:
/**
*注释实例
*@author yys
*@date 2019.9.6
*/
例:
/**
*注释实例
*@param a 整数a
*@param b 整数b
@return a与b中的最大值
*@author yys
*@date 2019.9.6
*/
文档注释->Tools generateJavaDoc
可以用这个工具 将自己的文档注释生成网页 在二次开发等都有一定的依赖
在Other。。。的那一栏写参数: -encoding UTF-8 -charset UTF-8 不然会因为字符编码报错
2.Java变量
Java中的变量和方法命名的基本规范:
变量和方法名首字母小写,驼峰式
类名首字母大写,驼峰式
常量全大写,划线式
例子:
public class TestJavaBasic{
public static final String STUDENT_NUMBER = "2345";
public void getMax(){
int myAge = 0;
//int my_age = 0; 不要使用这种划线式 要使用驼峰式
//当一门语言如果不支持大小写的情况下,比如VB
}
}
Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符,凡是自己可以起名字的地方都叫标识符。
定义合法标识符规则
由26个英文字母大小写,数字:0-9 ,_或 $ 组成
数字不可以开头。
不可以使用关键字和保留字,但能包含关键字和保留字。
Java中严格区分大小写,长度无限制。
标识符不能包含空格。
注意:在起名字的时,为了提高阅读性,要尽量有意义,“见名知意”。
关键字:
定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)特点:关键字中所有字母都为小写
常用关键字:
用于定义数据类型的关键字:class,interface,enum,byte,short,int,long,float,double,char,boolean,void
用于定义数据类型值的关键字:true,false,null
用于定义流程控制的关键字:if,else,switch,case,default,while,do,for,break,continue,return
用于定义访问权限修饰符的关键字:private,protected,public
用于定义类,函数,变量修饰符的关键字:
abstract,final,static,synchronized
用于定义类与类之间关系的关键字:extends,implements
用于定义建立实例及引用实例,判断实例的关键字:new,this,super,instanceof
用于异常处理的关键字:try,catch,finally,throw,throws
用于包的关键字:package,import
其他修饰符关键字:native,strictfp,transient,volatile,assert
注:java中的常量所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
Java中的变量
1).变量的定义
变量的概念:
内存中的一个存储区域。该区域有自己的名称(变量名)和类型(数据类型)。Java中每个变量必须先声明,后使用。该区域的数据可以在同一类型范围内不断变化。
定义变量的格式:
数据类型 变量名 = 初始化值
使用变量注意:
变量是通过使用变量名来访问这块区域的,变量的作用域:一对{ }之间有效
2).变量的数据类型
对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。
类型 | 占用存储空间 | 表数范围 |
---|---|---|
byte | 1字节 | -128~127 |
short | 2字节 | -215~215-1 |
int | 4字节 | -231~231-1 |
long | 8字节 | -263~263-1 |
浮点类型:float、double
与整数类型类似,Java 浮点类型也有固定的表数范围和字段长度。
Java 的浮点型常量默认为 double 型,声明 float 型常量,须后加 ‘f’ 或 ‘F’。
字符类型:char
char 型数据用来表示通常意义上”字符”。
字符型常量的三种表现形式:
字符常量是用单引号(‘ ’)括起来的单个字符,涵盖世界上所有书面语的字符。例如:char c1 = ‘a’; char c2 = ‘中’; char c3 = ‘9’;
Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量。例如:char c3 = ‘\n’; – ‘\n’表示换行符
直接使用 Unicode 值来表示字符型常量:‘\uXXXX’。其中,XXXX代表一个十六进制整数。如:\u000a 表示 \n。
char 类型是可以进行运算的。因为它都对应有 Unicode 值。
布尔类型:boolean
boolean 类型适于逻辑运算,一般用于程序流程控制:
if条件控制语句;while循环控制语句;do-while循环控制语句;for循环控制语句;
boolean类型数据只允许取值true和false,不可以0或非 0 的整数替代true和false,这点和C语言不同。
基本数据类型转换
自动类型转换
容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序为:
byte->short->int->long->float->double
char->int
强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(()),()中写转换的目标类型,但可能造成精度降低或溢出,格外要注意。
如将3.14转化为int类型:(int)3.14.
boolean类型不可以转换为其它的数据类型。
结论
// byte short int long float doubl
a . 从左至右称为扩宽类型,把左边类型直接赋值给右边类型,称为自动转换,反之需要强转
b. 表达式运算结果的最低级别是int 类型
变量的作用域
变量的作用域:一对{ }之间有效
double小数取后三位 并四舍五入
@Test
public void change2(){
double a = 3.2343543345;
a = (int)(a * 1000 + 0.5)/1000.0;
System.out.println(a);
}
简单的对称加密(使用了^运算符)^-^
@Test
public void testYiHuo(){//用于简单的对称加密
int old = 5201314;
int pwd = 6110;//密钥
int b = old^pwd;//加密后的值
System.out.println(b);
int New = b^pwd;
System.out.println(New);//解密后的值
System.out.println(New == old);
}
java运算符
算术运算符:a++是先使用a的值 再自增
a–是先自增 再使用a的值
例
@Test
public void change2(){
int a = 3;
int b = a++ //a=4 b=3
+ a++ //a=5 b=3+4
+ ++a//a=6 b=7+6
+ a++//a=7 b=13+6
+ ++a//a=8 b=19+8
+ a++;//a=9 b=27+8=35
System.out.println(a);//9
System.out.println(b);//35
}
比较运算符 结果都是boolean型
instanceof是检查是否是类的对象
实例:
"Hello" instanceof String
//结果为True
逻辑运算符中
“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
和“||”的区别同理,双或时,左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:对于 ^ 而言,当左右都为true时,结果为false。
三目运算符
格式: (条件表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2;
例:
@Test
public int Demo(int a,int b){
return (a>b)?a:b;
}
选择结构语句
if语句
if-else语句
if-else if-else语句
switch语句
例:
switch(expression){
case value1 : //语句
break; //可选
case value2 : //语句
break; //可选
case value3 : //语句
break; //可选
default : //可选 //语句
}
逻辑语句结构
while循环
注:要先写i++等语句
do while循环 至少执行一次
break 语句:
break语句用于终止某个语句块的执行
break循环默认只能跳出属于break自己的内循环
再jdk1.6之前 若想跳出循环 需要在原有的循环代码
@Test
public void Demo(){
for (int i = 1; i <=5; i++) {
for (int j = 1; j <=10 ; j++) {
System.out.println("你好");
if(j==3){
break;
}
}
}
}
修改为
@Test
public void Demo(){
boolean isBr = true;
for (int i = 1; i <=5&&isBr; i++) {
for (int j = 1; j <=10 ; j++) {
System.out.println("你好");
if(j==3){
isBr=false;
break;
}
}
}
}
如果是在jdk1.6之后的版本 可以选择给每一个循环起一个别名
@Test
public void Demo(){
forA:for (int i = 1; i <=5; i++) {
forB:for (int j = 1; j <=10 ; j++) {
System.out.println("你好");
if(j==3){
break forA;
}
}
}
}
continue语句:
continue语句用于跳过某个循环语句块的一次执行
continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环
–
函数(方法)
什么是函数
函数声明:
访问权限 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,….){
程序代码
return 返回值;
}
其中:
形式参数:在方法被调用时用于接收外部传入的数据的变量。
参数类型:就是该形式参数的数据类型。
返回值:方法在执行完毕后返还给调用它的程序的数据。
返回值类型:函数要返回的结果的数据类型。
实参:调用函数时实际传给函数形式参数的数据。
2).函数的重载
函数的重载就是在同一个类中允许同时存在一个以上的同名函数,只要它们的参数个数或类型不同即可。
在同一个类中可以定义多个同名方法—方法名重载(overload)。
例子:
public class Test{
public static void main(String [] args){
int isum;
double fsum;
isum=add(3,5);
isum=add(3,5,6);
fsum=add(3.2,6.5);
}
public static int add(int x,int y) { reutrn x+y; }
public static int add(int x,int y,int z) { return x+y+z; }
public static double add(double x,double y){ return x+y; }
}
注:
重载方法的参数列表必须不同
重载方法的返回值类型可以相同,也可以不同
调用时根据方法的参数类型来区别。