疯狂java讲义之数据类型与运算符
Java是一门强类型语言
所有变量必须先声明、后使用
指定类型的变量只能接受类型匹配的值
注释
@author
作者
@version
版本
@param
方法参数
@return
返回值
标识符与关键字
分隔符
;
{}
[]
()
.
数据类型
基本类型
boolean
数值类型
整数类型
byte
1个字节
8位2进制
short
2个字节
16位2进制
int
4个字节
32位2进制
long
8个字节
64位2进制
浮点类型
float
4个字节
第一位是符号位
接下来8位表示指数
接下来23位表示尾数
double
8个字节
第一位是符号位
接下来11位表示指数
接下来52位表示尾数
两种表现形式
十进制
5.12
512.0
.512
科学计数
5.12e2
表示5.12*10²
字符类型
char
2个字节
引用类型
类
接口
数组
null
整数的4种表示方式
十进制
二进制
0b
0B
八进制
0
十六进制
0x
0X
ASCII字符集
只要一个字节,8位,支持256个字符编号
Unicode字符集
两个字节,16位,支持65536个字符编号
字符值的三种表示形式
直接通过单个字符表示
A、9、0
通过转义字符表示特殊字符
\t
通过Unicode值来表示
\uXXXX
bool值得作用
if
while
for
?:
类型转换
自动类型转换
byte→short→int→long→float→double
强制类型转换
运算符
算术运算符
+
加
-
减
*
乘
/
除
%
求余
++
自加
++a先加1再运算
a++先运算,再加1
赋值运算符
=
+=
-=
*=
/=
%=
&=
|=
>=
比较运算符
>
>=
>
右移
字符串例子
char aChar = 'a';
char enterChar = '\r';
char ch = '\u9999';
System.out.println(aChar); // a
System.out.println(enterChar);
System.out.println(ch); // 香
char zhong = '疯';
int zhongValue = zhong;
System.out.println(zhong); // 疯
System.out.println(zhongValue); //30127
char c = 97;
System.out.println(c); // a
// 字符串
String s = "我爱你\u9999";
System.out.println(s); // 我爱你香
运算例子
double a = 5.2;
double b = 3.1;
double div = a/b;
System.out.println(div); //1.6774193548387097
System.out.println("5除以0.0的结果:" + 5/0.0); // Infinity 正无穷
System.out.println("-5除以0.0的结果:" + -5/0.0); // -Infinity 负无穷
//System.out.println("5除以0的结果:" + 5/0); // 报错
//System.out.println("-5除以0的结果:" + -5/0);
int ia = 5;
int ib = ia++ + 6;
System.out.println(ib); // 11
int ia2 = 5;
int ib2 = ++ia2 + 6;
System.out.println(ib2); // 12
System.out.println("5是否大于4.0:" + (5 > 4.0));
System.out.println("5和5.0是否相等:" + (5 == 5.0));
System.out.println("97和'a'是否相等:" + (97 == 'a'));
System.out.println("true和false是否相等:" + (true == false));
// ||与|的区别
int a1 = 5;
int b1 = 10;
if (a1 > 4 | b1++ >10) {
System.out.println("a1的值是:" + a1 + ",b1的值是:" + b1); // b1的值为11
}
int a2 = 5;
int b2 = 10;
if (a2 > 4 || b2++ >10) {
System.out.println("a2的值是:" + a2 + ",b2的值是:" + b2); // b2的值为10
}
自动转换例子
package ch3;
/**
* Created by Jiqing on 2016/11/6.
*/
public class AutoPromote {
public static void main(String[] args) {
byte b = 40;
char c = 'a';
int i =23;
double d = .314;
double result = b+c+i*d;
System.out.println(result); // 144.22 自动转为最高级的double型
int val = 3;
int intResult = 23/val;
System.out.println(intResult); // 7
System.out.println("hello!" + 'a' + 7); // hello!a7
System.out.println('a' + 7 + "hello!"); // 104hello!
System.out.println('a' + "hello!"); // ahello!
}
}
强制转换例子
package ch3;
/**
* Created by Jiqing on 2016/11/6.
*/
public class NarrowConversion {
public static void main(String[] args) {
int iValue = 233;
byte bValue = (byte)iValue; //强制转换
System.out.println(bValue); // 变成-23
double dValue = 3.98;
int tol = (int)dValue;
System.out.println(tol); // 变成了3
float a = (float) 5.6; // 默认是double,需要强制转换
String score = "100";
int iScore = Integer.parseInt(score); // (int) 不能将字符串变为int
System.out.println(RandomStr(6));
}
public static String RandomStr(int length) { // 利用强制转化生产随机字符串
String result = "";
for (int i = 0;i<length;i++) {
int intVal = (int)(Math.random()*26 + 97);
result = result + (char)intVal;
}
return result;
}
}
疯狂java讲义之数据类型与运算符的更多相关文章
- 【Java】-NO.16.EBook.4.Java.1.002-【疯狂Java讲义第3版 李刚】- 数据类型
1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.002-[疯狂Java讲义第3版 李刚]- 数据类型 Style:EBook Series:Java ...
- 【Java】-NO.16.EBook.4.Java.1.003-【疯狂Java讲义第3版 李刚】- oop
1.0.0 Summary Tittle:[Java]-NO.16.EBook.4.Java.1.003-[疯狂Java讲义第3版 李刚]- oop Style:EBook Series:Java S ...
- 《疯狂java讲义》笔记 1-5章
1.编译语言和解释语言理解,摘自李刚老师的<疯狂Java讲义>第三版: 就是说,Java和.net都是编译型有事解释型语言.编译型就是根据不同平台编译成不同的可执行机器码,编译过程中会进行 ...
- 《疯狂java讲义》读后感
<疯狂java讲义·第三版>,全书共851页,18章. 目录如下: 第1章 Java语言概述与开发环境 第2章 理解面向对象 第3章 数据类型和运算符 第4章 流程控制与数组 第5章 面向 ...
- 《疯狂Java讲义第4版》PDF+代码+课件 电子书pdf 分享
<疯狂Java讲义(第4版)>是<疯狂Java讲义>的第4版,第4版保持了前3版系统.全面.讲解浅显.细致的特性,全面新增介绍了Java 9的新特性. <疯狂Java讲义 ...
- 读《疯狂Java讲义》笔记总结一
最近在读<疯狂Java讲义>,现把其中遇到的一些自己以前没掌握的点儿记录下来. 1.字符串相关 字符串不是基本类型,字符串是一个类,也就是一个引用类型. 字符串转int类型String a ...
- 0038 Java学习笔记-多线程-传统线程间通信、Condition、阻塞队列、《疯狂Java讲义 第三版》进程间通信示例代码存在的一个问题
调用同步锁的wait().notify().notifyAll()进行线程通信 看这个经典的存取款问题,要求两个线程存款,两个线程取款,账户里有余额的时候只能取款,没余额的时候只能存款,存取款金额相同 ...
- 《疯狂Java讲义》(一) ---- 关于学习Java的反思
"听到Spring很火,就立马买来一本Spring的书来读,最后结果往往是失败,因为这种学习没有积累,没有根基,学习过程中困难重重,每天都被一些相同.类似的问题所困扰,起初热情十足,经常上论 ...
- 疯狂java讲义——继承
本文章只是记录我在学习疯狂java讲义里面,对之前java知识查缺补漏进行的总结. 方法重写 方法重写要遵循"两同两小一大"规则."两同"即方法名相同.形参列表 ...
随机推荐
- 字符拆分存入Map计算单词的个数
///计算从命令行输入单词的种类与个数//Map<key,Value>Key-->单词:Value-->数量
- Node.js 博客实例(一)简单博客
原教程 https://github.com/nswbmw/N-blog/wiki/_pages的第一章.因为版本号等的原因,在原教程基础上稍加修改就可以实现. 环境: win7旗舰版64位 Node ...
- 闲来无事爬了下通讯录 试手 jsdom
curl http://xxx.com/address/addresslist\?search\=%40 --cookie oa_cookie=123 -s| node parss .js js 代码 ...
- D3js-绘制地图时出现过小, 设置scale还是无效 的解决方法
使用d3绘制某个地市的地图时,把scale成非常大但是还是无法达到想要的效果. //---------------------------------------------------------- ...
- 去除iframe滚动条
主页面的IFRAME中添加:scrolling="yes" 子页面程序代码: 让竖条消失: <body style='overflow:scroll;overflow-x:a ...
- VSCode向上的代码提示消除
VSCode虽然好用, 但是有些用户体验实在非常差, 比如这种往上面弹的类型提示... 在用户设置中增加: "editor.parameterHints": false
- (转载)ListView与ScrollView冲突的4种解决方案
问题解决方案1.手动设置ListView高度 经过测试发现,在xml中直接指定ListView的高度,是可以解决这个问题的,但是ListView中的数据是可变的,实际高度还需要实际测量.于是手动 ...
- Optional Chaining as an Alternative to Forced Unwrapping
?与!的区别 You specify optional chaining by placing a question mark (?) after the optional value on whic ...
- Thread Control Block
Thread Control Block The following is the declaration of the Thread Control Block. struct tcb { u32_ ...
- document.body
比如document.body,最好是写成document.getElementsByTagName("body")[0];