Java基础语法
- 新建一个空项目
- 关闭,我们先不进行设置
- 空项目中新建模块
- 新建Java项目模块
- 双击src查看java项目
- 为Java选择编辑器
- 创建一个Helloword的class文件
注释,标识符,关键字
java注释
java中注释有三种:单行注释(//),多行注释(/**/),文档注释(/** */
)
文档注释:它一般和JavaDoc一起使用,文档注释允许你在程序中嵌入关于程序的信息
设置以下注释的颜色
标识符
Java所有的组成部分都需要名字。类名,变量名以及方法名等都被称作标识符。
- 所有的Java标识符都应该以字母,美元符$,或者下划线(_)开始
- 首字母之后都应该以字母,美元符$,或者下划线(_)或数字的任何字符开始
- 关键字不能作为变量名,方法名
- 标识符是对大小写敏感的
数据类型
Java类型
-
Java强语言类型
强类型语言:要求所有的变量必须先定义后再使用
弱类型语言:变量的定义和使用不严格
-
Java的数据类型分俩类
- 基本类型(primitive type):
- 引用类型(reference type):
public class HelloWorld { public static void main(String[] args) { // 整型 byte num1 = 10; short num2 = 20; int num3 = 30; long num4 = 50L; //long类型要在数字后面加L // 浮点数 float num5 = 3.14F; // float类型要在后面加F double num6 = 3.14123456; //字符 char nc = 'A'; // 字符串 字符串String不是关键字而是一个类 String name = "BUTLER"; // 布尔类型 boolean flag = true; } }
类型转换
-
由于Java是强类型语言,所以要进行有些运算的时候,需要进行类型转换
-
运算中,不同类型的数据先转换为同种类型然后再进行运算 (byte,short,int相互运算后是int)
byte,short,char --> int --> long --> float -->double
-
类型转换
- 强制类型转换 高–>低
- 自动类型转换 低–>高
类型转换不能把对象类型转换为不相干的类型;转换类型时可能存在内存溢出或者精度问题
public class demo { public static void main(String[] args) { int a = 128; byte b = (byte)a; // 高类型转低类型需要强制类型转换 float c = a; // 低类型转高类型会自动向高类型转换 System.out.println(a); // 128 System.out.println(b); // -128;因为byte的最大值是127,强制类型转换会溢出 System.out.println(c); // 128.0; } }
public class demo { public static void main(String[] args) { char d = 'a'; int e = d; System.out.println(e); // 97 System.out.println((char)e); // a } }
public class demo { public static void main(String[] args) { int money = 10_0000_0000; int years = 20; int total = money*years; // -1474836480 int整型超过了20亿就会溢出 long total1 = money*years; // -1474836480 long total2 = (long)money*years; // 20000000000 先进行long类型转换 System.out.println(total); System.out.println(total1); System.out.println(total2); } }
变量,常量
变量,方法,类名都需见名知意;方法名,局部变量,类成员变量:首字母小写遵循驼峰原则;
类名遵循首字母大写;常量必须都是大写字母;
变量
type varName [=value] [{,varName[=value]}]
数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型的变量
-
Java是一门强类型语言,每个变量都必须在定义时声明其类型
-
变量是Java程序中最基本的存储单元,其要素包括变量名,变量类型以及作用域
-
变量作用域:
-
类变量:加了一个关键字static,
static int a = 1;
类变量声明后在许多位置都可以调用 -
实例变量:从属于对象,不进行初始化会拥有默认值;如0,0.0,null,false,除了基本类型基于的默认值都是null
-
局部变量:必须声明类型和初始值
-
public class demo1{
static int a; // 类变量
int b;
public static void main(String[] args) {
int a = 1; // 局部变量
String name ; // 实例变量
}
public void add(){
}
}
- 注意事项
- 每个变量都有类型,或是引用类型或是基本类型
- 每个变量名都有合法的标识符
常量
常量(Constant):初始化(initialize)后不能再改变值!不会变动值。所谓常量可以理解为一种特殊的变量,它的值被设定后,在程序设定后不会在改变。常量名一般是大写字母
final 变量名 = 值;
final double PI = 3.14;
public class demo2 {
// 修饰符,不存在先后顺序
static final double PI = 3.14;
final static double PIN = 3.14;
public static void main(String[] args) {
System.out.println(PI);
System.out.println(PIN);
}
}
运算符
Java语言支持的运算符
- 算术运算符:+,-,*,/,%,++(自增),–(自减)
- 赋值运算符:=
- 关系运算符:<,>,<=,>=,==,!=,instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,<<,>>,>>>
- 条件运算符:?,:
- 扩展赋值运算符:+=,-=,*=,/=
位运算符
public class Demo2 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001 异或运算
~B = 1111 0010 二进制取反
*/
}
}
位运算符
public class Demo2 {
public static void main(String[] args) {
/*
左移<< 右移>> 这俩个运算在计算机中是效率极高的运算
<< *2 >> /2
0000 0000 0
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
2<<3 = 8 化为2进制后左移3位
8>>3 = 2 化为2进制后左移3位
*/
System.out.println(2<<4); // 32
}
}
字符串连接符+
public class Demo3 {
public static void main(String[] args) {
int a = 10;
int b = 20;
// 字符串连接符 + 连接字符时有String都会变成String类型
System.out.println(a+b+""); // 30
System.out.println(""+a+b); // 1020
}
}
三元运算符
public class Demo3 {
public static void main(String[] args) {
int source = 70;
String grade = source<60?"不及格":"及格";
System.out.println(grade);
}
}
包机制,JavaDoc
阿里巴巴Java开发者手册
包机制
Java的包其实就相当于文件夹,包的存在为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
-
包格式。包语句的语法格式为:
package pkg1[.pkg2[.pkg3…]];
一般将公司域名导致作为报名,如:www.baidu.com 会导置为 com.baidu.www。这样做的原因是为了显示出这样的效果
- 如果无法实现这样的效果在小齿轮设置中把Compact middle package打勾去掉。
- 小技巧:ctrl+鼠标左键进入我们想进入的包
-
导包。为了能够使用某一个包的成员,需要在Java程序中明确导入该包。使用import语句完成导入包的工作
import package1[.package2…].(classname|*);
导入包
import com.baidu.www.Demo1;
导入包
import com.baidu.www.*;
导入www下的所有包-
小技巧:在错误位置Alt+Enter会给提示帮助我们解决错误
-
JavaDoc
需要学习JavaDoc是什么,JavaDoc的俩种生成方式
-
Javadoc命令是用来生成自己的API文档的
-
参数信息
- @author 作者名
- @version 版本哈
- @since 指明需要最早使用的jdk版本
- @return 返回值情况
- throws 异常抛出情况