疯狂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知识查缺补漏进行的总结. 方法重写 方法重写要遵循"两同两小一大"规则."两同"即方法名相同.形参列表 ...
随机推荐
- 创业笔记-Node.js入门之一个完整的基于Node.js的web应用
用例 我们来把目标设定得简单点,不过也要够实际才行: 用户可以通过浏览器使用我们的应用. 当用户请求http://domain/start时,可以看到一个欢迎页面,页面上有一个文件上传的表单. 用户可 ...
- 保留全部Android crash信息
保留全部Android crash信息 framework/base/core/java/com/android/internal/os/RuntimeInit.java 又一次以下这个函数,增加自己 ...
- MySQL优化之——集群搭建步骤具体解释
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46833179 1 概述 MySQL Cluster 是MySQL 适合于分布式计算 ...
- 十分钟掌握diff&patch用法
作为程序员,了解diff&patch命令是非常必要的.比如说我们发现某个项目有bug代码,而自己又没有svn的提交权限,那么此时最合适的解决方法就是用diff命令做一个补丁发给项目成员.项目成 ...
- cmd 与 网卡(netsh 命令)
1. 通过命令提示符(cmd)命令连接 Wi-Fi 1.1 连接曾经连接过的 Wi-Fi :: 查看配置的列表(::表示注释) netsh wlan show profile :: 连接 netsh ...
- POJ 2739 Sum of Consecutive Prime Numbers【素数打表】
解题思路:给定一个数,判定它由几个连续的素数构成,输出这样的种数 用的筛法素数打表 Sum of Consecutive Prime Numbers Time Limit: 1000MS Memo ...
- oracle数据的启动
打开实例 , 数据库到nomount状态: startup nomount; 参数文件 内存,进程 指定控制文件数据库打开到mount状态: alter datatbase mount; 控制文件 ...
- 优动漫PAINT-草地教程
非常实用的草地教程,是场景控们绝对要学会的绘画技巧~更有配套草地笔刷~让场景绘画更简易~ 教程是简单,呃.... 没有优动漫PAINT软件肿么办? 别着急,╭(╯^╰)╮ 小编给你送来了 齐全的哟? ...
- [agc004d]salvage robot
题意: 别问我谁翻译的 虫合虫莫国的领土我们可以抽象为H*W的笼子,在这虫合土上,有若干个机器人和一个出口,其余都是空地,每次虫合虫莫会要求让所有的机器人向某个方向移动一步,当机器人移动到出口时会被虫 ...
- JavaScript函数练习
1. 判断一个数是否是素数 function isSushu (n) { n = n || 0; var isSu = true; for (var i = 2; i <= Math.sqrt( ...