Java基础语法
1.注释
- 单行注释 //
- 多行注释 /* */
- 文档注释 /** */
2.标识符
- Java所有的组成部分都需要名字。类名,变量名以及方法名都被称为标识符。
- 标识符注意点:
- 所有的标识符都应该以字母(A-Z或者a-z),美元符号($),或者下划线(_)开始
- 首字母之后可以是字母(A-Z或者a-z),美元符号($),下划线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或方法名
- 标识符是区分大小写的
- 可以使用中文命名,但一般不建议这样去使用,也不建议使用拼音(很low)
3.数据类型
Java是强类型语言,所有变量都必须先定义后才能使用
Java的数据类型分为两大类
1.基本数据类型
整数类型
整数类型 | 所占内存 |
---|---|
byte | 1字节 |
short | 2字节 |
int | 4字节 |
long (定义时要在数字后面加L。例如:long a=43L;) | 8字节 |
整数拓展:
二进制 | 八进制 | 十进制 | 十六进制 |
---|---|---|---|
0b100000 | 040 | 32 | 0x20 |
示例
public class Day1 {
public static void main(String[] args) {
//整数扩展:进制
int i1=10; //十进制
int i2=010; //八进制0
int i3=0b10; //二进制0b
int i4=0x10; //十六进制0x 0~9 A~F
System.out.println(i1); //结果为10
System.out.println(i2); //结果为8
System.out.println(i3); //结果为2
System.out.println(i4); //结果为16
}
}
浮点类型
浮点类型 | 所占内存 |
---|---|
float (定义时要在数字后面加F,例如:float b=4.93F; 不加时默认double类型。) | 4字节 |
double | 8字节 |
浮点数扩展:
public class Day1 {
public static void main(String[] args) {
//浮点数扩展? 银行业务怎么表示?钱
//BigDecimal 数学工具类
//float 表示字长有限 离散 舍入误差 接近但不等于
//double
//最好完全不使用浮点数进行比较
float f=0.1F;
double b=0.1;
System.out.println(f);//0.1
System.out.println(b);//0.1
System.out.println(f==b);//false
float d1=2323444526244444f;
float d2=d1+1;
System.out.println(d1==d2);//true
}
}
字符类型 (char 2字节)
注意:字符是指计算机中使用的字母,数字,字和符号。
字符扩展:
public class Day1 {
public static void main(String[] args) {
//字符扩展
char c1='a';
char c2='中';
System.out.println(c1);//a
System.out.println((int)c1);//强制转换 97
System.out.println(c2);//中
System.out.println((int)c2);//强制转换 20013
//所有的字符本质还是数字
//编码 Unicode 表:(97=a 65=A) 2字节 0~65536 Excel 2^16=65536
//U0000~UFFFF
char c3='\u0061';
System.out.println(c3);//a
System.out.println("=============================================================");
//===============================================
//转义字符
// \t 制表符
// \n 换行
System.out.println("hello\tworld");//hello world
System.out.println("hello\nworld");
/*
hello
world
*/
}
}
Boolean类型(占1位字节,其值只能是true和false两个)
布尔值扩展:
public class Day1 {
public static void main(String[] args) {
//布尔值扩展
Boolean flag=true;
if(flag==true){} //新手
if(flag){} //老手
//less is more! 代码要精简易读
}
}
2.引用数据类型
类、接口、数组
注意:String不是关键字,是类
4.类型转换
-
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低------------------------------------------------->高 byte,short,char---->int---->long---->float---->double
-
运算中,不同类型的数据先转换为同一类型,然后进行运算
-
注意点:
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
在把高容量转换到低容量的时候**(高—>低),强制转换**。 (类型)变量名
在把低容量转换到高容量的时候**(低—>高),自动转换**
public class day2 { public static void main(String[] args) { int i = 128; double d = i; //自动转换 (低---->高) long l = (long) d; //强制转换 (高---->低) System.out.println(i);//128 System.out.println(d);//128.0 System.out.println(l);//128 char c='a'; int i1=c+1; System.out.println(c); //a System.out.println(i1); //98 System.out.println((char)i1);//b } }
-
转换的时候可能存在内存溢出,或者精度问题
public class day2 { public static void main(String[] args) { //内存溢出 int a=128; byte b = (byte) a; System.out.println(b); //-128 //精度 System.out.println((int) 23.7); //23 System.out.println((int) -43.8f); //-43 } }
5.操作比较大的数时,注意溢出问题。 JDK7新特性,数字之间可以用下划线分割
public class day2 { public static void main(String[] args) { //操作比较大的数时,注意溢出问题 //JDK7新特性,数字之间可以用下划线分割 int money=10_0000_0000; System.out.println(money);//1000000000 int years=20; int total1=money*years;//-1474836480 计算的时候溢出了 long total2=money*years;//默认是int,转换之前已经存在溢出问题 long total3=money*((long)years);//先把一个数转换为long System.out.println(total1);//-1474836480 错误 System.out.println(total2);//-1474836480 错误 System.out.println(total3);//20000000000 正确 } }
-
5.变量
-
java是一种强类型语言,每个变量都必须申明其类型。
-
java变量是程序中最基本的存储单元,其要素包括变量名、变量类型、作用域。
type varName [=value] [{,varName[=value]}]; //数据类型 变量名 =值; 可以用逗号隔开来申明多个同类型变量。(为了保证程序可读性,一般最好少用)
-
变量作用域
-
类变量
-
实例变量
-
局部变量
public class Day3 { //1.类变量 static static double salary=2500; //2.实例变量 String name; int age; //main方法 public static void main(String[] args) { //3.局部变量:必须声明和初始化值 int i=10; System.out.println(i);//10 //实例变量的使用 //变量类型 变量名 = new Day3(); Day3 day3 = new Day3(); System.out.println(day3.age);//0 System.out.println(day3.name);//null /* 实例变量:从属于对象:如果不自行初始化,这个类型的默认值 0 0.0 布尔值,默认是false 除了基本类型,其余默认都是null */ //类变量的使用 System.out.println(salary);//2500.0 } //其他方法 public void add(){ // System.out.println(i); // 错误 局部变量i只能在与之相应的main方法中使用,其他方法中禁用 } }
-
-
注意事项:
-
每个变量都有类型,类型可以是基本类型,也可以是引用类型。
-
变量名必须是合法的标识符。
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结束
-
6.常量
-
常量的值一旦被设定后,在程序运行过程中不允许被改变。
-
常量名一般使用大写字母
-
常量定义:
final 数据类型 常量名 = 值 ;
final double PI=3.14;
变量的命名规范
-
所有变量、方法、类名:见名知意
-
类成员变量:首字母小写和驼峰原则(即除了第一个单词以外。后面的单词首字母大写)
示例:monthSalary 、lastName
-
局部变量:首字母小写和驼峰原则
-
类名:首字母大写和驼峰原则 Man、GoodMan
-
方法名:首字母小写和驼峰原则 run()、runRun()
-
常量:大写字母和下划线 MAX_VALUE
7.运算符
-
算术运算符:+,-,*,/,%,++,–
public class Day4 { public static void main(String[] args) { //++ -- 自加 自减 一元运算符 int a=3; int b=a++;//执行完a++这段代码后,先给b赋值,a再自增1 //a++ a=a+1 System.out.println(a);//4 int c=++a;// 执行完++a这段代码前,a先自增1,再给c赋值, //a=a+1,c=a System.out.println(a);//5 System.out.println(b);//3 System.out.println(c);//5 } }
-
赋值运算符:=,+=,-=,*=,/=
-
关系运算符:> , < , >= , <= , == , !=
-
逻辑运算符:&&,||,!
-
位运算符(了解):&,|,^(异或),~(取反), >>(右移), <<(左移), >>>
-
条件运算符: ? :
public class Day5 { public static void main(String[] args) { //x ? y : z //如果x==true,则结果为y,否则结果为z int score=60; String type=score>=60?"及格":"不及格"; System.out.println(type); } }
注意:Java中幂运算不用“^”。
//幂运算 2^3 = 2*2*2=8 很多运算,我们会使用一些工具类来操作!
double pow=Math.pow(2,3);
System.out.println(pow);//8.0
8.包机制
-
为了更好的组织类,java提供了包机制,用于区别类名的命名空间
-
包语句的语法格式:
package pkg1[.pkg2[.pkg3...]];
-
一般利用公司域名倒置作为包名
-
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包,使用”import“语句可完成此功能
import package1[.package2...].(classname|*);
示例:
package com.nangong.day; //导入这个包下所有的类! 使用.* import com.nangong.*;
9.JavaDoc
- javadoc命令是用来生成自己API文档的,可以写在类上面和方法上面。
- javadoc的作用:是针对整个方法或者整个类做一个简要的概述的,使得别人不通过看具体方法代码就能知道某个方法或者某个类的作用和功能。
- 参数信息
- @author作者名
- @version版本号
- @since指明需要最早使用jdk版本
- @param参数名
- @return返回值情况
- @throws异常抛出情况