Java 基础知识点(元素)

前两章理论知识详细总结

1. class 和 public class的区别?

  • 一个Java 源文件中 class 可以定义多个、但是只能定义一个public class(非必须)
  • 如果定义了 public class 那么必须和源文件的名字相同
  • 一个class会定义成一个 xxx.class 字节码文件
package bilili;

public class HelloWorld {

	public static void main(String[] args) {
		System.out.println("hello,world!");

	}

}
 // public表示公开的
 //class 表示一个类
 //hello world表示一个类名

2.什么是标识符?
数字字母下划线还有美元符号$
自己有权力命名的单词都是标志符
严格区分大小写
关键字不能做标识符

(1)它可以做什么?
*类名、方法名、变量名、接口名、常量名
#类名、接口名:首字母大写,后边每个单词首字母大写
#变量名 、方法名:首字母小写,后面每个单词首字母大写
#常量名:全部大写

(2)eg:public static void main(string [] args){}
//main是方法名 arg是变量名

3.关键字练习
Java 中的关键字
 访问控制: private protected public

		类、方法和变量的修饰符:abstract	class	  extends  final  implements  interface  native  new  strictfp  synchronized  transient  volatile
	
		程序控制:break  continue  return  do  while  if  else  for  switch  case  default
	
		错误处理:try  catch  throw  throws
	
		包相关:import  package
	
		基本类型:boolean  byte  char  double  float  int  long  short  true  false
	
		变量引用:super  this  void
	
		保留字:goto  const  

4.字面值: (字标面的大小)
-10、100 属于整数型字面值
-“abc” 属于字符串型字面值
-‘a’、‘人’ 属于字符型字面值
-3.14 属于浮点型字面值
-true flase 属于布尔型字面值
*字面值就是数据

package bilili;

public class VarTest01 {
	static  int k = 1254;  //k 在类体里边 static不能去
	
	

	public static void main(String[] args) {
		int i = 100; //局部变量
		
		System.out.println(i);
		
		i = 200;   //重新赋值   如果去掉这个 i 输出的就是下边那个i;
		
		System.out.print(i);

	}
	
	int i = 188;  //成员变量
	
	public static void doSome() {
		
		System.out.println(k); //可以访问 k;
		
	}

}

5.变量
(1)什么是变量?
*本质上是内存中的一个存储空间
*变量包含:“数据类型”、“有名称”、“有字面值”
*变量是内存中最基本的内存单元

(2)数据类型的作用?
*不同的数据有不同的类型,他们会分配不同的空间大小

(3)变量要求:变量中存储的具体 数据 必须和变量的 数据类型一致

(4) int i; //int 数据类型 i 变量名(合法标识符)
int age; //命名规则:首字母小写后边每个单词首字母大写

(5)变量名 = 字面值; 要求字面值的数据类型必须和变量的数据类型一致
// = 是运算符

(6) 通常访问一个变量包括两种访问形式

  • 读取变量中保存的数据 get/获取
  • 修改变量中保存的数据 set/设置
    i = 20; //set
    System.out.println(i); //get

(7)在方法体中的java代码,是遵守自上而下的顺序依次执行
第一行;
第二行;
第三行;
//第二行不执行完第三行是永远不会执行

(8) int i = 200;
System.out.println(i);
int i = 100; //错误
i = 100; //可以 这个i是重新赋值

(9)变量的作用域
*变量的作用域其实就是变量的有效范围。
值有在有效范围内能够使用 (出了大括号就不能用了)

(10) for(int i = 0;i<10;i++){
}
System.out.println(i) //错误无法访问 i变量
//i 的作用域是整个for循环 for循环结束了 i就被释放了

int j;
for(j = 0;j<10;j++){
}
System.out.print(j);  //可以直接访问

(11) 根据变量声明的位置来分类:
* 局部变量: 在方法体中声明的叫做局部变量
* 全局(成员)变量: 在方法体外(类体之内)声明的变量叫做成员变量

6.基本数据类型
第一类:整数型
Int long short byte
第二类:浮点型
Float double
第三类:布尔型
Boolean
第四类:字符型
Char

(2). 字符串”acb”不属于基本数据类型,属于“引用数据类型”,字符属于基本数据类型
*字符串使用双引号”abc”
*字符使用单引号 ‘a’

(3)八种基本数据类型各自占用的空间大小:
在这里插入图片描述

(4).现在的计算机在任何情况下只识别二进制:010111010001.
计算机底层采用交流电的方式:接通和断开就是两种状态 只识别0 1

(5) 字节(Byte )
1 Byte = 8 bit (一个字节等于八个比特位,一个比特位表示一个二进制位:1/0)
1 KB = 1024 Byte
1 MB = 1024 KB
1 GB = 1024MB
1 TB = 1024 GB 1 TB = 10241024102410248(二进制位)

(6)byte类型的最大值:01111111 (2^7-1)=127 最小值: -128

(7)计算机最初只支持英文,最先出现的字符编码是:ASCLL码
‘a’-------65(解码)----01100001
01100001—(编码)----’a’
编码和解码的时候采用同一套字典/对照表,不会出现乱码。

(8)java 采用 Unicode 的编码,所以标识符可以用中文

(9)关于Java中的char类型:
转义字符: \

package bilili;
/*
 * 关于八种基本数据类型的默认值
 * 数据类型				默认值
 *————————————————————————————————
 *byte,short,long,int    0
 *double				0.0d
 *float					0.0f
 *boolean				/u000
 */

public class MorRenZhi {
	
	static int k= 100;  //成员变量
	static int m;
	
	//成员变量没有手动赋值系统会默认赋值(局部变量不会)
	//这里还是必须遵守语法:先声明 再赋值才能访问

	public static void main(String[] args) {
		/*int i;		//局部变量
		System.out.println(i);
		*/
		System.out.println(k);  //100
		System.out.println(m);  //0
		
		
		char c = 'a';
		System.out.println(c);
		char m = '梅';
		System.out.println(m);
		//一个中文正好占用两个字节所以可以输出
		//几种错误 char a='abc'   char j = "a"
	}

}

整数型实例

package bilili;
/*
 * java中的整数型:byte  short int long
 * java中的整数型字面值的有三种表示方法
 * 	十进制:是默认方法
 * 	八进制:编写是以0开始
 * 	十六进制:   0x
 * 输出都是以十进制输出
 */

public class ZhengShuXing {

	public static void main(String[] args) {
		int a = 10;
		int b = 010;
		int c = 0x10;
		
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		
		long x = 456;  //x型变量在声明的时候是long类型,占用8个字节
						//int类型的字面值456赋值给1ong类型,存在类型转化
						//小容量向大容量类型转化称为自动类型转化
		System.out.println(x);
		
		//long z = 1234567890111; 程序会出错 程序中纯输入数据会直接被当成int类型
		long z = 1234567890111L;
		System.out.println(z);

	}

}

package bilili;

public class ZhengShuXing2 {

	public static void main(String[] args) {
		byte b = 50; //无法编译成功 50是int类型的字面值 b是byte类型的变量
		//显然是大容量转换成小容量 但是50
		byte c = 127; //可以
		//byte d = 128; // byte取值范围 -128~127
		
		System.out.println(b);
		long l = 123456789L;
		//int x = l;	编译报错:大容量不能直接赋值个小容量
		int x = (int)l;//强制类型转化需要加强制类型转换符,但可能损失精度
		System.out.println(l);
		System.out.println(x);

	}

}

55
在这里插入图片描述
//算数运算符

package bilili;

/*
 * java中的基本算数运算符
 * +   - *  / % ++ --
 */

public class SuanShuYunSuanFu {

	public static void main(String[] args) {
		
		int i =10;
		int j = 3;
		System.out.println(i + j); //13
		System.out.println(i - j);// 7
		System.out.println(i * j); //30
		System.out.println(i % j); //1
		
		//关于 ++ (自加1)
		int k = 10;
		k++;  
		System.out.println(k); //11
		
		int y = 9;
		++y;
		System.out.println(y); //10
		
		//++在变量之后
		int a = 100;
		int b = a++;    // 相当于b = a; a++
		System.out.println(a); //101
		System.out.println(b);  //100先进行赋值运算 然后再运算 
		
		//++在变量之前
		int m =32;
		int n = ++m;  // ++m ;n =m
		System.out.println(m); // 33  
		System.out.println(n);  //33 先进行运算再赋值
		
		int e = 1000;
		System.out.println(e++); //1000
		System.out.println(e);  //1001
		

	}

}

//关系运算符

package bilili;
/*
 * 关系运算符:>  <   >=   <=   ==  !=
 */

public class GuanXiYunSuanFu {

	public static void main(String[] args) {
		
		int a= 10;
		int b = 9;
		//运算原理 比较的是a变量中保存的这个值和b变量中保存的值
		
		System.out.println(a > b); //true
		System.out.println(a >= b); //true
		System.out.println(a < b);  //
		System.out.println(a <= b); //false
		System.out.println(a == b); //f
		System.out.println(a != b); //t

	}

}

//逻辑运算符 (位运算符)

package bilili;
/*
 * 逻辑运算符:
 * &   逻辑与
 * |   逻辑或
 * !	逻辑非
 * ^	逻辑异或  (两边的算子只要不一样,结果就是true)
 * 
 * &&	短路与(于逻辑与运算结果一样)
 * ||   短路或
 * 1.逻辑运算要求两边的算子都是布尔类型(true\false),并且逻辑运算完也是布尔类型
 * 2.什么情况短路运算? 
 * 3.什么时候选择逻辑与运算符?什么时候选择短路与运算?
 */

public class LuoJiYunSuanFu {

	public static void main(String[] args) {
		System.out.println(5>3 & 5>2);  //t
		System.out.println(5>3 & 5>6);  //f
		System.out.println(5>3 & !(5>6));  //t
		System.out.println(5>3 ^ 5>6);   //t
		
		//逻辑与和短路与
		/*
		int x = 10;
		int y = 12;
		System.out.println(x < y & ++x < y);  //true
		System.out.println(x);  //11
		*/
		
		
		int x = 10;
		int y = 8;
		System.out.println(x < y && ++x < y);  //false 
		// x<y 是false 整个表达式结果已经确定是false 所以后边的表达式不会被执行,这种现象称为短路现象
		System.out.println(x);  //10
		
		/*什么情况会发生短路或?
		 * 	第一个表达式执行完式true,会发生短路或。
		 *什么情况下发生短路与?
		 * 	第一个表达式执行完情况是false。
		 */
	}

}

算数运算符

package bilili;

/*
 * java中的基本算数运算符
 * +   - *  / % ++ --
 */

public class SuanShuYunSuanFu {

	public static void main(String[] args) {
		
		int i =10;
		int j = 3;
		System.out.println(i + j); //13
		System.out.println(i - j);// 7
		System.out.println(i * j); //30
		System.out.println(i % j); //1
		
		//关于 ++ (自加1)
		int k = 10;
		k++;  
		System.out.println(k); //11
		
		int y = 9;
		++y;
		System.out.println(y); //10
		
		//++在变量之后
		int a = 100;
		int b = a++;    // 相当于b = a; a++
		System.out.println(a); //101
		System.out.println(b);  //100先进行赋值运算 然后再运算 
		
		//++在变量之前
		int m =32;
		int n = ++m;  // ++m ;n =m
		System.out.println(m); // 33  
		System.out.println(n);  //33 先进行运算再赋值
		
		int e = 1000;
		System.out.println(e++); //1000
		System.out.println(e);  //1001
		

	}

}

赋值运算符

package bilili;

/*
 * 基本赋值运算符: =
 * 扩展运算符: -=、 +=、*=、/=、%=
 */

public class FuZhiYunSuanFu {

	public static void main(String[] args) {
		int i = 10;
		System.out.println(i);
		
		i += 11;   //i = i + 5;
		System.out.println(i); //21
		
		byte b = 10;
		//b=b+5;   编译错误,编译器只检查语法不运行程序,编译器发现b+5是int类型,b是byte类型的,da'rong'q
		//b+=5; 可以
		b = (byte)(b+5);
		System.out.println(b);
		
		int a = 10;
		int c = 20;
		
		System.out.println("a+c="+a+c); //1020
		System.out.println("a+c="+(a+c)); //30 

	}

}

三元运算符

package bilili;

/*
 * 三元运算符/三目运算符/条件运算符
 * 	1.语法规则:
 * 		布尔表达式 ? 表达式1 :表达式2
 *  2.三元运算符的执行原理?
 *  	当布尔表达式的结果为真(true)的时候,  选择表达式1为表达式的执行结果
 *  	当布尔表达式的结果为假(false)的时候,选择表达式2为表达式的执行结果
 */

public class SanYuanYunSuanFu {

	public static void main(String[] args) {
		
		boolean sex = false;	
		char c = sex ? '男':'女';
		System.out.println(c);  //女
		
		sex = true;
		String s =sex? "man":"woamn";
		System.out.println(s);   //男

	}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值