1. package cn.temptation;
  2.  
  3. public class Sample01 {
  4. public static void main(String[] args) {
  5. System.out.println("第一个例子");
  6. }
  7. }
  1. package cn.temptation;
  2.  
  3. public class Sample02 {
  4. public static void main(String[] args) {
  5. // Java的基本数据类型
  6. // 分为四大类,共八种数据类型
  7. /* 占用字节数
  8. * 1、整数类型
  9. * byte: 字节类型 1 -128~127
  10. * short: 短整型 2
  11. * int: 整型 4
  12. * long: 长整型 8
  13. *
  14. * 2、浮点数类型
  15. * float: 单精度类型 4
  16. * double: 双精度类型 8
  17. *
  18. * 3、字符类型
  19. * char: 字符类型 2
  20. *
  21. * 4、布尔类型
  22. * boolean: 布尔类型 1
  23. */
  24.  
  25. // 变量:在程序执行过程中发生变化的量
  26.  
  27. // 思考:为什么要使用变量?全部都使用常量行不行?
  28. // System.out.println(123);
  29. // System.out.println(123);
  30. // System.out.println(123);
  31.  
  32. // 现在要进行修改,不要显示123了,要显示456,那么需要把前面使用常量123的地方全部改为常量456
  33. // System.out.println(456);
  34. // System.out.println(456);
  35. // System.out.println(456);
  36.  
  37. // 注意:使用变量是一种思想:通过封装变化来达到拥抱变化的结果,即在变化时,只需要修改变量赋值的地方,不需要修改变量使用的地方
  38. // int i = 123;
  39. // 变化时,只要修改变量赋值的地方
  40. // int i = 456;
  41.  
  42. // 把变量使用的地方 和 变量赋值的地方 分离开
  43. // System.out.println(i);
  44. // System.out.println(i);
  45. // System.out.println(i);
  46.  
  47. // 定义变量的格式:
  48. // 数据类型 变量名 = 初始化的值;
  49.  
  50. byte i = 3;
  51. System.out.println(i);
  52.  
  53. short j = 4;
  54. System.out.println(j);
  55.  
  56. int k = 123;
  57. System.out.println(k);
  58.  
  59. // Java中书写整型数字,不加说明,默认认为是int类型
  60. // The literal 12345678901 of type int is out of range
  61. // long m = 12345678901;
  62. // 要使用long类型,需要在数字后添加大写的L 或是 小写的l(因为小写的l和数字1容易混淆,所以使用大写的L)
  63. long m = 12345678901L;
  64. System.out.println(m);
  65.  
  66. // Java中书写浮点书数字,不加说明,默认认为是double类型
  67. // Type mismatch: cannot convert from double to float
  68. // float x = 123.456;
  69. // 要使用float类型,需要在数字后添加大写的F 或是 小写的f(为了保持风格的一致,所以使用大写的F)
  70. float x = 123.456F;
  71. System.out.println(x);
  72.  
  73. double y = 987.654;
  74. System.out.println(y);
  75.  
  76. // 字符类型使用单引号把字符包含其中
  77. char z = 'a';
  78. System.out.println(z);
  79.  
  80. // 布尔类型有两个特殊值:true 和 false
  81. boolean flag1 = true;
  82. boolean flag2 = false;
  83. System.out.println(flag1);
  84. System.out.println(flag2);
  85. }
  86. }
  1. package cn.temptation;
  2.  
  3. public class Sample03 {
  4. // int i = 123;
  5.  
  6. public static void main(String[] args) {
  7. // 使用变量的注意事项:
  8. /*
  9. * 1、作用范围(作用域):通过大括号来划定作用范围,变量不在该大括号内且没有其他的范围描述时,是无法使用的
  10. * 2、在同一作用域下,变量不能重复命名
  11. * 3、变量的初始化值:
  12. * 变量没有初始化就直接使用会语法出错
  13. * 要不在声明变量的时候就进行变量的初始化;要不就在使用的时候进行初始化
  14. */
  15. // int i = 123;
  16. // 在主函数之外定义int类型的变量i,在主函数中(大括号)中无法访问到
  17. // Cannot make a static reference to the non-static field i
  18. // System.out.println(i);
  19.  
  20. // int i = 3;
  21. // System.out.println(i);
  22. // Duplicate local variable i
  23. // int i = 4;
  24. // System.out.println(i);
  25.  
  26. // 只对变量进行声明但是不赋值
  27. // int i;
  28. // 对只声明但是不赋值的变量直接使用
  29. // The local variable i may not have been initialized
  30. // System.out.println(i);
  31.  
  32. // 先做声明
  33. // int i;
  34. // 在使用前进行赋值
  35. // i = 5;
  36. // 再使用变量,这样没有语法问题
  37. // System.out.println(i);
  38.  
  39. // 声明变量时并对变量进行初始化赋值(初始化)
  40. // int i = 2;
  41.  
  42. // 如下写法语法没有问题,但是不建议这样写(可读性差)
  43. // int i = 2; int j = 3;
  44. // System.out.println(i);
  45. // System.out.println(j);
  46.  
  47. // 如下写法也可以,但是不推荐这样写
  48. // int i = 2, j = 3;
  49. // System.out.println(i);
  50. // System.out.println(j);
  51.  
  52. // 在一行语句中对多个变量进行声明是可以的,并且多个变量之间使用英文的逗号分隔开
  53. int i, j;
  54. // 在一行语句中对于声明好的多个变量进行赋值,不能使用英文的逗号分隔开进行赋值,而只能使用英文的分号分隔开进行赋值
  55. // Syntax error on token ",", ; expected
  56. // i = 2, j = 3;
  57. i = 2; j = 3;
  58. // 上句等价于
  59. i = 2;
  60. j = 3;
  61. System.out.println(i);
  62. System.out.println(j);
  63. }
  64. }
  1. package cn.temptation;
  2.  
  3. public class Sample04 {
  4. public static void main(String[] args) {
  5. // 两个int类型的变量做加法
  6. // int i = 2;
  7. // int j = 3;
  8. // int result = i + j;
  9. // System.out.println(result);
  10.  
  11. // byte类型的变量 和 int类型的变量做加法
  12. // byte i = 2;
  13. // int j = 3;
  14. // int result = i + j;
  15. // System.out.println(result);
  16.  
  17. // int类型的变量 和 int类型的变量做加法,得到的结果赋值给一个byte类型的变量
  18. // int i = 2;
  19. // int j = 3;
  20. // Type mismatch: cannot convert from int to byte
  21. // 赋值号右侧两个int类型的变量相加,得到的结果还是一个int类型的结果,把这个int类型的结果赋值给byte类型的变量,提示类型不匹配
  22. // byte result = i + j;
  23. // System.out.println(result);
  24.  
  25. // byte类型的变量 和 int类型的变量做加法,得到的结果赋值给一个byte类型的变量
  26. // byte i = 2;
  27. // int j = 3;
  28. // Type mismatch: cannot convert from int to byte
  29. // 赋值号右侧byte类型的变量 和 int类型的变量相加,得到的结果还是一个int类型的结果(类型提升),把这个int类型的结果赋值给byte类型的变量,提示类型不匹配
  30. // byte result = i + j;
  31. // System.out.println(result);
  32.  
  33. // 解决类型不匹配错误的方法:
  34. /*
  35. * 1、将结果的数据类型改为范围大的数据类型
  36. * 2、使用强制类型转换,注意可能会发生精度丢失的问题
  37. * 联想一下:小碗盛米,大锅里的米比较少的时候,倒入小碗中是没有问题的;大锅里的米比较多的时候,倒入小碗里就有问题了
  38. */
  39.  
  40. // 强制类型转换的格式:(要转换为的数据类型)(被转换的数据内容);
  41. int i = 2;
  42. int j = 3;
  43. byte result = (byte)(i + j);
  44. System.out.println(result);
  45. }
  46. }
  1. package cn.temptation;
  2.  
  3. public class Sample05 {
  4. public static void main(String[] args) {
  5. // 字面量常量整数不加说明,默认是int类型
  6. // byte i = 127;
  7. // System.out.println(i);
  8.  
  9. // byte i = (byte)127;
  10. // System.out.println(i);
  11.  
  12. // Type mismatch: cannot convert from int to byte
  13. // byte j = 130;
  14. // System.out.println(j);
  15.  
  16. byte j = (byte)130;
  17. System.out.println(j); // -126
  18. }
  19. }
  20. /*
  21. * 原码、反码 和 补码
  22. * 规则:
  23. * 1、正数的原码、反码和补码都相同
  24. * 2、负数的反码和原码符号位相同,其他位取反;负数的补码 = 负数的反码 + 1;
  25. * 3、计算机在进行运算时,使用的是补码,最终显示出来的是原码
  26. *
  27. * int类型的正整数130的原码:0000 0000 0000 0000 0000 0000 1000 0010
  28. * int类型的正整数130的反码:0000 0000 0000 0000 0000 0000 1000 0010
  29. * int类型的正整数130的补码:0000 0000 0000 0000 0000 0000 1000 0010
  30. *
  31. * 强制类型转换做了截取
  32. *
  33. * byte类型的 补码:1000 0010 最高位是符号位
  34. * byte类型的 反码:1000 0001
  35. * byte类型的 原码:1111 1110 -126
  36. */
  1. package cn.temptation;
  2.  
  3. public class Sample06 {
  4. public static void main(String[] args) {
  5. double i = 123.45;
  6. System.out.println(i);
  7.  
  8. // 在单精度浮点数后添加F 和 对单精度浮点书进行强制类型转换为float类型,效果一致
  9. // float j = 987.65F;
  10. float j = (float) 987.65;
  11. System.out.println(j);
  12. }
  13. }
  1. package cn.temptation;
  2.  
  3. public class Sample07 {
  4. public static void main(String[] args) {
  5. // 定义两个byte类型的变量
  6. // byte i = 2;
  7. // byte j = 3;
  8.  
  9. // Type mismatch: cannot convert from int to byte
  10. // 使用加号进行加法计算时,对于比int类型范围小的数据类型进行了类型提升
  11. // byte result = i + j;
  12. // byte result = (byte) (i + j);
  13. // System.out.println(result);
  14.  
  15. // 第11行使用byte类型的变量相加提示语法错误,第16行使用int类型的字面量常量相加没有语法错误
  16. byte result = 2 + 3;
  17.  
  18. // Type mismatch: cannot convert from int to byte
  19. // byte result = 2 + 126;
  20.  
  21. System.out.println(result);
  22.  
  23. // 注意:
  24. // 变量相加,先看变量的数据类型是否有问题
  25. // 常量相加,先看结果是否在被赋值的变量的数据类型范围内
  26. }
  27. }
  1. package cn.temptation;
  2.  
  3. public class Sample08 {
  4. public static void main(String[] args) {
  5. // char字符类型 和 整型存在转换的关系
  6. System.out.println('a'); // a
  7.  
  8. char i = 'b';
  9. System.out.println(i); // b
  10.  
  11. // 把字符'c' 和 int类型的数字1做加法,加出来的结果赋值给char类型的变量j
  12. // 因为j的数据类型为char字符类型,所以输出的结果还是字符
  13. char j = 'c' + 1;
  14. System.out.println(j); // d
  15.  
  16. // 字符类型和int类型做加法,得到的结果是int类型
  17. System.out.println('c' + 1); // 100
  18.  
  19. // 字符类型和int类型做加法,得到的结果是int类型
  20. System.out.println('B' + 'e' + 'i' + 'J' + 'i' + 'n' + 'g' + 2008); // 2672
  21.  
  22. // 字符类型和字符类型做加法,得到的结果是int类型
  23. System.out.println('B' + 'e' + 'i' + 'J' + 'i' + 'n' + 'g'); // 664
  24.  
  25. // 布尔类型不参与加法运算
  26. // The operator + is undefined for the argument type(s) boolean, int
  27. // System.out.println(true + 1);
  28.  
  29. // boolean flag = false;
  30. // The operator + is undefined for the argument type(s) boolean, int
  31. // System.out.println(flag + 1);
  32. }
  33. }

【原】Java学习笔记003 - 数据类型的更多相关文章

  1. Java学习笔记三——数据类型

    前言 Java是强类型(strongly typed)语言,强类型包含两方面的含义: 所有的变量必须先声明后使用: 指定类型的变量只能接受预支匹配的值. 这意味着每一个变量和表达式都有一个在编译时就确 ...

  2. Java学习笔记2——数据类型和转换

    前提知识: 1字节=8bit:1bit以一个二极管表示,代表2个状态(0或者1):2bit代表22即4种状态(00,01,10,11),8bit即是28即256种状态,16bit即是65536种状态. ...

  3. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  4. java学习笔记16--I/O流和文件

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理 ...

  5. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

  6. Java学习笔记(04)

    Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...

  7. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  8. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

  9. java学习笔记01--数据类型

    java学习笔记01--数据类型 java数据类型划分 分为两大类型: 1)基本数据类型:类似于普通的值. 2)引用数据类型:传递的是内存的地址. 浮点类型实际上就是表示小数. java基本数据类型 ...

随机推荐

  1. SpringCloud微服务架构

    1.Eureka承载大规模系统每天千万级访问的原理 1).首先每个服务的eureka client组件默认30秒发送一个请求到eureka server拉取最近有变化的服务信息: 2).eureka还 ...

  2. 【TOGAF】总体认知

    TOGAF是什么 TOGAF(The Open Group Architecture Framework)是当前最为流行的企业架构框架理论之一,它为一个企业或组织对于企业架构的接受.创建.使用和维护提 ...

  3. python之读取配置文件模块configparser(三)高级使用---非标准配置文件解析

    非标准配置文件也是经常使用的,如何使用configparser来解析? 这要从configparser本身解析结构来说,configparser包含section和option,非标准配置文件只有op ...

  4. MySQL优化配置之query_cache_size

    原理MySQL查询缓存保存查询返回的完整结果.当查询命中该缓存,会立刻返回结果,跳过了解析,优化和执行阶段.  查询缓存会跟踪查询中涉及的每个表,如果这写表发生变化,那么和这个表相关的所有缓存都将失效 ...

  5. OAuth 2.0 授权码请求

    关于OAuth 2.0,请参见下面这两篇文章(墙裂推荐): <OAuth 2.0> <Spring Security OAuth 2.0> 纸上得来终觉浅,绝知此事要躬行.理论 ...

  6. I-think-3

    一段很有哲理的话,与大家分享一下: 时光匆匆, 有些东西很重要,有些东西不重要, 有些东西已经不再重要,有些东西还是很重要. 宏观地看待人生,大学文凭只是一种达到目标的途径,而并非是唯一. 主要坚定自 ...

  7. MySQL优化指南

    当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型 ...

  8. 带着新人学springboot的应用09(springboot+异步任务)

    本来想说说检索的,不过不知道什么鬼,下载ElasticSearch太慢了,还是放一下,后面有机会再补上!今天就说个简单的东西,来说说任务. 什么叫做任务呢?其实就是类中实现了一个什么功能的方法.常见的 ...

  9. 用PMML实现机器学习模型的跨平台上线

    在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环 ...

  10. 贝叶斯个性化排序(BPR)算法小结

    在矩阵分解在协同过滤推荐算法中的应用中,我们讨论过像funkSVD之类的矩阵分解方法如何用于推荐.今天我们讲另一种在实际产品中用的比较多的推荐算法:贝叶斯个性化排序(Bayesian Personal ...