当前位置: 首页 > news >正文

java第二天(关键字、常量、进制等问题)

1:关键字(掌握)
  (1)被Java语言赋予特定含义的单词
  (2)特点:
    全部小写。
  (3)注意事项:
    A:goto和const作为保留字存在
    B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记

2:标识符(掌握)
  (1)就是给类,接口,方法,变量等起名字的字符序列
  (2)组成规则:
    A:英文大小写字母
    B:数字
    C:$和_
  (3)注意事项:
    A:不能以数字开头!
    B:不能是java中的关键字!
    C:区分大小写
  (4)常见的命名规则(见名知意)
      A:包 全部小写

        单级包:小写
        举例:demo
        多级包:小写,并用.隔开
        举例:com.steve    
      B:类或者接口
        一个单词:首字母大写
        举例:Student、Demo
        多个单词:每个单词首字母大写
        举例:HelloWorld

           StudentName
      C:方法或者变量
        一个单词:首字母小写
        举例:name,main
        多个单词:从第二个单词开始,每个单词首字母大写
        举例:studentAge、showAllNames()
      D:常量:全部大写
        一个单词:大写
        举例:PI
        多个单词:大写,并用_隔开
        举例:STUDENT_MAX_AGE

3:注释(掌握)
    (1)就是对程序进行解释说明的文字
    (2)分类:
      A:单行注释 //
      B:多行注释 /**/
      C:文档注释(此注释是为了给写好的类或者方法写使用说明,最后可以导出API) /** */
    (3)把HelloWorld案例写了一个带注释的版本。
      后面我们要写一个程序的过程。
      需求:  (明确这个方法需要什么功能)
      分析:  (分析怎么实现这些功能)
      实现:  (coding)
      代码体现:(把代码改得易读简洁美观)
    (4)注释的作用
      A:解释说明程序,提高了代码的阅读性
      B:可以帮助我们调试程序
      后面我们会讲解一个更高端的一个调试工具(debug,打好程序断点,跟着走看运行顺序与执行情况)

4:常量(掌握)
    (1)在程序执行的过程中,其值不发生改变的量
    (2)分类:
      A:字面值常量
      B:自定义常量(后面讲)
    (3)字面值常量
      A:字符串常量 "hello"
      B:整数常量 12、23
      C:小数常量 12.345
      D:字符常量 'a'、'A'、'0'
      E:布尔常量 true、false
      F:空常量 null(后面讲)
    (4)在Java中针对整数常量提供了四种表现形式
      A:二进制 由0,1组成。以0b开头。
      B:八进制 由0,1,...7组成。以0开头。
      C:十进制 由0,1,...9组成。整数默认是十进制。
      D:十六进制 由0,1,...9,a,b,c,d,e,f(大小写均可)组成。以0x开头。

5:进制转换(了解)
    (1)其他进制到十进制
      系数:就是每一个位上的数值
      基数:x进制的基数就是x
      权:对每一个位上的数据,从右,并且从0开始编号,对应的编号就是该数据的权。

      结果:系数*基数^权次幂之和。
    (2)十进制到其他进制
      除基取余,直到商为0,余数反转。
    (3)进制转换的快速转换法
      A:十进制和二进制间的转换
        8421码。
      B:二进制到八进制,十六进制的转换

6:变量(掌握)
    (1)在程序的执行过程中,其值在某个范围内可以发生改变的量
    (2)变量的定义格式:
      A:数据类型 变量名 = 初始化值;
      B:数据类型 变量名;
      变量名 = 初始化值;

7:数据类型(掌握)
    (1)Java是一种强类型语言,针对每种数据都提供了对应的数据类型。
    (2)分类:
       A:基本数据类型:4类8种
     *B:引用数据类型:类,接口,数组
    (3)基本数据类型
      A:整数      占用字节数
        byte      1
        short       2
        int                4
        long              8
      B:浮点数
        float      4
        double       8
      C:字符
        char              2
      D:布尔
        boolean         1

      注意:
      整数默认是int类型,浮点数默认是double。
      长整数要加L或者l:        double d = 3.14159L
      单精度的浮点数要加F或者f:       float f = 3.14F

8:数据类型转换(掌握)
    (1)boolean类型不参与转换,只有true和false
    (2)默认转换
      A:从小到大
      B:byte、short、char --> int --> long --> float --> double
      C:byte、short、char之间不相互转换,直接转成int类型参与运算。
    (3)强制转换
      A:从大到小
      B:可能会有精度的损失,一般不建议这样使用。
      C:格式:
      目标数据类型 变量名 = (目标数据类型) (被转换的数据):

      

 

    (4)思考题和面试题:
      A:下面两种方式有区别吗?
        

float f1 = 12.345f;      //直接就是float类型
float f2 = (float)12.345;    //本来后面是double类型,强制转换成float类型后,把前4个字节截掉,只留下了后4个字节

 


      B:下面的程序有问题吗,如果有,在哪里呢?
        

   byte b1 = 3;
  byte b2 = 4;
  byte b3 = b1 + b2;    //这是类型提升问题,这儿编译会报错,因为byte类型的b1和b2做加法运算,它们会把结果转换成int类型,然后再把值赋给b3,但b3是byte类型,不能直接接受int类型的值
  byte b4 = 3 + 4;       //这个编译不会报错,因为这种情况,编译器会直接看后面的值在不在byte范围内,如果在,就不报错  
  short s = 1;
  s += 1;                //正确,扩展的赋值运算符其实隐含了一个强制类型转换。

  short s = 1;
  s = s + 1;            //这是错误的,因为(s+1)要先转换成int类型再赋值给s。

 

 


      C:下面的操作结果是什么呢?

        byte b = (byte)130;
 1       class DataTypeDemo7 {
 2       public static void main(String[] args) {
 3       //因为byte的范围是:-128到127。
 4       //而130不在此范围内,所以报错。
 5       //byte b = 130; 
 6 
 7       //我们可以使用强制类型转换
 8       byte b = (byte) 130;
 9 
10       //结果是多少呢?
11       System.out.println(b);
12         }
13       }
14       /*
15       分析过程:
16       我们要想知道结果是什么,就应该知道是如何进行计算的。
17       而我们又知道计算机中数据的运算都是补码进行的。
18       而要得到补码,首先要计算出数据的二进制。
19 
20       A:获取130这个数据的二进制。
21       00000000 00000000 00000000 10000010
22       这是130的原码,也是反码,还是补码。
23       B:做截取操作,截成byte类型的了。
24       10000010 
25       这个结果是补码。
26       C:已知补码求原码。
27       符号位    数值位
28       补码:    1    0000010
29 
30       反码:    1    0000001
31 
32       原码:    1    1111110
33       */

 


      D:字符参与运算
        是查找ASCII里面的值
          'a' 97
          'A' 65
          '0' 48

          System.out.println('a');
          System.out.println('a' + 1);
      E:字符串参与运算
        这里其实是字符串的连接

        System.out.println("hello"+'a'+1);      //helloa1

        System.out.println('a'+1+"hello");      //98hello  a的ASC码为97

        System.out.println("5+5="+5+5);      //5+5=55
        System.out.println(5+5+"=5+5");      //10=5+5

 


 

补充知识:

1.原码反码补码的讲解:

 

 

 

2.进制概述:

 

 

 

3.其他进制到十进制的转换:

4.十进制到任意进制的转换:

5.快速的进制转换法:

 

 

 

6.不同数据类型运算图解:

7.进制练习:

1:得到下面数据的十进制值:
0b10101
    =1*2^4 + 1*2^2 + 1*2^0
    =16 + 4 + 1
    =21

0123
    =1*8^2 + 2*8^1 + 3*8^0
    =64 + 16 + 3
    =83
0x3c
    =3*16^1 + c*16^0
    =48 + 12
    =60
    
2:得到下面数据的二进制,十进制,十六进制
52分别得到二进制,十进制,十六进制

得到二进制:
    52 / 2 = 26        0
    26 / 2 = 13        0
    13 / 2 = 6      1
    6  / 2 = 3      0
    3  / 2 = 1      1
    1  / 2 = 0      1
    
    0b110100
    
得到八进制:
    52 / 8 = 6        4
    6  / 8 = 0      6
    
    064
    
得到十六进制:
    52 / 16 = 3        4
    3  / 16 = 0     3
    
    0x34
    
3:有符号数据表示法的练习
    A:已知某数X的原码为10110100B,试求X的补码和反码。
        
            符号位        数值位
        
    原码:    1            0110100
    
    反码:    1            1001011
    
    补码:    1            1001100
    
    B:已知某数X的补码11101110B,试求其原码。
    
            符号位        数值位
            
    补码:    1            1101110
    
    反码:    1            1101101
    
    原码:    1            0010010

 

转载于:https://www.cnblogs.com/zhmnda/p/4770299.html

相关文章:

  • S3C2440-SDRAM
  • css布局模型
  • 延长笔记本电脑寿命的四个简单方法
  • 用 PHP 读取文件的正确方法
  • 如何开启Centos6.4系统的SSH服务
  • myEclipse和eclipse修改或复制项目名称后-更新部署名称
  • 编译静态expect现undefined reference to `openpty' 错误解决方法
  • css布局
  • [分类整理I]微软等100题系列V0.1版:c/c++基础面试题集锦
  • iOS项目开发中的知识点与问题收集整理②(Part 二)
  • [分类整理II]微软等100题系列V0.1版:链表面试题集锦
  • 网游定位人群应当有底线!
  • iOS进阶学习笔记
  • TCP/IP协议原理与应用笔记02:断点续传
  • sync_inodes和sync_filesystems
  • 「面试题」如何实现一个圣杯布局?
  • Bootstrap JS插件Alert源码分析
  • chrome扩展demo1-小时钟
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • gops —— Go 程序诊断分析工具
  • MySQL用户中的%到底包不包括localhost?
  • nodejs:开发并发布一个nodejs包
  • windows下如何用phpstorm同步测试服务器
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 大型网站性能监测、分析与优化常见问题QA
  • 大整数乘法-表格法
  • 那些被忽略的 JavaScript 数组方法细节
  • 前端攻城师
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 山寨一个 Promise
  • 少走弯路,给Java 1~5 年程序员的建议
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 用Visual Studio开发以太坊智能合约
  • 与 ConTeXt MkIV 官方文档的接驳
  • 追踪解析 FutureTask 源码
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • # 数据结构
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (11)MSP430F5529 定时器B
  • (31)对象的克隆
  • (33)STM32——485实验笔记
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (Note)C++中的继承方式
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (搬运以学习)flask 上下文的实现
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (生成器)yield与(迭代器)generator
  • (顺序)容器的好伴侣 --- 容器适配器
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .dwp和.webpart的区别
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .Net - 类的介绍