学习资料
b站狂神说: https://www.bilibili.com/video/BV12J41137hu
类型转换
强制转换
/**
* @ProjectName: JavaSE
* @PackageName: PACKAGE_NAME
* @Author: zy7y
* @Date: 2020/8/14 上午10:17
* @Description: 类型转换; 语法 (类型)变量
*/
public class TypeConversion {
// 由低至高
// byte -> short,char -> int -> long -> float -> double
public static void main(String[] args) {
int intValue = 128;
// int 转为byte需要强转,高转底,会出现内存溢出,精度丢失
// byte byteValue = intValue;
byte byteValue = (byte)intValue;
System.out.println(byteValue); // -128
// 底转高,将自动进行转换
double doubleValue = intValue;
System.out.println(doubleValue); // 128.0
// 等级 一致时 不需要进行转换(char类型除外)
short shortValue = byteValue;
System.out.println(shortValue);
// 内存溢出,及解决实例
// JDK7新特性,数字之间可以使用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money * years;// -1474836480 内存溢出
System.out.println(total);
//解决内存溢出;将表达式中某一内容,转成高点的类型
long total1 = (long)money * years;
System.out.println(total1); // 20000000000
}
}
变量
/**
* @ProjectName: JavaSE
* @PackageName: PACKAGE_NAME
* @Author: zy7y
* @Date: 2020/8/14 上午10:37
* @Description:
* 定义变量; 语法; 类型 变量名 = 值
* 局部变量:定义在方法中的变量,必须声明和初始化值
* 类变量:定义在类中,使用static修饰,属于类
* 实例变量:定义在类中
* 常量:final 类型 常量名
*/
public class Variable {
// 常量
static final double PI = 3.14;
// 类变量: static, 属于类
static String job = "软件测试";
// 实例变量:属于对象
String adder;
public static void main(String[] args) {
// 局部变量:方法里的变量必须声明和初始化值
String name = "小明";
char sex = '男';
int age = 23;
double height = 1.57;
System.out.println(name +',' + sex+',' + age+',' + height + 'm');
// 使用实例变量
Variable variable = new Variable();
System.out.println(variable.adder);
// 使用类变量
System.out.println(job); // 当前类使用
System.out.println(Variable.job); // 其他类可以这样使用
System.out.println(Variable.PI);
}
}
运算符
算术运算符
package operator;
/**
* @ProjectName: JavaSE
* @PackageName: operator
* @Author: zy7y
* @Date: 2020/8/14 上午10:58
* @Description: 算术运算符
*/
public class BaseOperator {
public static void main(String[] args) {
// ctrl + d ; 复制当前行到下一行
int a = 10;
int b = 20;
int c = 30;
int d = 40;
System.out.println(a + b);
System.out.println(c - b);
System.out.println(b * d);
System.out.println(d / a);
// 取余数:模运算
System.out.println(c % a);
// 自动升级
double e = 23;
System.out.println(e + a); //结果类型将自动升级成double
}
}
自增、自减运算符
package operator;
/**
* @ProjectName: JavaSE
* @PackageName: operator
* @Author: zy7y
* @Date: 2020/8/14 上午11:07
* @Description: 自增、自减
*/
public class SelfCalculation {
public static void main(String[] args) {
int intValue = 3;
// 自增
int selfCalculation = intValue++; // intValue = intValue + 1, 先赋值,再自增执行intValue = intValue + 1
System.out.println(selfCalculation); // 3
int intValue1 = 3;
int selfCalculation1 = ++intValue1; // intValue = intValue + 1,先运算再赋值,
System.out.println(selfCalculation1); // 4
// 自减
System.out.println(intValue); // 4
selfCalculation = intValue--;
System.out.println(selfCalculation); // 4
System.out.println(intValue1); // 4
selfCalculation1 = --intValue1;
System.out.println(selfCalculation1); // 3
// 次方运算
System.out.println(Math.pow(2,3));
}
}
逻辑运算符
package operator;
/**
* @ProjectName: JavaSE
* @PackageName: operator
* @Author: zy7y
* @Date: 2020/8/14 上午11:16
* @Description: 逻辑运算符
*/
public class LogicalOperators {
public static void main(String[] args) {
boolean booleanTrue = true;
boolean booleanFalse = false;
// 与运算:&&, 两个变量值都为真,结果才为true
System.out.println(booleanTrue && booleanFalse); // false
// 或运算;两个变量有一个为真,结果就为true
System.out.println(booleanFalse || booleanTrue); // true
// 非运算;如果为真,结果就是假,如果为假,结果就是真
System.out.println(!(booleanTrue || booleanFalse)); // false
}
}
位运算符
package operator;
/**
* @ProjectName: JavaSE
* @PackageName: operator
* @Author: zy7y
* @Date: 2020/8/14 上午11:23
* @Description: 位运算符; 二进制使用
*/
public class BitOperation {
public static void main(String[] args){
/*
* A = 0011 1100
* B = 0000 1101
*
* & 与, | 或, ^异或, ~取反
* A & B : 如果两位都是1才为1否则为0 , 0000 1100
* A | B : 如果有一位为1 结果就为1, 0011 1101
* A ^ B : 如果相同为0,否则为1, 0011 0001
* ~B : 如果为0变为1,1变为0 :1111 0010
*
* << : * 2
* >> : / 2
* */
// 0000 0001 : 十进制为1, 0000 0010 : 十进制为2 0000 0100:十进制为4,0000 1000 8, 结论左移动一位 * 2
// 转换成2进制; 0000 1000 右移2位 :0000 0010
System.out.println(8 >> 2); // 2
// 转换成2进制; 0000 1000 左移2位:0010 0000
System.out.println(8 << 2); // 16
}
}
三元运算符
package operator;
/**
* @ProjectName: JavaSE
* @PackageName: operator
* @Author: zy7y
* @Date: 2020/8/14 上午11:41
* @Description: 三元运算符; 语法 x ? y :z; 表达式 ? 为true时执行: 为false执行
*/
public class TernaryOperation {
public static void main(String[] args) {
int score = 50;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type);
}
}
包机制
命名:一般使用公司域名倒置;com.zy7y.cnblogs
// 导入包下所有类(.class文件)
import com.zy7y.cnblogs.operator.*;
JavaDoc生成文档
javadoc -encoding UTF-8 -charset UTF-8 Variable.java
Idea 生成Javadoc:https://blog.csdn.net/cai454692590/article/details/85286139