黑马程序员————学习笔记(第二天)

 —————————— ASP.Net+Android+IOS开发.Net培训、期待与您交流!——————————

关键字

  定义:被java语言赋予特殊含义的单词;

   特点:关键字中所有字母都是小写;

标识符

  定义:在程序中自定义的一些名称

  组成:26个大小写英文字母(a~z、A~Z)、0~9的数字、下划线“_”和美元符“$”的符号。

  定义合法标识符的规则:

     数字不可以开头。

     不可以使用关键字。

     java标识符的大小写严格区分。


  注意:

   在开发中,为了提高代码的阅读性,标识符的起名尽量要有意义。


标识符的命名规范:

  包名:多个单词组成时所有字母都是小写。

  如:xxyyzz.aa.bb

  类、接口名:所有单词首字母大写。

  如:XxYyZz

  变量、函数名:第一个单词首字母小写,后面如果还有单词,就一律首字母大写。

如:xxYyZz

  常量名:所有字母都用大写,若有多个单词,要用下划线“_”分割

如:XX_YY_ZZ

常量

 常量:不能改变,有固定值。

 分类:

  整数

  小数

  布尔型

  字符(用单引号’’标识)

  字符串(用双引号””标识)

  null (仅有null空值)


 整数的四种表现形式:

  二进制: 由0和1组成 满2进1

  八进制: 0~7 满8进1

  十进制: 0~9 满10进1

  十六进制: 0~9、A~F(或a~f) 满16进1

进制与进制转换

 进制:

  为什么会有多进制?

  更方便的表示数据。

 

  八进制:以0开头,二进制的每三位代表一个数值

  十六进制:以0x开头,二进制的每四位代表一个数值

 

  规律:进制越大,表现形式越短。

 进制转换:

  十进制转二进制:

  原理:除2取余数结果倒着记录

  代码体现:Integer.toBinaryString(value);

 

  二进制转十进制:

  原理:二进制数乘以2^n的过程

  比如:6的二进制转十进制

  110 (2) = 6

  1*2^0+1*2^1+1*2^2 = 0+2+4 = 6

 

  二进制转十六进制:

  原理:倒着数1 2 4 8规律,每四位代表一位

  比如:01011010 = 0x5A

  0101 1010 = 5 10

  因为数字只能表示到9,所以最后结果为0x5A

 

  二进制转八进制:

  原理:倒着数1 2 4 规律,每三位代表一位

  比如:00101010 = 052

  000 101 010 = 0 5 2


  负数的二进制:

  例如:-6

  原理:6的二进制数取反再+1

变量

  什么时候定义变量?

    当数据不确定,需要对数据进行存储时,就需要定义一个变量来完成存储动作。


  变量的定义:将不确定的数据在内存中进行存储(需要在空间中开辟一个内存空间)。

  定义变量的格式:

  数据类型 变量名 = 初始化值;

  如:int x = 4;

  基本数据类型:

    数值:

      整数(long、int、short、byte)

      小数(double、float)

   

    字符:char

    布尔:boolean


  注意:

  java中整数默认为int型,小数默认为double型。

 

  练习代码:Demo01.java

/*
变量及基本数据类型的练习.
定义变量的格式:变量类型 变量名 = 初始化值;
*/
class Demo01
{
	public static void main(String[] args)
	{
		// 整数值
		byte b = 1;
		System.out.println(b);
		int i = 2;
		System.out.println(i);
		short sh = 3;
		System.out.println(sh);
		long l = 4L;
		System.out.println(l);

		// 小数值
		float f = 1.0F;
		System.out.println(f);
		double d = 2.0;
		System.out.println(d);
		
		// 布尔值
		boolean b1 = true;
		System.out.println(b1);

	}
}

类型转换

  自动转换:小类型自动提升为大类型

  强制转换:大类型强制转换为小类型

运算符

  1. 算数运算符:+、-、*、/、%(取模/余数)、++(自增)、--(自减)

    特殊应用:

      +(字符串连接符)、++(a++或++a)

      1%5 = 1

      5%1 = 0

      1%-5 = 1

      -1%5 = -1

      ++a :先运算,再赋值

      a++ :先赋值,再运算

  2. 赋值运算符:=、+=、-=、\=、*=、%=

  3. 比较运算符:<、>、==、<=、>=、!=

  4. 逻辑运算符:

    作用:用于连接布尔类型的表达式

    表示:&(与)、|(或)、^(异或)、&&(短路与)、||(短路或)、!(非)

    特点:

      &:两边真,结果为真

         只要有假,结果为假

      |:两边假,结果为假

         只要有真,结果为真

      ^:两边相同为假,不同为真

      !:!true = false

         !false = true

      &和&&区别:

      &:两边都参与运算

      &&:左边为假,右边不参与运算

      |和||区别:

      |:同&

      ||:左边为真,右边不参与运算

  5. 位运算(二进制运算):

    作用:提高运算效率

    表示:<<(左移)、>>(右移)、>>>(无符号右移)、&(与)、|(或)、^(异或)、!(非)、~(反码)

    原理:

      <<:乘以2的移动位数次幂

      >>:除以2的移动位数次幂

     

      >>与>>>区别:

      >>:移动后补最高位用原来数据的最高位补

      >>>:移动后最高位用0补

   

    结论:

      一个数异或另一个数两次还是原数。

      如:7 ^ 4 ^ 4 = 7

  6. 三元运算符

    作用:简化条件语句的

    表示:(条件表达式)?表达式1:表达式2

    用法:当条件表达式结果为真,执行表达式1,否则执行表达式2.


转义字符:

  \n:换行

  \b:退格

  \r:回车

  \t:tab

 

  特别用法:"\""(打印")、"\\"(打印\)、"\\n"(打印\n)

 

  转义字符练习代码:Demo02.java

/*
转义字符练习
*/
class Demo02
{
	public static void main(String[] args) 
	{
		System.out.println("\\n"); // 打印\n
		System.out.println("\""); // 打印"
		System.out.println("\\"); // 打印\
	}
}

  变量交换练习代码:Demo03.java

/*
变量交换练习
*/
class Demo03
{
	public static void main(String[] args) 
	{
		int a = 5, b = 8;
		System.out.println("原来 a = " + a + " , b = " + b);
		// 方法1:定义第三方变量,用于临时存储变量改变的值
		/*
		int temp = a;
		a = b;
		b = temp;

		// 方法2:无需第三方变量,原理:两数之和减去其中一个数等于另外一个数
		// 局限于a ± b在int范围内。
		a = a + b;
		b = a - b; // 右边:5与8的和减去8等于5,赋值给b,这一步完成将a的值赋值给b
		a = a - b; // 右边:13减去5等于8并赋值给a,完成将原来的b赋值给a
		*/

		// 方法3:无需第三方变量,用异或方法完成交换
		// 原理:一个数异或另一个数两次等于原数
		a = a ^ b;
		b = b ^ a;
		a = a ^ b;
		System.out.println("交换后 a = " + a + " , b = " + b);


	}
}

  位运算练习代码:Demo04.java

/*
使用位运算获取十进制数的十六进制表现形式
*/
class Demo04
{
	public static void main(String[] args) 
	{
		int num = 60;
		int n1 = num & 15; // 通过&15,获取60的最低四位
		System.out.println((char)(n1-10+'A'));

		int temp = 60 >>> 4; // 右移四位将要获取下一组四位
		int n2 = temp & 15; // 对temp进行最低四位获取
		System.out.println(n2);

	}
}

程序流程控制:

  判断结构:

    格式1:

      if (条件表达式){ 执行语句; }

    格式2:

      if (条件表达式){ 执行语句; }

      else{ 执行语句; }

    格式3:

      if (条件表达式1){ 执行语句; }

      else if(条件表达式2){ 执行语句;}

      ......

      else { 执行语句; }


  练习代码:Demo05.java

/*
需求:根据指定的月份打印相应的季节
*/
class Demo05
{
	public static void main(String[] args) 
	{
		// 3,4,5春季 6,7,8夏季 9,10,11秋季 12,1,2冬季
		int x = 2;

		if (x > 12 || x < 1) // 首先把错误数据(大于12或小于1)除掉
		{
			System.out.println("输入错误!");
		}
		else if (x >= 3 && x <= 5)
		{
			System.out.println(x + "月,春季");
		}
		else if (x >= 6 && x <= 8)
		{
			System.out.println(x + "月,夏季");
		}
		else if (x >= 8 && x <=11)
		{
			System.out.println(x + "月,秋季");
		}
		else {
			System.out.println(x + "月,冬季");
		}
	}
}

  选择结构:

    格式:

      switch(表达式)

      {

        case 取值1;

   break;

 case 取值2;

          break;

        case 取值3;

   break;

 ......

 default:

   break;

      }

    注意:

      switch中和表达式只接收4类型的值:byte、int、short、char

      case中的选择不区分顺序,比如default可以放到case之上。

      if 和 switch有时可以替换使用,使用switch较高效


  练习代码:Demo06.java

/*
需求:根据指定的月份打印相应的季节
*/
class Demo06
{
	public static void main(String[] args) 
	{
		// 3,4,5春季 6,7,8夏季 9,10,11秋季 12,1,2冬季
		int x = 8;
		
		switch (x)
		{
		case 3:
		case 4:
		case 5:
			System.out.println(x + "月,春季");
			break;
		
		case 6:
		case 7:
		case 8:
			System.out.println(x + "月,夏季");
			break;
		
		case 9:
		case 10:
		case 11:
			System.out.println(x + "月,秋季");
			break;
		
		case 12:
		case 1:
		case 2:
			System.out.println(x + "月,冬季");
			break;
		
		default:
			break;
		}
	}
}


 —————————— ASP.Net+Android+IOS开发.Net培训、期待与您交流!——————————
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值