java笔记

Java学习笔记

1、java基础

1.1 java关键字和标识符

关键字:
    一般是编译器(eclipse或者idea)高亮显示的都是java当中的关键字,这些关键字是程序员开发者不能修改的东西,比如public class static package等等,是sun公司规定好的。


标识符:
    是程序员开发者能自己命名的单词,比如类名、方法名、变量名这些都是标识符
    其中 Hello、main就是标识符
    public class Hello {
   
	public static void main(String[] args) {
   
		
		System.out.println("Hello World!");
	}
   
}
标识符在使用的时候要遵守规则和规范:
   a、规则:字母、数字、下划线、美元符号($),不能以数字开头,不能使用关键字
    规则就是法律、语法,必须遵守,不遵守java语言就不通过,编译不通过
   b、规范:可以不遵守,但我建议大家跟规则一样都要遵守,不遵守java也不会报错,跟道德一样
      1.1 见名知意
      1.2 驼峰式命名,有高有低,高低指的是英文的大小写
          类名:首先不能用中文,用英文每个单词首字母大写,比如UserLogin
    	  方法名:首字母小写,其余大写,比如eatFoods
    	  变量名:
              常量:每个单词全大写,单词之间下划线分开,COMPUTER_COLOR就是常量
    			public static final String COMPUTER_COLOR = "红色";
              普通变量:首字母小写,其余大写,比如 computorBrand
    	  
    
    

1.2 字面值

字面值:java当中的数据,java语言组成部分,跟关键字、标识符一样
    10100-200 整数
    1.2 -1.2 浮点数
    truefalse 布尔值
    'A' 'b' '我' 字符
    “LiMing” 字符串

1.3 基本数据类型

计算机的一些常识
    byte kb mb gb tb
    1kb = 1024b
    1mb = 1024kb
    1gb = 1024mb
    1tb = 1024gb
现在的计算机都是交流电的形式运行的,他只识别所谓的01电信号
java当中的8种数据类型:
    整数型:
        byte
        short
        int
        long
    浮点型(一般用来表示小数的):
    	float
    	double
    字符型
    	char
    布尔型
    	booblean
 
    进制:
        2进制 0001
        10进制 1 2 3 11 12 13
        8进制 012
        16进制 0xF
    
    数据类型          占用字节数(1字节=8bit 也就是8位)
    --------------------------------------------
    byte			1
    short			2
    int				4
    long			8
    float			4
    double			8
    boolean         1
    char			2
    
    注意:
     1、在java当中定义的整数字面值默认是int类型
    	在我们平常使用的时候,不要太过纠结它的大小,一般用默认的int类型定义整数就可以了。
     2、类型转换问题:
    	用小范围的数接收大范围的数的时候,需要进行强制类型转换,但是转换之后的数据会不准确,也就是精度丢失。
    	强制类型转换的时候慎重加慎重。
    	只要涉及到类型转换就要慎重!!!!!
     3、在java当中定义浮点字面值的时候默认是double类型
     
     4、默认值:一切向0看齐
    		 整数:默认值就是0
    		 浮点数:默认0.0
             布尔值:默认false
    
    
    
    
    

1.4 字符

编码:计算机协会规定了一套标准,用来作为计算机和文字之间的一套字典参照表,文字和数字之间的转换表,
    因为计算只认01,单纯的文字计算机解释不了。
解码:计算机按照规定格式的字典参照(编码格式),将存储到计算机内存当中的编码后的二进制文字再解释出来。
编码-解码要按照同一套标准,如果两边标准不一致,就会出现乱码的问题。
    常见的编码格式:AscllGBKUnicode(Utf-8)
    以后开发当中经常用到的编码UTF-8  

如何定义一个字符:
    语法: char 变量名 = 字面值;
		  字面值是用''括起来的字符,字符只能是单个字符,当然转义字符是一种特殊的字符,不要混淆了,其实也是单			个字符。
          如: char char1 = 'A';
              char cahr2 = '我';
			  char char3 = '\u0001';
	转义字符:有一些特殊的字符无法用我们认识的文字表示出来,就规定了可以将常见的字符进行转义,表示出来
        比如
        	\n, 不加\ 就是一个普通的n字符,加了就是回车或换行
        	\t, 不加\ 就是一个普通的t字符,加了就是tab键
            \\ \b \r
        	

1.5 算数运算符

加(+)、减(-)、乘(*)、除(取商/ 取余%)、自增(++)、自减(–)

注意:核心点自增和自减

自增: ++前后都可以放变量

​ 变量在前:先用后本身的值加1

​ 变量在后:先本身的值加1再用

自减: --前后都可以放变量

​ 变量在前:先用后变量本身的值减1

​ 变量在后:先本身的值减1再用

public class Test03 {
   
	public static void main(String[] args) {
   
		int a = 10;
		int b = 3;
		System.out.println(a+b);
		System.out.println(a-b);
		System.out.println(a*b);
		System.out.println(a/b);
		System.out.println(a%b);
		//++ --
		//a++ 先用后加
		//++a 先加后用
		System.out.println("===========");
		int c = 1;
		System.out.println(c++);//1
		System.out.println(++c);//3
		System.out.println(c++);//3
		System.out.println(++c);//5
		System.out.println("############");
		int d = 1;
		int f = d++;
		//在程序跑完第23行的时候,它做了哪些事情
		//做了两件事
		//第一件事情:先把d的值给f
		//第二件事情:d自增,就是d本身加1,这时候d=d+1变成了2
		//注意前后两件事是按顺序的
		//f=1;
		//d=2;
		System.out.println(d);
		System.out.println(f);
		
		f = ++d;
		//在程序跑完第35行的时候,它做了哪些事情
		//做了两件事
		//第一件事情:d自增,就是d本身加1,这时候d=d+1变成了3
		//第二件事情:把自增后的d的值给到了f
		//注意前后两件事是按顺序的
		//d=3
		//f=3
		System.out.println(d);
		System.out.println(f);
	}
}

1.6 赋值运算

= (赋值)

+=(加等于)

-= (减等于)

*=(乘等于)

/= (除等于)

%=(模等于)

注意:

​ 1、做这些运算的时候,可能会出现精度丢失,也就是数据丢失的问题,需谨慎,而且编译器是不会报错的

​ 能解决的方法就是多自测

​ 2、会存在类型转换的问题,不要想当然的认为a+=b就是a=a+b,具体以下为例

public class Test04 {
   
	public static void main(String[] args) {
   
		int a = 10;
		int b = 2;
		a += b;
		System.out.println(a);//12
		System.out.println(b);
		a -= b;
		System.out.println(a);//10
		a *= b;
		System.out.println(a);//20
		a /= b;
		System.out.println(a);//10
		a %= b;
		System.out.println(a);//0
		
		System.out.println("============");
		
		byte c = 126;
	
		//byte f = 128;
		int d = 2;
		c += d;//c = 126+ 2
		//byte c = 128;
		//做这些运算的时候可能会出现精度丢失的问题
		//编译器是检查不出来的,所以以后编程需谨慎,多自测
		System.out.println(c);
		
		long f = 100;
		int g = 200;
		f += g;
		System.out.println(f);
		
		double h = 10.1;
		//g += h 并不等价于 g=g+h
		//无论是+=还是-=等等赋值运算符会存在自动类型转换的问题
		//其实下边这两个是等价的
		g += h;
		g = g + (int)h;
				
	
		
	}
}

1.7 关系运算符

表达式:变量和符号组成的一条式子,它的结果是一个值;

< <= >= ==

表达式和表达式之间可以串联使用

public class Test05 {
   
	public static void main(String[] args) {
   
		System.out.println(4 == 3);
		System.out.println(4 != 3);
		System.out.println(4 > 3);
		System.out.println(4 < 3);
		System.out.println(4 >= 3);
		System.out.println(4 <= 3);
		boolean a = (4 > 3);
		boolean b = (5 < 2);
		System.out.println(a == b);
		System.out.println((4 > 3) == (5 < 2));
		
	}
}

1.8 逻辑运算符

什么是短路:

​ 在程序当中正常的执行顺序被某个运算符给中断了,一条语句后边程序就不执行(不是不需要)了,

​ 类似于生活中的短路现象。

常用的逻辑运算符:

​ !非

​ &&短路与

​ || 短路或

​ 具体后两种逻辑运算符达短路现象以下程序为例

public class Test01 {
   
	public static void main(String[] args) {
   
		System.out.println(!(4 > 3));
		
		int a = 1;
		//&&短路与
		//true && true 为true
		//true && flase 为false
		//false && true 为false
		//false && false 为false
		System.out.println((4>3) && (5<2));//false
		
		System.out.println((4<2) && (5>a++));
		System.out.println(a);
		
		//||短路或
		//true || true 为true
		//true || flase 为true
		//false || true 为true
		//false || false 为false
		System.out.println((1>3) || (4<5));
		int b = 2;
		System.out.println((5>3) || (6<b++));
		System.out.println(b);
	}
}

1.9 三元运算符

语法:

​ 条件表达式 ? 表达式1 : 表达式2;

注意:

​ 1、三元运算结果是一个值,不能作为一条独立的语句;

​ 2、后边两个表达式的数据类型要统一,不然编译期出错,当然发生自动类型转换的时候没问题的。

public class Test02 {
   
	public static void main(String[] args) {
   
		int a = 30;
		int b = 30;

		a = (b == 20 ? 2000 : 3000);
		System.out.println(a);
		
		//a = (b == 20 ? 2000 : 11.2);
        //编译器a的类型模糊,不确定是整型还是浮点型,报错
		
	}
}

2.0 运算符的优先级

​ 没有必要去刻意记忆运算符的优先级,最简单的方式就是表达式之间加();

2.1 程序流程控制

2.1.1 选择结构if

三种用法

1、if(布尔表达式){

​ 语句体;

​ }

2、if(布尔表达式1){

​ 语句体1;

​ }else{

​ 语句体2;

​ }

3、if(布尔表达式1){

​ 语句体1;

​ }else if(布尔表达式2){

​ 语句体2;

​ }else if(布尔表达式3){

​ 语句体3;

​ }…esle{

​ 语句体…;

​ }

注意:

​ 1、if else else if可以相互结合或者嵌套使用

​ 2、在第三种方式里面else if是除了if或者elseif的其他情况,有些条件不要写重了

​ 3、花括号括起来的是代码块,}不需要以分号结尾,他是一个整体结构,

​ 只有一条条语句才需要分号结尾

public class Test03 {
   
	public static void main(String[] args) {
   
		int x = 0;
		//if的第一种用法
		if(x != 1) {
   
			System.out.println(x);
		}
		int score = 60;
		if(score > 90) {
   
			System.out.println("优秀");
		}
		if(score < 90 && score > 70) {
   
			System.out.println("良好");
		}
		if(score < 70) {
   
			System.out.println("不及格");
		}
		//if的第二种用法
		int age = 20;
		if(age > 18) {
   
			System.out.println("成年人");
		}else {
   
			System.out.println("未成年");
		}
		
		if(score > 70) {
   
			if(score < 90) {
   
				System.out.println("良好");
			}else {
   
				System.out.println("优秀");
			}
			
		}else {
   
			System.out.println("不及格");
		}
		
		//if 的第三种用法
		
		if(score > 90) {
   
			System.out.println("优秀");
		}else if(score > 70) {
   
			System.out.println("良好");
		}else {
   
			System.out.println("不及格");
		}
		System.out.println("==========");
		int score1 = 96;
		if(score1 > 90) {
   
			System.out.println("优秀");
		}else if (score1 > 95) {
   
			System.out.println("非常优秀");
		}
		
	}
}

2.1.2 switch语句

switch开关的意思

语法:

​ switch(表达式){

​ case 常量值:

​ 语句体;

​ break;//可加可不加,但是要慎重

​ case 常量值:

​ 语句体;

​ break;

​ …

​ default:

​ 语句体;

​ break;

}

注意:switch开关在用的时候,只需要知道什么时候打开什么时候结束;

​ 当switch表达式与case常量值匹配的时候开关打开,依次执行语句,去寻找break,直到遇到break

​ switch结束,找不到的话,直到switch结尾;

break:一般

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oBj-小飞猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值