10.29学习笔记

float a =10.0f ; float a =10.0
double =10.0 ; double =10.0
默认用double写 双精度 (float容易精度丢失)BigDecimal
Unicode => utf-8(1-6个字节)char a =‘中’; (char用的是单引号)
默认值(全局变量) 整数型:0 ;浮点型:0.0;Boolean:false;char:空;
常量名大写 final NUM =10;值不能改变 final(最终的,不可改变的)
一、加1操作不同
1、a++:a++先执行加1操作。
2、++a:++a后执行加1操作。
二、过程对象不同
1、a++:a++的过程对象为a参数变量。
2、++a:++a的过程对象为a++表达式。
三、操作期间a值不同
1、a++:a++在操作期间的a值为原值。
2、++a:++a在操作期间的a值为原值+1。
举个例子:
1、a=1;b=a++;运算后:b=1,a=2。
2、a=1;b=++a;运算后:b=2,a=2。
System.out.println(5 / 2); 2
System.out.println(8/0); 的结果是什么? / by zero 错误
System.out.println(浮点数/0);的结果什么? INFINITY
System.out.println(5%2);的结果什么? 1
System.out.println(5.0/2);的结果什么? 2.5
System.out.println(3+9*8.0/2%2); 3.0
System.out.println((3+9)*8.0/2%2); 0.0
强制类型转换
int类型的值将会自动的转化为double类型。但另一方面,有时候也需要将double转化为int.。在java当中允许这种数值之间的类型转化。当然也会有以一些数据丢失。在这样情况之下,需要通过强制类型转换实现这个操作,强制类型的语法格式是通过()当中给出的想要转化的目标类型。
移位运算
以下用例皆为byte类型:
①:左移(<<)
右边空出来的位用0填补高位左移溢出则舍弃该高位
左移几位其实就是这个数 *2 的几次幂在这里插入图片描述

②:右移(>>)
左边空出来的位用0或1填补,正数用0负数用1填补。
右移几位其实就是这个数/2的几次幂 -----》除法
在这里插入图片描述
③:无符号右移(>>>)
数据进行右移时,高位出现的空位,无论原高位是什么,空位都用0补
总结:左移右移其实操作的都是2的倍数
重点面试题:
用最快速度计算出216的值
public static void main(String[] args) {
//用最快的速度计算出2
8
long startTime=System.nanoTime(); //获取开始时间
System.out.println(2*16);
long endTime=System.nanoTime(); //获取结束时间
System.out.println("程序运行时间: "+(endTime-startTime)+“ns”);
在这里插入图片描述

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页