java的基础部分
1 标识符由英文字母,数字0到9 ,$和_组成,数字不能开头
2 每个字节是由八个开关组成的,八个二进制代表一个字节
八进制三位代表一位,十六进制四位代表一位
3 十进制转为二进制 除二取余数 从右边开始 java中有对应的方法把十进制转为二进制:
Integer.toBinaryString(6)
/*
例子1:
这是一个十进制转为二进制的运算代码
方法和步骤:
二进制转为十进制 除二取模运算
注意以下例子的输出结果是00001 ,我们要按着输出结果后面读起,因为第一个做运算的结果被第一个打印出来了
*/
class ToTwo
{
public static void main(String[] args)
{
int x=16;
System.out.println(Integer.toBinaryString(x));//这里是直接调用方法输出二进制结果 10000
while(x>0)
{
System.out.print(x%2); //打印x%2的值
x=x/2; //把x除以2
}
}
}
4 负数的二进制表现形式
二进制取反加一 取反:将二进制的1变成0,0变成1
负数的最高位都是1
5 定义char类型时要带上'' char a='1'; //定义字符类型时,都要带上单引号
6 取模运算,就是取余数 a%b
左边小于右边的时候结果是左边 a<b a
左边等于右边结果是零 a=b 0
右边是1 结果是0
7 转义字符\n:换行 转义字符要写在被转义字符的前面
\b:退格
\r :按下回车键
window系统,回车符是由两个字符来表示\r\n
Linux系统,回车符是\n表示
\t:制表符,相当于tab键 使输出结果更美观
8 x+=3 左右两边的和赋给左边
x+=3和x=x+3的区别:
左边会自动提升
/*
例子2:测试是否自动提升
*/
class TiSheng
{
public static void main(String[] args)
{
short x=1;
//相当于x=x+3 x是短整形short , 3是整形int ,右边的x+3运算时x会自动提升为整形int,那么右边的运算结果是int类型
这时候左边的x会自动提升为int类型,所以程序不会报错
x+=3;
//x=x+3;这样写程序会报可能损失精度的错误,因为右边x+3运算结果是int类型,而x是short类型,x不会自动提升,把int类型赋值给short类型会损失精度, 可以让它强制提升:x=(int)(x+3);
x=x+3;
System.out.println(x);
}
}
9 ^异或:两边相同结果是假,两边不同结果是真
&& 双与:如果左边是假了就不运算了
&和&&的特点:
&:无论左边是true是false,右边都运算
&&:当左边为false时右边不运算 提高了效率
|:两边都参与运算
||:当左边为true,右边不运算
10 <<左移:化为二进制之后左移,右边用0补 (其实是乘以2的移动的位数次幂)
>>右移:化为二进制之后右移,左边补原来最高位的数 (其实是除以2的移动的位数次幂)
>>>带符号右移:右移,左边补0
/*
例子3:十进制转为十六进制
*/
class Test
{
public static void main(String[] args)
{
int num=60;
//&15把最后四位取出来
int n1=num & 15;
//判断n1是否大于9,如果大于9就把n1转为字母,小于9就输出数字
if (n1>9)
System.out.println((char)(n1-10+'A'));
else
System.out.println(n1);
int temp=60>>>4;
int n2=temp & 15;
if (n2>9)
{
System.out.println((char)(n2-10+'A'));
}
else
System.out.println(n2);
}
}
11 一个数和同一个数&两次,结果还是这个数
这个方法用于编码和解码
12 如果if控制的语句只有一条,中括号可以不写;如果if没有中括号的话if只控制 离他最近的那条语句,不加中括号要写得有层次
if(x>3)
System.out.print(a);
System.out.print(b);
如果不见中括号,只执行System.out.print(a);
13 if else结构 简写格式:变量=(条件表达式)?表达式1:表达式2;
例子
a>b? a:b 如果a>b则返回a否则返回b
三元运算符:
好处;可以简化if else代码
弊端: 因为是一个运算符,所以运算完必须有一个结果
n2>9?(char)(n2-10+'A'):n2
因为和n2比较,char类型会提升为int类型
14 switch(表达式)
{
case 取值1;
执行语句
break
case 取值1;
执行语句
break
.....
default;
执行语句
关于switch
1.小写,因为java是强类型语言
2.switch()里边的值只能是int short byte char
string(1.7新加入)
3.default放在哪都可以
4.千万别忘break;如果忘了程序就会顺序执行
}default是最后读的语句,如果default放在最上面,而且又没有写结束语句的 话,一直读下去,直到读到结束语句为止
如果条件都不满足就读defult默认语句,一般来说defult下面不用写break,
/**
例子4需求:根据月份,输出这个月份所属的季节
12,1,2为春季;3,4,5为夏季;6,7,8为秋季;9,10,11为冬季
*/
class SwitchTest
{
public static void main(String[] args)
{
int num=3;
Switch(num)
{
case 12:
case 1:
case 2:
System.out.print(num+"现在的季节是春季");
break;
case 3:
case 4:
case 5:
System.out.print(num+"现在的季节是夏季");
break;
case 6:
case 7:
case 8:
System.out.print(num+"现在的季节是秋季");
break;
case 9:
case 10:
case 11:
System.out.print(num+"现在的季节是冬季");
break;
default:
System.out.print("nono");
}
}
}
15 if和switch语句很像。
具体什么场景下,应用那个语句呢?
如果判断的具体数值不多,而且符合 byte short int char这四种类型
虽然两个语句都可以使用,建议使用switch语句,因为效率稍高。
其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广
------- android培训、java培训、期待与您交流!----------