Java的基础语法

Java的基础语法

一、注释

单行注释: // 注释内容
多行注释:/* 注释内容 /
文档注释(JavaDoc):/
** 内容注释 */

二、标识符

关键字:
Java中的关键字
Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。

标识符注意点

  • 所有的标识符只能以字母、$、或者下划线开始。
  • 首字母之后可以是数字、字母、下划线、$。
  • 严格区分大小写
  • 不可以和关键字一样

三、数据类型

强类型语言:要求变量的使用严格符合规定,所有的变量都必须先定义后才能使用
弱类型语言:要求变量的使用符合规定

Java的数据类型分为两大类:
基本类型(primitive type):8种
引用类型(reference type):3种

java数据类型

public class Demo02{
	public static void main(String[] args){
		// 八大基本数据类型
		//整类
		int num1 = 10;
		byte num2 = 20;
		short num3 = 30;
		long num4 = 30L;//Long类型在数字后面加一个L
		// 小数
		float num5 = 50.1F;// floatLong类型在数字后面加一个F
		double num6 = 3.14159265358979;
		
		// 字符
		char name = '国';
		// 字符串,String不是关键字,类
		// String name = "中国";
		
		// 布尔值: 是非
		boolean flag = true;
		// boolean flag = false;
	}
}

整数扩展知识:

// 二进制 十进制 八进制 十六进制
int i = 10;
int i2 = 010;//八进制
int i3 = 0x10; //十六进制 0~9 A~F  

浮点型扩展知识:

// 浮点型扩展
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d);//false

float d1 = 23552635155225512522f;
float d2 = d1+1
System.out.println(d1==d2);//true
// 原因是float是 有限  离散  舍入误差 大约  接进但不等于 
// 这种情况尤其注意在银行业务中,一般使用BigDecimal 数学工具类

字符扩展知识:

// 字符扩展
char c1 = 'a';
char c2 = '中';
System.out.println((int(c1));//97  强制转换
System.out.println((int)c2);//20013 强制转换
// 所有字符的本质还是数字

// 编码 Unicode 2的16次方 = 65536
char c3 = '\u0061';
System.out.println(c3);//a
 
// 转义字符
//  \t 制表符
//  \n 换行
// ....
System.out.println("Hello\nWorld!");
/*
Hello
World!
*/

String sa = new String("hello world");
String sb = new String("hello world");
System.out.println(sa==sb);//false

String sc = "hello world";
String sd = "hello world";
System.out.println(sc==sd);//true
// 对象 从内存分析


什么是字节?
位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数。
字节(byte):是计算机中数据处理的基本单位,习惯上用大写的B来表示。
1B = 8bit
字符:是指计算机中使用的字母、数字、字和符号。

  • 1 bit表示一位
  • 1Byte表示一个字节 1B = 8 b
  • 1024B = 1KB
  • 1024KB = 1M
  • 1024M = 1G

四、类型转换

由于Java是强类型语言,所以要进行运算时,需要用但类型转换。
低 ------------------------> 高
byte,short,char-> int -> long ->float -> double
运算过程中,不同类型的数据先转换成同一类型,然后进行运算。

public class demo 05{
public static void main(String[] args){
	int i = 128;
	double b = i;
	// 强制转换 (类型变量名  高--低
	// 自动转换  低--高
	
	System.out.println(i);//128
	System.out.println(b);//128.0

	/*
	注意点:
	1、 不能对布尔值进行转换
	2、 不能把数据类型转换成不相干等等类型
	3、 在把高容量转换到低转换,强制转换
	4、 转换的时可能存在内存溢出,或者精度问题!
	*/
	
	System.out.println((int)23.7);//23
	System.out.println((int)-45.89f);//-45
	
	char c = 'a';
	int d = c+1;
	System.out.println(d);//98
	System.out.println((char)d);//b

操作比较大的数时,注意溢出问题:

public class demo06{
	// JDK7新特性,数字之间可以用下划线分割
	int money = 10_0000_0000;
	int years = 20;
	int total = money*years;//-1474836480,计算时溢出了
	int total2 = money*years;//默认是int,转换之前已经存在问题了?
	long total3 = mony*((long)years);//先把一个数转换为Long
	System.out.println(tatal3);//20000000000

五、变量

变量是什么:就是可以变化的量!
Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。

type varName = value;
// 数据类型 变量名 = 值 ;可以使用逗号隔开来声明多个同类型变量。
// 实例变量:从属于对象:如果不自行初始化,这个类型的默认值 0 0.0
// 布尔值:默认是false
// 除了基本类型,其余的都是null

注意事项:
1、每一个变量都有类型,类型可以是基本类型,也可以是引用类型。
2、 变量名必须是合法的标识符。
3、 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

变量的作用域

  • 类变量
  • 实例变量
  • 局部变量
public class Variable{
	static int allClicks = 0;// 类变量
	String str = "hello world";//实例变量
	public void method(){
	int i = 0;//局部变量
	}
}	

常量:初始化后不能再改变值!不会变化的值。
常量名一般大写。

final 常量名 = 值;
final double PI =3.14; 

变量名的命名规范:

  • 所有的变量名、方法名、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则
  • 局部变量: 首字母小写和驼峰原则
  • 常量:大写字母和下划线
  • 类名:首字母大写和驼峰原则
  • 方法名:首字母小写和驼峰原则

六、运算符

Java语言支持如下运算符:
运算符
注意:

  • 自增和自减的位置不一样对于值的改变不一样
  • 逻辑运算符中的短路运算(如:(2==1)&&a++ ,这里前面为假后面的a++不会再执行;||运算符也存在短路,当前面为真时后面的部分不会再执行。)

位运算(二进制):
&:同为1则为1
|:有一个1则为1
^: 不同则为1
~:取反
<<: 左移
>>: 右移

2*8=16    2*2*2*2=16
// 用位运算 效率非常高
// << *2
// >> \2
System.out.println(2<<3);//16

//  扩展赋值运算符
int a = 10;
int b = 20;

a+=b; // a = a+b
a-=b; // a = a-b

// 字符串连接符  +
System.out.println(""+a+b); // 1020
System.out.println(a+b+""); // 30

// 三元运算符
// x ? y : z 如果x = true,则结果为y,否则结果为z
 int score = 50;
 String type = score <60 ? "不及格":"及格";
 System.out.println(type);// 不及格

优先级:
优先级记忆方法:单目乘除为关系,逻辑三目后赋值。
单目运算符:一次作用一个变量的运算符,又叫一元运算符
单目:单目运算符+ –(正负数) ,++ –,!(逻辑非),~(按位取反)
乘除:算数运算符:* / % + - (* / %优先级肯定是大于±的)
为:位运算符:~(按位取反)<<(左移) >>(右移),^(也可以位运算,二进制异或)
关系:关系运算符:> < >= <= == !=
逻辑:逻辑运算符(除!)&& || & | ^
三目:条件运算符A > B ? X : Y
后:无意义,仅仅为了凑字数
赋值:= += -= *= /= %= |= &= ^=
说明:前优先级大于后,比如单目运算符也是位运算符,的优先级是单目级别的。至于赋值运算符中没有见过的自行测试
优先级
所谓优先级,就是在表达式中的运算顺序。Java 中常用的运算符的优先级如下表所示:

七、包机制

为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
一般利用公司域名倒置作为包名。
为了能够使用一个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可完成此功能 import package1[.package2…].(classname|*);

八、JavaDoc

javadoc命令是用来生成自己API文档的。
参数信息:

  • @author 作者名
  • @version 版本号
  • @ since 指明需要最早使用的jdk版本
  • @ param 参数名
  • @return 返回值情况
  • @throws 异常抛出情况
命令行在java文件所在位置打开命令行运行下面命令
# javadoc -encoding UTF-8 -charset UTF-8 Doc.java
Doc.java是文件名,encoding和charset是设置编码,然后打开生成的index.html文件就是API文档。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值