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 通过转义字符表示特殊字符 通过Unicode值来表示 uXXXX bool值得作用 if while for ?: 类型转换 自动类型转换 byte→short→int→long→float→double 强制类型转换 运算符 算术运算符 + 加 - 减 * 乘 / 除 % 求余 ++ 自加 ++a先加1再运算 a++先运算,再加1 赋值运算符 = += -= *= /= %= &= |= <<= >>= 比较运算符 > >= < <= == != 逻辑运算符 && & || | ! ^ 位运算符 & 与 | 或 ~ 非 << 左移 >> 右移
字符串例子
char aChar = 'a';
char enterChar = '
';
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;
}
}