Java基础知识点

Java 基础

注释、标识符、关键字

注释

  1. 单行注释://
  2. 多行注释:/**/
  3. 文档注释:/** * /
    IDEA快捷键:control+D 复制当前行到下一行

标识符

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

  • 关键字:JAVA自身定义好的单词,eg. char,void…
    关键字
  • 所有的标识符都应该以字母、美元符($)、或者下划线开始
  • 首字符之后可以是字母、美元符($)、或者下划线或数字的任何字母组合
  • 不能使用关键字作为变量名或方法名
  • 标识符是大小写敏感的

数据类型

JAVA是强类型语言,所有变量都必须先定义后才能使用。

基本数据类型

  • 整数
    byte:1个字节
    short:2个字节
    int:4个字节
    long:8个字节

整数运算 运算值有long类型,结果为long类型,其他都为int类型

public class Demo1{
	public static void main(String[] args) {
		byte num1 = 10;
		short num2 = 100;
		int num3 = 1000;
		long num4 = 100000000L; //long类型要在数字后+L;
		System.out.print(num1);
		System.out.print(num2);
		System.out.print(num3);
		System.out.print(num4);
	}
}
  • 浮点数
    float:4个字节
    double:8个字节
public class Demo2{
	public static void main(String[] args) {
		float num1 = 0.1f; //float类型要在数字后+f;
		double num2 = 0.00001;
		System.out.print(num1);
		System.out.print(num2);
	}
}
  • 字符
    char:2个字节
public class Demo2{
	public static void main(String[] args) {
		char a = ’A‘; //char类型只能赋值1个字符;
		System.out.print(a);
	}
}
  • boolean:占1位,其值只有TRUE&FALSE
public class Demo3{
	public static void main(String[] args) {
		boolean flag = TRUE; //常与if语句连用;
	}
}

引用类型

除基本类型之外的所有数据类型

  • 类 eg. String…
  • 接口
  • 数组

拓展

public class Demo4{
	public static void main(String[] args) {
		// 整数拓展: 进制  二进制0b    十进制      八进制0     十六进制0x
		
		int n1 = 0b10; //二进制0b;
		int n2 = 10; //十进制;
		int n3 = 010; //八进制0;
		int n4 = 0x10; //十六进制0x;
		System.out.print(n1);
		System.out.print(n2);
		System.out.print(n3);
		System.out.print(n4);

		/******************************************
		/浮点数拓展: 银行业务/钱的表示
		/使用 BigDecimal 数学工具类
		 ******************************************/
		//float 表现的字长是有限的 离散的  舍入误差  结果是大约数  接近但不等于
		//最好完全避免使用浮点数进行比较
		float f = 0.1f; 
		double d = 1.0/10;

		System.out.print("====================================");
		System.out.print(f==d);// result: false

		float a = 232323232323232323f;
		float b = a + 1;
		System.out.print(f==d);// result: true

		//转义字符
		// \t  table符
		// \n  换行符
		System.out.print("====================================");
		System.out.print("Hello\tWorld");
		System.out.print("Hello\nWorld");
		System.out.print("====================================");

		//对象 从内存分析
		String sa = new String(original:"Hello world");
		String sb = new String(original:"Hello world");
		System.out.print(sa==sb); //result: false;

		//布尔值扩展
		boolean flag = true;
		//if (flag == TRUE){} = if(flag){}
		//less is more!

	}
}

类型转换

从高位到低位***强制转换***,从低位到高位***自动转换***
低-------------->高
byte->short, char->int->long->float->double

强制转换:(类型)变量名

public class Demo5{
	public static void main(String[] args) {
		int i = 128;
		//强制
		byte b = (byte)i;//内存溢出

		System.out.print(i);// 128
		System.out.print(b);// -128
		System.out.print("**************************");

		//自动
		double d = i;
		System.out.print(i);// 128
		System.out.print(d);// 128.0
		System.out.print("**************************");

		//精度问题
		System.out.print(int23.7); //23
		System.out.print(int-45.89f); //-45
		System.out.print("**************************");

		char c = 'a';
		int i1 = c + 1;
		System.out.print(i1); //98
		System.out.print((char)i1) //b
		System.out.print("**************************");

		
	}
}

注意点:

  1. 不能对布尔值进行转换
  2. 不能把对象类型转化为不相干的类型
  3. 在把高容量转化到低容量时,强制转换
  4. 转换的时候可能存在内存溢出,或精度问题!
  5. 操作比较大的数的时候,注意溢出问题
    JDK7新特性,数字之间可以用下划线分割
public class Demo6{
	public static void main(String[] args) {
		int money = 10_0000_0000;
		int years = 20;
		int total = money*years;//计算时溢出
		System.out.print(total);// -147...
		System.out.print("**************************");

		long total2= money*years; //结果任然是负数;
		//默认是int,转换前已经存在问题;
		long total3 = money*((long)years);//将其中一个转化为long;
	}
}

变量、常量、作用域

  • 变量:就是可以变化的量
    Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域
type       varName [=value] [{,varName[=value]}];
//数据类型   变量名  =  值; 可以只用逗号隔开来声明多个同类型变量
  • 作用域
  1. 类变量:写在类里的
  2. 实例变量:写在类中间
  3. 局部变量:写在fuction里面的
public class Variable{
	//属性:变量


	//类变量 static, 随着类的出现消失 而出现消失
	static int allClicks=0; 


	//实例变量: 从属于对象;不一定需要初始化
	//如果不初始化,这个类型的默认值 标准类型 0 0.0
	//boolean: 默认false
	//除了基本类型,其余的都是null;
	String name;
	int age; 

	//main方法
	public static void main(String[] args) {
		//局部变量: 必须声明和初始化
		int i = 10; 

		//变量类型 变量名字 = new Variable();
		Variable demo7 = new Variable();
		System.out.print(demo7.age);
	}

	//其他方法
	//public void add(){}
}
  • 常量:不会变动的值
  1. 常量名一般使用大写字母
final 常量名=值;
final double PI = 3.14;

//修饰符不存在先后顺序;
static final double length = 8.0;
final static double length2 = 8.0;

运算符

基本运算符

  • 算数运算符: +,-,*,/, %(模运算/取余),++, –
public class Demo7{
	public static void main(String[] args) {
		//++ -- 自增 自减
		int a = 3;
		int b = a++; //先赋值,再++
		int c = ++a; //先++,再赋值;

		System.out.print(a); // 5
		System.out.print(b); // 3
		System.out.print(c); // 5

		//幂运算; 很多运算 可以使用一些工具类来操作
		double pow = Math.pow(2,3) //2的3次方;
		

		//字符串连接符 + ,String
		System.out.print("" +a+b); //53
		System.out.print(a+b+""); //8

	}
}
  • 赋值运算符: =
  • 关系运算符: >, <, >=, <=, ==, !=, instanceof
  • 逻辑运算符: &&, ||, ! (与、或、非)
    短路运算检证:
public class Demo8{
	public static void main(String[] args) {
		
		int a = 5;
		boolean b = (a<4)&&(a++<4);//假如执行了后一句,结果应为6;

		System.out.print(a); //5;
		System.out.print(b); //false 

	}
}
  • 位运算符: &, |, ^(异或), ~(取反), >>(右移), <<(左移), >>> [二进制位的运算]
    2 * 8怎么运算最快? 2<<3
  • 条件运算符:? :
    x?y:z 如果x==true,则结果为y 否则为z
int score = 80;
String type = score<60? "及格""不及格"//有时可以当if用;
System.out.print(type); //及格
  • 扩展值运算符:+=(a+=b:a=a+b),-=,* =, /=

包机制、JavaDoc

  • 包机制:可将其视为文件夹
    语法格式:package pkg1[.pkg2[.pkg3…]];
    一般利用公司域名倒置作为包名:eg. com.baidu.www
    导入包: import pkg1[.pkg2…].( classname|* );
  1. IDEA创建项目;
  2. 选择empty project;
  3. file->project structure->project 设置jdk版本;
  4. file->new->module;
  5. src:new->package;
    (拓展:阿里巴巴规范手册)
  • JavaDoc
    参数信息:
/**
 *@author 作者名
 *@version 版本号
 *@since 指明需要最早使用的jdk版本
 *@param 参数名称
 *@return 返回值情况
 *@throws 异常抛出情况
 */

通常加在类上和方法上

命令行生成操作
javadoc -encoding UTF-8 -charset UTF-8 文件名.java

IDEA生成JavaDoc文件

  1. 选择需要生成的文件;
  2. Tools->Generate JavaDoc;
  3. 设置生成目录;
  4. Other command line argument:-encoding UTF-8 -charset UTF-8;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值