Java基础语法(java认证考试)
注释,标识符,关键字
注释
(平时写代码一定注意规范)
Java中的注释有三种
- 单行注释
public class HelloWorld{
public static void main(String[] args){
//输出一个Heller,World! ----单行注释
System.out.println("Hello,World!");
}
}
2.多行注释
/*
*/
3文档注释
标识符:
java的所有组成部分都需要名字.类名,变量名以及方法名都被成为标识符
关键字
abstract | assert | boolean | break | byte |
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
注意点:
●所有的标识符都应该以字母(AZ或者a-z)美元符($)、或者下划线()开始 |
●首字符之后可以是字母(A-z或者a-z),美元符($)、下划线()或数字的任何字符组合 |
●不能使用关键字作为变量名或方法名。 |
●标识符是***大小写敏感***的 |
合法标识符举例:age、$ salary、 ivalue、1vaue |
●非法标识符举例:123abc、- salary、#abc |
●可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low public static void main(String[] args)t String王者荣耀=“最强王者"; System. out, println(王者荣耀); |
数据类型
强类型语言
要求变量的使用要严格符合规定所有变量都必须先定义后才能使用
弱类型语言
Java的数据类型分为两大类:
◆基本类型
数值类型:
整数类型:
- byte
- short
- int
- long 数字后面加L
浮点类型:
- float 数字后面加F
- double
boolean类型:
占一位其值只有ture和flase两个
◆引用类型
- 类
- 接口
- 数组
public class Demo2 {
public static void main(String[] args) {
//八大数据类型:
//1.整数
int num1=10;//是最常用的类型
byte num2=20;
short num3 =30;
long num4 =30L;//Long类型要在数字后面加L
//2.小数:浮点数
float num5 = 50.1F;//float类型需要数字后面加F
double num6 = 3.1415926;
//3.字符
char name = '中';//只有一个字,占两个字节
// 4.布尔值
boolean flag= true;
//boolean flag = false;
}
}
◆扩展(面试内容):
public class Demo3 {
public static void main(String[] args) {
//二进制 0b 十进制 八进制 0 十六进制 0x
int i=10;
int i2 =010;//八进制0
int i3 = 0x10;//十六进制0x
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("====================================");
//=====================================================
//浮点数扩展 银行业务怎么表示? 钱
//float :有限 离散 舍入误差 大约 接近但不等于
// double
//最好完全使用浮点数进行比较
float f= 0.1f;
double d = 1.0/1.0;
System.out.println(f==d);//结果是错误,不相等
//================================================
//字符拓展
System.out.println("===================================");
char c1 ='a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);//强制转换
System.out.println(c2);
System.out.println((int)c2);//强制转换
//所有的字符本质还是数字
//编码 Unicode 表 :(97 = a 65 = A) 2字节
char c3 ='\u0061';
System.out.println(c3);
// 转义字符
// \t 制表符
// \n 换行
//还有很多
System.out.println("hello\tword");
System.out.println("hello\nword");
}
}
类型转换
Java是强类型语言,所以要进行有些运算的时候需要用到类型转换
低--------------------------->高
byte, short , char --> int --> long --> float --> double
运算中,不同类型的数据先转化为同一类型,在进行运算
强制转换
自动转换
public class Demo4 {
public static void main(String[] args) {
int i = 128;
double b = i; //自动转换 低---高
byte c = (byte) i; //强制转化 (类型)变量名
System.out.println(b);
/*
注意点:
1.不能对布尔值进行转化
2.不能把对象类型转换为不相干的类型
3.在把高熔炼转换到低容量的时候,强制转换.
4.转换的时候可能存在内存溢出,或者精度问题!
*/
System.out.println("=====================");
System.out.println((int)23.7);
System.out.println((int)-45.89f);
System.out.println("=====================");
char d ='a';
int e = d+1;
System.out.println(e);
System.out.println((char)e);
System.out.println("=====================");
//操作比较大的数的时候,注意溢出问题
int money = 10_0000_0000; //JDK新特性,数字之间可以用下划线
int years = 20;
int total = money * years; // -1474836480 ,计算的时候溢出了
long total2 = ((long)money)*years;
System.out.println(total2);//先把一个属转换为long
}
}
变量,常量
◆变量是什么"?"
就是可以变化的量!
◆Java是一种强类型语言,每个变量都必须声明其类型。
◆Java变量是程序中***最基本的存储单元***,其要素包括变量名,变量类型和作用域。
type varName [=value] [{,varName[=value]}];
//数据类型 变量名=值;可以使用逗号隔开来声明多个同类型变量
public class Demo5 {
public static void main(String[] args) {
int a=1;
int b=2;
int c=3;
String name ="hanhan";
char x = 'X';
double pi = 3.14;
}
}
◆注意事项:
●每个变量都有类型,类型可以是基本类型,也可以是引用类型。
●变量名必须是合法的标识符。
●变量声明是一条完整的语句,因此每一个声明都必须以分号结束
public class Demo6 {
//类变量 static
static double salary = 2500;
//属性: 变量
//实例变量: 从属于对象;如果不自行初始化,则会默认值 0 0.0
//布尔值:默认是false;
//除了基本类型其余的默认值都是null
String name ;
int age;
//main方法
public static void main(String[] args) {
//局部变量;必须声明和初始化值
int i=10;
System.out.println(i);
//变量类型 变量名字 = new Demo6();
Demo6 demo6 = new Demo6();
System.out.println(demo6.age);
System.out.println(demo6.name);
//类变量 static
System.out.println(salary);
}
//其他方法
public void add(){
}
}
常量:
◆常量( Constant):初始化( initialize)后不能再改变值!不会变动的值
◆所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
◆常量名一般使用大写字符。
final 常量名 =值;
final double PI = 3.14;
public class Demo7 {
// final static double PI = 3.14;也是可以的.
//修饰符,不存在先后顺序.
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
变量的命名规范:
◆所有变量、方法、类名:见名知意
◆类成员变量:首字母小写和驼峰原则: monthSalary 除了第一个单词以外,后面的单词首字母大写: lastname
◆局部变量:首字母小写和驼峰原则
◆常量:大写字母和下划线: MAX _VALUE
◆类名:首字母大写和驼峰原则:Man, GoodMan
◆方法名:首字母小写和驼峰原则:run(), runRun())
运算符
◆Java语言支持如下运算符:
·算术运算符:+,-,* ,/,%,++,–
·赋值运算符 =
·关系运算符:>,<,>=,<=,==,!= instanceof
·逻辑运算符:&&,||, !
位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
条件运算符?:
扩展赋值运算符:+=,-=,* *=,/=
◆自增自减:
package operator;
public class Demo2 {
public static void main(String[] args) {
//++ -- 自增 自减 一元运算符
int a = 3;
int b = a++;// a++逻辑为执行完这行代码后.先给b赋值,然后a再自增. 因此b为3,也就是初始值a.
System.out.println(a); //结果为4
// 在执行完后,a=a+1; a=4;继续运行下一个
int c = ++a; //++a 逻辑为执行完这行代码前,a先进行自增,然后再给c赋值,此时a=4+1=5,c=5.
System.out.println(a);//结果:5
System.out.println(b);//结果:3
System.out.println(c);// 结果:5
}
}
幂运算 使用工具类
//幂运算 .. 很多的运算需要使用一些工具类来操作
double pow = Math.pow(2,3);
System.out.println(pow);
//这个就是2的三次方
逻辑运算符
package operator;
public class Demo3 {
public static void main(String[] args) {
//逻辑运算符
// 与(and)(&&) 或(or)(||) 非(取反)(!(a&&b))
boolean a = true;
boolean b = false;
System.out.println(a&&b); //逻辑与运算:两个变量都为真,结果才为true.
//在进行 与 操作时,会有逻辑顺序,a&&b,会先检验a,如果a错误,不会执行b.用短路运算来证明一下.
System.out.println(a||b);//逻辑或运算:两个变量有一个为真,结果为true
System.out.println(!(a&&b));//如果是真,则变为假;如果为假,则变为真.
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);//结果为错
System.out.println(c);//c为5, 因为前面c<4错误,因此不会运行c++,c的值也就不会变化.
}
}
位运算符
package operator;
//位运算符
public class Demo4 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
------------------------------------------------------
A & B 0000 1100 //与: 都为1,才是1.不然为0
A | B 0011 1101 //或:有一个为1,就是1,其余为0
A ^ B 0011 0001 //亦或 :如果值相同为0,不同为1
~ B 1111 0010
-----------------------------------------------------
面试题2 * 8 怎么算最快
<< 左移 :相当于*2
>> 右移:相当于/2
!!!!效率极高
*/
System.out.println(2<<3);//结果为16
System.out.println(-20>>2);//结果为-5
System.out.println(-20<<2);//结果为-80
}
}
知识点:
package operator;
public class Demo5 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b;// 相当于a=a+b;
a-=b;// 相当于a=a-b;
System.out.println(a);
//字符串连接符
System.out.println(a+b);
System.out.println(""+a+b);//结果为: 1020 只要前面开头出现字符串类型,则会转换成字符串连接,
System.out.println(a+b+"");//结果为:30
}
}
三元运算符
package operator;
//三元运算符
public class Demo6 {
public static void main(String[] args) {
// x? y:z
//如果x==true,则结果为y,负责结果为z
int score = 80;
String type = score <60?"不及格":"及格";
System.out.println(type);//结果为:及格
}
}
包机制,JavaDoc
包机制
2
◆为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
◆包语句的语法格式为:
package pkg1[. pkg2[. pkg3…];
◆一般利用公司域名倒置作为包名
◆为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用" import"语句可
完成此功能
import package1[.package2…] .(classname| *);
JavaDoc
javadoc命令是用来生成自己API文档的
◆参数信息
◆@ author作者名
◆@ version版本号
◆@ since指明需要最早使用的jdk版本
◆@ paran参数名
◆@ return返回值情况
◆@ throws异常抛出情况
ring type = score <60?“不及格”:“及格”;
System.out.println(type);//结果为:及格
}
}## 包机制,JavaDoc
### 包机制
2
◆为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
◆包语句的语法格式为:
package pkg1[. pkg2[. pkg3....];
◆一般利用公司域名倒置作为包名
◆为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用" import"语句可
完成此功能
import package1[.package2...] .(classname| *);
### JavaDoc
javadoc命令是用来生成自己API文档的
◆参数信息
◆@ author作者名
◆@ version版本号
◆@ since指明需要最早使用的jdk版本
◆@ paran参数名
◆@ return返回值情况
◆@ throws异常抛出情况