JavaSE-变量运算符if语句等

标识符

命令规范

  1. 不可以数字开头
  2. 不可用关键字(public int 等)

Java中的名称规范:

  1. 包名:多单词组成时所有字母都小写。
    • xxxyyyzzz

  2. 类名接口名:多单词组成时,所有单词的首字母大写。
    • XxxYyyZzz

  3. 变量名和函数名:多单词组成时,第一个单词首字母小写,第二
    个单词开始每个单词首字母大写。
    • xxxYyyZzz

  4. 常量名:所有字母都大写。多单词时每个单词用下划线连接。
    • XXX_YYY_ZZZ

Java中的注释格式:

  1. 单行注释
    格式: //注释文字
  2. 多行注释
    格式:
 /* 
 注释文字
*/
  1. 文档注释
    格式
/** 
注释文字 
*/

例:

/**
这是我的Hello World程序。
@author 开发者名字
*/
class Demo
{
/*
这是主函数,是程序的入口
它的出现可以保证程序的独立运行,
*/
public static void main(String[] args)
{
//这是输出语句用于将括号内的数据打印到控制台。
System.out.println("Hello World");
}
}

进制数

概念

在计算机中数据都是以2进制存储的,但为了更方便的表述数据,就设置了2、8、16等2的倍数的进制

进制间的转换

十进制转二进制

JavaSE-变量运算符if语句等_第1张图片

二进制转十进制

原理:即2乘当前所在位的次方
:下图括号中代表的是次幂
JavaSE-变量运算符if语句等_第2张图片

其他进制间的转换

JavaSE-变量运算符if语句等_第3张图片JavaSE-变量运算符if语句等_第4张图片

负数的二进制表现形式

规律:正数的最高位为0,负数则为1

JavaSE-变量运算符if语句等_第5张图片

变量

变量的概念

  1. 内存中的一个存储区域
  2. 该区域有自己的名称(变量名)和类型(数据类型)
  3. 该区域的数据可以在同一类型范围内不断变化

类型

概述

java是一门强类型语言,所有对数据类型区分的很明显

常见类型

数值型(常量整数默认为int)

  1. byte:-128~128 (-2^7 ~ 2^7)
  2. short:-32768 ~ 32767 (-2 ^ 15 ~ 2^15)
  3. int -2 ^ 32 ~ 2^32)
  4. long

浮点型

  1. float(单精度浮点型):float f=2.3f //不加f编译会认为可能会出现精度丢失,而编译不通过
  2. double(双精度浮点型)

字符集

char: 0 ~ 65535

补充

精度丢失
JavaSE-变量运算符if语句等_第6张图片
那为何byte b=3可以通过呢?
答:在赋值时编译器会检查赋的值的取值范围是否在数据类型以内,题目中值的范围符合要求。

解决方案

byte b=(byte)(b+2);

运算符

算术运算符

JavaSE-变量运算符if语句等_第7张图片

算数运算符注意点以及面试题

  1. 字符串连接符
System.out.println("5+5="+5+5);//5+5=55
System.out.println("5+5="+(5+5));//5+5=10
  1. 面试题
    所有的取模运算的正负号只看最左边的算数的符号
1%-5=1
-1%5=-1
  1. 转义字符的注意点
    Linux回车符:\n
    Windows回车符:\r\n

  2. char c=‘你’ 报错的原因
    汉字占两个字节

赋值运算符

种类

= , +=, -=, *=, /=, %=

含义

s+=2 => s=s+2

面试题

short s=4;
s=s+5;//会报错
s+=5;//不报错

原因:s+=5做完计算会做自动类型转换,原理和赋值运算一样

比较运算符

JavaSE-变量运算符if语句等_第8张图片

逻辑运算符

JavaSE-变量运算符if语句等_第9张图片

逻辑运算符注意点

  1. 逻辑运算符用于连接boolean类型的表达式

  2. & : 只要两边的boolean表达式结果,有一个为false。那么结果就是false。只有两边都为true,结果为true。

  3. | : 两边只要有一个为true,结果为true。只有两边都有false,结果为false。

  4. ^ : 异或;就是和|有点不一样。当true ^ true = false;

  5. &和&&的特点:
    &:无论左边是true是false。右边都运算。
    &&:当左边为false时,右边不运算。从而提高运算效率

  6. |:两边都参与运算。
    ||:当左边为true。右边不运算。

JavaSE-变量运算符if语句等_第10张图片位运算

左移右移运算

  1. 左移<<,左移为乘,移几位就乘2的几次方

JavaSE-变量运算符if语句等_第11张图片2. 右移>> 右移为除,移几位就除2的几次方

JavaSE-变量运算符if语句等_第12张图片

  1. 无符号右移> > > 和 >>的区别
    JavaSE-变量运算符if语句等_第13张图片

取反运算符和负数的关系

  1. 如何得出负数:即正数的值取反再+1
  2. 算法二进制数的负数值为多少:即先加1再取反得到正数,再加负号

亦或运算的实用场景

因为1 ^2 ^2=1,5 ^3 ^3=5
所以 当一个数亦或两次相同的数值时,数值不变

用途:加密,有个数据要给别人,先亦或一下,当别人收到时,再亦或一遍还原

综合练习1(变量交换)

不使用第三个变量交换两个变量的值

  1. 倒水法,前提值两数相加不会超过数据类型的范围

		//11 = 3 +  8;

		//3 = 11 - 8;
		//8 = 11 - 3;
	=
		n = n + m;//如果n和m的值非常大,容易超出int范围。
		m = n - m;
		n = n - m;
		=

		
  1. 位运算法
    原理:n ^ m ^ m=n
		n = n ^ m;

		m = n ^ m;//(n^m)^m; 多亦或一个m

		n = n ^ m;//n ^ (n ^ m) 多亦或一个n

		System.out.println("n="+n+",m="+m);

综合练习2(高效率计算2*8)

  1. 传统二进制计算2*8 ,一位位乘过去
    JavaSE-变量运算符if语句等_第14张图片2. 使用位运算 2<<3,提高效率
    JavaSE-变量运算符if语句等_第15张图片

程序流程控制

if

// 基本用法
int x = 1;

		if(x>1)
		{
			System.out.println("yes");
		}
		else
		{
			System.out.println("a");
		}

注意事项,同样if逻辑,使用if else 逻辑比全if效率高

		int n = 3;

		if(n>1)
			System.out.println("a");
		else if(n>2)
			System.out.println("b");
		else if(n>3)
			System.out.println("c");
		else
			System.out.println("d");

		/*
		if(n>1)
			System.out.println("a");
		if(n>2)
			System.out.println("b");
		if(n>3)
			System.out.println("c");
		else
			System.out.println("d");
		*/

switch

  1. 常规用法
int x = 3;
		
		switch(x)//byte short int char
		{
			default:
				System.out.println("d");
				//break;
			case 4:
				System.out.println("a");
				//break;
			case 6:
				System.out.println("b");
				break;
			case 2:
				System.out.println("c");
				break;
			
			
		}
		
  1. 注意事项
    if和switch语句很像。
    具体什么场景下,应用哪个语句呢?
    如果判断的具体数值不多,而是符合byte short int char这四种类型。
    虽然两个语句都可以使用,建议使用swtich语句。因为效率稍高。
    其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。

综合练习3(十进制转16进制)

class tenConvertSixteen{
	public static void main(String[]  args){
		int x=60;
		int n1=60&15;// 15=>0000 0000 0000 1111可以与到低四位
		System.out.println((n1>9)?(char)(n1-10+'A'):n1);
		x=x>>4;
		int n2=x&15; 
		System.out.println((n2>9)?(char)(n2-10+'A'):n2/);
		
}


}

你可能感兴趣的:(JavaSE)