进制转换
十进制---二进制 (连除倒取余)
二进制---十进制 (按权求和) 把除完的2乘回来
public static void main(String[] args) {
//十进制转二进制 返回的是字符串类型
String str1 = Integer.toBinaryString(18);
System.out.println(str1);
//十进制转八进制
String str2 = Integer.toOctalString(31);
System.out.println(str2);
//十进制转十六进制
String str3 = Integer.toHexString(12);
System.out.println(str3);
}
数据类型(存储数据用的 系统会在内存中开辟一个块空间使用)
1.基本数据类型
整数型
byte 存储的数据 占1个字节 8个二进制位表示
0000 0000
1字节可以表示多少个个数 2^8个数 256个数
1字节 取值范围 -128到127 -2^7到2^7-1
short 短整型 2个字节
int 整型 占4个字节 (常用)
long长整型 占8个字节
小数型
float 4个字节
double 8个字节 (double)
字符型
字符串型
2.引用数据类型 数组 类 接口
// 常量 在程序运行当中不能修改的量就是常量
// System.out.println(3.14);
// 声明一个变量--作用就是存储数据的
// 数据类型 变量名 = 初值;
// 定义了一个整型变量 初值为10;
// 黄色 表示警告
// 红色 表示错误---编译错误
byte b = 10;
short s = 10;
long m = 10;
double d = 10;
double 是存储小数的
但是 我现在赋值的 是一个整数
这时系统会 进行 隐式转换
把小的类型 帮你 转换 成大的类型
System.out.println(d);
int a = 10;
a = 15;
//强制类型转换 会丢失数据的精度
//声明一个小数 系统默认 使用的是double类型
int n = (int)3.14;
System.out.println(n);
//声明float类型小数 需要使用标识符f标识
float f = 10.0f;
System.out.println(f);
特殊类型 字符类型
特点:字符类型可以和整型相互转换
声明字符型 使用 单引号
char ch = 'A';
强转完 打印该字符 在 ascll 表中对应的值
System.out.println((int)ch);
char ch1 = 97;
System.out.println((char)ch1);
字符串类型
字符串中+号 相当于连接两个字符串(拼接)
String str1 = "哈哈";
String str2 = "嘻嘻";
int num1 = 10;
System.out.println("num1 = " + num1);
int num2 = 15;
System.out.println(str1+str2);
字符串和数字 使用+连接的时候
相当于 直接做字符串的拼接
和字符串相加 一定会得字符串
System.out.println(str1+num1+num2);
运算符
算数运算符 + - * / %(取余运算符) ++ --
关系运算符 > < >= <= == !=
使用关系运算符 使用用来判断的
并且判断结束后 会有一个结果(布尔类型的结果)
逻辑运算符(用来判断)
&& 逻辑与 (条件1)&&(条件2) 一假则假
|| 逻辑或 (条件1)||(条件2) 一真则真
! 逻辑非 非真即假 取反
取模运算 (用的最多 是对2取余)
判断是不是偶数 =0偶数 ≠0不是偶数
int n1 = 5%1;
System.out.println("n1 = "+n1);
除法
可以借助API文档查看 报出的错误
ArithmeticException 算数异常
int n2 = 10/2;
System.out.println("n2 = "+n2);
自增运算++ 和 自减运算--
++在前 先自增再参与运算 ++在后 先参与运算再自增
int n3 = 10;
++n3;//相当于 n3 = n3 + 1;
System.out.println("n3 = "+n3);
int n4 = 10;
int n5 = n4 + ++n4;
System.out.println("n4="+ n4);
System.out.println("n5="+ n5);
声明一个布尔类型变量
只有两个值true false
声明状态 和 判断时候用
boolean b = true;
System.out.println(b);
int num1 = 10;
int num2 = 15;
boolean result1 = num1!=num2;
System.out.println(result1);
判断两个字符串是否相等
String str1 = "wanglong";
String str2 = "pengqian";
boolean result2 = str1.equals(str2);
System.out.println("result2 = "+result2);
int num3 = 10;
int num4 = 15;
int num5 = 12;
逻辑与的短路现象
一假则假 如果条件1已经不成立了
那么系统不会执行后面的语句
boolean result3 = (num3 > num4)&&(num3 > num5);
System.out.println("result3 ="+result3);
逻辑或短路
一真则真 如果条件1为真 那么后面就不会执行
boolean result4 = (num3 < num4)||(num3++ > num5);
System.out.println("result4 ="+result4);
System.out.println(num3);
流程控制
1.顺序结构
2.分支结构
if switch
if 三种书写形式
if(判断条件){
执行的语句
}
if(判断条件){
执行的语句1(条件成立时执行)
}else{
执行的语句2(条件不成立时执行)
}
if(条件1){
执行语句1
}else if(条件2){
执行语句2
}else{
执行语句3
}
3.循环结构
public static void fn3(){
System.out.println("请输入天气");
// 创建系统提供的类的对象
Scanner scanner = new Scanner(System.in);
// 接收键盘输入的字符串
String score = scanner.nextLine();
if(score.equals("晴天")){
System.out.println("去爬山");
}else if(score.equals("下雨")){
System.out.println("去逛街");
//直接使用之前创建出来的 Scanner对象
//在此接收用户输入
System.out.println("请输入小雨还是暴雨");
String score2 = scanner.nextLine();
if(score2.equals("小雨")){
System.out.println("打伞");
}else{
System.out.println("穿雨衣");
}
}else{
System.out.println("滚犊子");
}
三目运算符
(判断条件) ? 值1 : 值2;
判断条件成立 返回值1 反之 返回值2
public class Dome06 {
public static void main(String[] args) {
//求两个数的最大值
//求三个数的最大值
int num1 = 10;
int num2 = 15;
int num3 = 20;
int max = 0;
max=(num1 > num2 ? num1 : num2);//接收三目返回来的值
//求三个数的最大值
int max3 = 0;
max3 = (num3>max?num3:max);
System.out.println("最大值为:" + max3);
}
流程控制
while循环
whilr(循环条件){
循环体
}
public class Demo07 {
public static void main(String[] args) {
//打印1-10
//创建循环增量
int i=1;
int sum=0;
while(i<11){
sum+=i;
i++;
//注意:自增你的循环增量
//累加的思想
//利用这个思想可以解决多个类似问题
//定义一个变量保存和
}
System.out.println(sum);
}