java学习笔记day2

java学习笔记day1

2019/6/1 今天介绍了类的方法定义,调用,注释,javadoc命令,基本数据类型,类型转化 一个字节八位

java数据类型

基本类型:程序的基本功能是处理数据,程序用变量来表示数据;
程序中必须先定义变量才能使用;
定义变量是指设定变量的数据类型和变量的名字,
定义变量的基本语法为:
数据类型 变量名;

Java语言把数据类型分为基本类型和引用类型。
基本数据类型
数值类型
整数类型:byte,short,int,long
浮点数类型:float,double
布尔类型:boolean
字符类型:char
引用数据类型
类类型:比如String
接口类型
数组类型

整数类型

 byte, short, int和long都是整数类型,并且都是有符号整数。
	     与有符号整数对应的是无符号整数,两者的区别在于
             把二进制数转换为十进制整数的方式不一样。
          . 有符号整数把二进制数的首位作为符号数,
	       当首位是0时,对应十进制的正整数,
	       当首位是1时,对应十进制的负整数。
	       对于一个字节的二进制数, 它对应的十进制数的取值范围是-128 - 127。
          . 无符号整数把二进制数的所有位转换为正整数。
	    对于一个字节的二进制数, 它对应的十进制数的取值范围是0 - 255。

在Java语言中,为了区分不同进制的数据,八进制数以“0”开头,十六制以“0x”开头。

浮点类型

      浮点类型表示有小数部分的数字。Java中有两种浮点类型:

      . float: 占4个字节,共32位,称为单精度浮点数;
      . double: 占8个字节,共64位,称为双精度浮点数;

       float和double类型都遵循IEEE754标准,该标准分别为32位和64位浮点数规定了二进制数据表示形式。

       float=1(数字符号)+8(指数,底数为2)+23(尾数)
       double=1(数字符号)+11(指数,底数为2)+52(尾数)

boolean类型

             位置			boolean类型变量取值   
             ------------------------------------------------------------   
             Java源程序             只能是true或false
             class文件              用int或byte表示boolean
             虚拟机中           用整数0来表示false, 有任意一个非零整数表示true

             强调,在Java源程序中不允许把整数或null赋给boolean类型的变量,
	 这是有别于其它语言(如c语言)的地方. 例:

             boolean isMarried = 0;          //编译出错,提示类型不匹配
             boolean isMarried = null;       //编译出错,提示类型不匹配

字符类型

Java语言采用UCS-2字符编码,字符占2个字节。
                    字符a的二进制数据形式为 0000 0000 0110 0001
                         十六进制数据形式为 0x0061
                         十进制数据形式为 97
                以下4种赋值方式是等价的:
                
               char c = 'a';
               char c = '\u0061';      //设定"a"的十六进制数据的Unicode字符编码
               char c = 0x0061;        //设定"a"的十六进制数据的Unicode字符编码
               char c = 97;            //设定"a"的十进制数据的Unicode字符编码

数据类型的转换:
1)强制类型转换:精度高向精度低的转换
byte b = (byte)129;
2)隐式类型转换:精度低向精度高的转换
byte<short<int<long<float<double

基本类型和引用类型的区别

​ 1) 基本类型代表简单的数据类型,比如整数和字符。
​ 引用类型代表复杂数据类型,引用类型所引用的
​ 实例包括操纵这种数据类型的行为。

​ 通过"."运算符,就能访问引用变量所引用的实例的方法.
​ 2) 基本类型Java虚拟机会为其分配数据类型实际占用的内存空间;
​ 引用类型仅是一个指向堆区中某个实例的指针。

明白什么是面向对象编程

​ 面向对象的开发方法把软件系统看成各种对象的集合,
​ 对象就是最小的子系统,一组相关的对象能够组合成更复杂的
​ 子系统。面向对象的开发方法将软件系统看成各种对象的集合,
​ 接近人的自然思维方式。

类是一组具有相同属性和行为对象的模板。
面向对象编程的主要任务就是定义对象模型中的各个类。

​ 对象是对问题领域中事件的抽象。对象具有以下特性:

​ 1) 万物皆为对象。问题领域中的实体和概念都可以抽象为对象。
​ 例如学生,成绩单、教师、课和教室。
​ 2) 每个对象都是惟一的。正如世界上不存在一模一样的叶子。
​ 3) 对象具有属性和行为。
​ 例如小张,性别女,年龄22,身高1.6m, 体重40kg, 能够学习,唱歌。
​ 小张的属性包括姓名、性别、年龄、身高和体重,行为包括学习、唱歌。
​ 例如一部手机,牌子是诺基亚、价格是2000元,银白色,能够拍照、打电话和收发短信等。这部手机的属性包括
​ 品牌类型type、价格price和颜色color,行为包括拍照takePhoto(),打电话call(),收发
​ 短信receiveMessage()和发短信sendMessage().
​ 4) 对象具有状态。状态是指某个瞬间对象的各个属性的取值。
​ 对象的某些行为会改变对象自身的状态,即属性的取值。
​ 例如小张本来体重为40kg,经为减肥后,体重减到45kg.

​ 肥胖状态: 40kg
​ |
​ | 减肥行为
​ |
​ 肥胖状态: 35kg

​ 5) 每个对象都是某个类的实例。小张和小王都属于学生类、
​ 中国和美国都属于国家类、中文和英文都属于语言类。
​ 类是具有相同属性和行为的对象的集合。

​ 同一个类的所有实例都有相同属性,但属性取值不一事实上相同,
​ 但是它们的状态不一定相同。例如小张和小王都属
​ 于学生类,都有姓名、性别、年龄、身高和体重这些属性,
​ 但是他们的属性取值不同。

​ 同一个类的所有实例都有相同行为,意味着它们具有一些相同的功能。

推荐命名规则

标识符:类、方法和变量的名字
1) java标识符以字母、和$开头,不能以数字开头,后跟字母、数字、“”和“$”的组合;
2) 大小写敏感
3) 没有长度限制。
4) 不能使用java的关键字
举例: 合法标识符 非法标识符
try try#
GROUP_7 7GROUP
openDoor open-door
boolean1 boolean

推荐命名规则

​ 1) 类名以大写字母开头;
​ 2) 接口名以大写字母开头;
​ 3) 方法名以小写字母开头;
​ 4) 变量名以小写字母开头;
​ 5) 常量名全部大写,多个单词以"_"连接;

byte的取值范围为什么是-128~127?

https://blog.csdn.net/qq_22771739/article/details/84496115 大致意思我认为就是让-0有意义且能够让其范围成一个环

题目

1.测试b的结果,并且说明为什么会出现这样的结果?

byte a=(byte)129;
   int b=a;
   System.out.println(b);	-127

2.测试该结果,并解释为什么会出现这样的结果?

System.out.println((int)(char)(byte)-1);

第一步:int类型的-1强转为byte类型 还是-1

第二部:byte类型的-1转化为char,由ascii码表,-1是不在表范围之内,因为默认char占2个字节,所能存的最大值是65536个,所以char的数字范围是0-65535,把-1转为char,会倒着找,就是最大值65535,

第三步:char类型的65535转换为int还是65535
posted @ 2019-06-01 13:44  等不到时光等天亮  阅读(209)  评论(0编辑  收藏  举报