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