美文网首页
2018-08-23

2018-08-23

作者: 老茂在北京 | 来源:发表于2018-08-23 21:40 被阅读8次

基础语法

包其实就是文件夹

常量

常量:在程序执行的过程中,其值不发生改变的量
分类:

  • 字面值常量
  • 自定义常量(后面讲)

字面值常量

  • 字符串常量 "hello"
    整数常量 12,23
    小数常量 12.345
    字符常量 'a','A','0'
    布尔常量 true,false
    空常量 null

整数常量四种表现形式

  • 二进制 由0,1组成。以0b开头。
    八进制 由0,1,...7组成。以0开头。
    十进制 由0,1,...9组成。整数默认是十进制。
    十六进制 由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。
进制转换(了解)

(1)其他进制到十进制
系数:就是每一个位上的数值
基数:x进制的基数就是x
权:对每一个位上的数据,从右,并且从0开始编号,对应的编号就是该数据的权。
结果:系数*基数^权次幂之和。
(2)十进制到其他进制
除基取余,直到商为0,余数反转。
(3)进制转换的快速转换法
A:十进制和二进制间的转换
8421码。
B:二进制到八进制,十六进制的转换

变量

变量定义的两种格式:

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

数据类型(掌握)

数据类型

分类:

  • 基本数据类型:4类8种
  • 引用数据类型:类,接口,数组。

基本数据类型

    A:整数            占用字节数
        byte            1
        short           2
        int (默认)      4
        long            8
    B:浮点数
        float           4
        double(默认)    8
    C:字符
        char            2
    D:布尔
        boolean         1
        
注意:
    整数默认是int类型,浮点数默认是double。
    长整数要加L或者l。
    单精度的浮点数要加F或者f。

数据类型转换(掌握)

  • boolean 类型不参与转换
  • 默认转换
    • 从小到大
    • byte,short,char -- int -- long -- float -- double
    • byte,short,char之间不相互转换,直接转成int类型参与运算。
  • 强制转换
    • 从大到小,可能会有精度的损失,一般不建议这样使用。
    • 格式:目标数据类型 变量名 = (目标数据类型) (被转换的数据);
//思考题和面试题
//1. 下面两种方式有区别吗?
float f1 = 12.345f;
float f2 = (float)12.345;//容易损失精度,默认double

//2. 下面的程序有问题吗,如果有,在哪里呢?
byte b1 = 3;
byte b2 = 4; 
byte b3 = b1 + b2; //两个byte相加自动转换为int,应该为(byte)(b1+b2)
byte b4 = 3 + 4;//常量默认int类型,再转换为byte会出错

//3. 下面的操作结果是什么呢?
byte b = 130; //byte的范围是-128--127
              //可以使用 byte b = (byte)300,实际b=-126,是原码,补码,反码

//4. 字符参与运算
//ASCII里面的值
/*  'a'     97
    'A'     65
    '0'     48
*/
System.out.println('a'); // a
System.out.println('a' + 1); //98

//5. 字符串参与运算。这里其实是字符串的连接
System.out.println("hello"+'a'+1); //helloa1
System.out.println('a'+1+"hello"); //98hello
System.out.println("5+5="+5+5); //5+5=55
System.out.println(5+5+"=5+5"); //10=5+5

注意事项

  • 在定义Long或者Float类型变量的时候,要加L或者f。

  • 整数默认是int类型,浮点数默认是double。

  • byte,short在定义的时候,他们接收的其实是一个int类型的值。 自己做了一个数据检测的,如果不再它们的范围内,就报错。

  • byte值的问题

  byte b1 = 127;
  byte b2 = (byte)128; //-128
  byte b3 = (byte)129; //-127
  byte b4 = (byte)130; //-126
//byte的范围:-128 ~ 127
    
//  128:10000000
//  -128:10000000 (这里的1即是符号位,也是数值位)
  • 数据类型转换之默认转换
    • byte,short,char -- int -- long -- float -- double
    long: 8个字节
    float:4个字节
    
    A:它们底层的存储结构不同。
    B:float表示的数据范围比long的范围要大
        long:2^63-1
        float:3.4*10^38 > 2*10^38 > 2*8^38 = 2*2^3^38 = 2*2^114 > 2^63-1
  • Java语言中的字符char可以存储一个中文汉字吗?为什么呢?
    • 可以。因为java语言中的字符占用两个字节。
    • Java语言采用的是Unicode编码。

运算符(掌握)

算术运算符

  • +的用法
    • 加法
    • 正号
    • 字符串连接符
  • /%的区别
    • 数据做除法操作的时候,/取得是商,%取得是余数
  • ++--的用法
    • 放在操作数的前面:先自增或者自减,再参与操作
      int a = 10;
      int b = ++a; //b=11
    • 放在操作数的后面:先参与操作,再自增或者自减
      int a = 10;
      int b = a++; //b=10

赋值运算符

  • =,+=,-=,*=,/=,%=
  • =叫做赋值运算符,也是最基本的赋值运算符
    int x = 10; 把10赋值给int类型的变量x。
  • 扩展的赋值运算符的特点
    • 隐含了自动强制转换。
//请问上面的代码哪个有问题?
short s = 1;
s = s + 1;
                
short s = 1;
s += 1;

比较运算符

  • ==,!=,>,>=,<,<=
  • 无论运算符两端简单还是复杂最终结果是boolean类型。
  • 千万不要把==写成了=

逻辑运算符

  • &,|,^,!,&&,||
  • 结论
    • &有false则false
    • |:有true则true
    • ^:相同则false,不同则true。
    • !:非true则false,非false则true
    • &&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
    • ||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。

位运算符(了解)

    A:^的特殊用法
        一个数据针对另一个数据位异或两次,该数不变
    B:面试题
        a:请实现两个变量的交换
            **采用第三方变量
            **用位异或运算符
                左边a,b,a
                右边a^b
        b:请用最有效率的方式计算出2乘以8的结果
            2<<3

三元运算符

    A:格式
        比较表达式?表达式1:表达式2;
    B:执行流程:
        首先计算比较表达式的值,看是true还是false。
        如果是true,表达式1就是结果。
        如果是false,表达式2就是结果。
    C:案例:
        a:比较两个数据是否相等
        b:获取两个数据中的最大值
        c:获取三个数据中的最大值

键盘录入(掌握)

A:导包
import java.util.Scanner;
B:创建对象
Scanner sc = new Scanner(System.in);
C:获取数据
int x = sc.nextInt();

相关文章

  • 设立具体的目标

    2018-08-23 戴师傅 2018-08-23 20:32 打开App (稻盛哲学学习会)打卡第120天 姓名...

  • 去掉烂模式,从自己做起

    幸福时刻(173)2018.8.23 利花花 关注 2018-08-23 11:20 · 字数 2049 · 阅读...

  • Day11 #100DaysofMLCoding#

    2018-08-23 24https://github.com/hse-aml/intro-to-dl以及如何用c...

  • 懂你 L4-U1-1-Dialogue

    流利说 D57 2018-08-23 四 一、复习 Level4-Unit1-Part1*Learning- Vo...

  • 2018-08-23

    《如何学习》四 41晓春 晓春的蜗居 2018-08-23 07:19 · 字数 412 · 阅读 0 · 日记本...

  • 设立具体的目标

    2018-08-23 (稻盛哲学学习会)打卡第101天 姓名:祝新华 部门:业务部 组别:待定 【知~学习】...

  • 设立具体的目标

    2018-08-23 (稻盛哲学学习会)打卡第140天 姓名:王燕君 部门:分水碶 组别:利他三组 【知~学习】 ...

  • Android集成友盟QQ分享闪退,IllegalStateEx

    问题: 集成友盟,分享到QQ,出现闪退。 手机:华为P10,操作系统:安卓 8.0 | 2018-08-23 22...

  • 2018-08-23

    2018-08-23 事件:今天单位同事一起聚餐。 感受:开心,感恩,感谢。 想法:这几年和大家在一起很开心,感恩...

  • 2018-08-23推广恩师课程

    2018-08-23推广恩师--小巫老师,小巫养育学堂的课程。非常感恩平台给到我的支持。感恩这份美好的相遇,越成长...

网友评论

      本文标题:2018-08-23

      本文链接:https://www.haomeiwen.com/subject/mvqviftx.html