JDK
(Java Development kit Java开发工具包)
jdk
-
jvm虚拟机:(Java程序运行的地方)
-
核心类库:java 已经写好的东西可以直接用
-
开发工具:包括Javac Java,jdb……
-
javac编译工具, Java运行工具,jdb调试工具
-
JRE(Java Runtime environment):Java的运行环境
Java的基本语法
注释
-
单行注释//....
-
多行注释/* .... */
关键字
是Java赋予了特定含义的英文单词
-
关键字全部小写
-
一般代码编辑器针对关键字有特殊的颜色
关键字 class
-
用于创建或者定义一个类,是Java最基本的组成单元。相当于细胞。
-
表示定义一个类,后面跟随类名
-
-
字面量
告诉程序员 :数据在程序中的书写格式
-
字面量的类型:
-
public class ValueDemo1{
public static void main(String[] args) {
System.out.println(236);
System.out.println(-23);
System.out.println(-0.065);
System.out.println(1.3);
}
}
计算机的存储规则
计算机中任意数据都是二进制的形式存在。
不同进制在代码中的表现形式
二进制:由0和1组成,代码中以ob开头
十进制:由0~9组成,前面不加任何前缀
八进制:由0~7组成,代码中以0开头
十六进制:由0~9还有a~f组成,代码中以0x开头
ASCLL码表
数据类型练习
//输出跟人信息
//String 类型
String name="阿卜杜凯尤木";
int age=21;
char gender='男';
double height=169.5;
//true 表示单身
boolean flag=true;
System.*out*.println (name);
System.*out*.println(age);
System.*out*.println (gender);
System.*out*.println(height);
System.*out*.println(flag);
}
}
标识符
-
由数字,字母,下划线(_)和美元符组成。
-
不能以数字开头
-
不能是关键字
-
区分大小写
键盘录入
-
只能接受整数
键盘录入练习
//导包,找到Scanner这个类在哪儿
//书写要注意,要写在类定义的上面
import java.util.Scanner;
public class Day10 {
public static void main(String[] args) {
// 创建对象,表示我现在准备要用Scanner这个类
Scanner sc =new Scanner(System.in);
System.out.println ("请输入第一个整数:");
//接收数据
//白能量i记录了键盘输入的数据
int number1=sc.nextInt();
System.out.println("请输入第二个数字");
int number2= sc.nextInt();
System.out.println (number2+number1);
}
}
算术运算符
数值拆分
需求:键盘输入一个三位数,将其拆分为个位,十位,百位后打印。
公式
-
个位:数值%10
-
十位:数值/10%10
-
百位:数值/100%10
-
……
import java.util.Scanner;
public class Day12 {
public static void main(String [] args) {
//1.键盘录入一根数字
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数");
int number = sc.nextInt();
int ge = number % 10;
int shi = number / 10 % 10;
int bai = number / 100 % 10;
System.out.println("个位是:"+ge);
System.out.println("十位是:"+shi);
System.out.println("百位是:"+bai);
}
}
数据类型的大小
byte<short<int<long<float<double
强制转换数据类型
格式:目标数据类型 变量名=(目标数据类型)被强转换的数据
范例:double a=39.8;
intb=(int)a;
字符串
字符串的”+“操作:操作中出现字符串时,这个“+” 是字符串连接符,而不是算术运算符了当“+”会将前后的数据进行拼接,并产生一个新的字符串。
-
例如:”123“+123结果为123123
连续进行”+“操作时,从左到右挨个进行
-
例如:1+99”新疆“结果为:100新疆
练习:
字符串的相加:
-
System.out.println(1+'a');//结果为98
-
System.out.pritln('a'+"abc");//结果为"aabc"
自增自减运算符
int a=10; a++;//此时职位11 ++a;//此时值为12 a--;//此时值为11 --a;//此时值为10
赋值运算符
关系运算符
关系运算符练习
需求:您和您的约会对象在餐厅里面正在约会。键盘录入两个整数,表示你和你约会对象衣服的时髻度。 (手动录入0~10之间的整数,不能录其他)如果你的时髻程度大于你对象的时髻程度,相亲就成功,输出true。否则输出false。
import java.util.Scanner;
public class Day12 {
public static void main(String []args){
//录入时髦度
Scanner sc=new Scanner(System.in);
System.out.println("请输入男生衣服的时髦度");
int Myfashion=sc.nextInt();
System.out.println("请输入女生衣服的时髦度");
int Grilfashion=sc.nextInt();
//比较两个人衣服的时髦度
boolean result=Myfashion>Grilfashion;
System.out.println(result);
}
}
逻辑运算符
- &并且 两边都为真,结果才是真(登陆页面)
- | 或者 两边都为假结果才是假 (女生提要求要么有房要么有车)
- ^异或 相同为false,不同为true(办理结婚证,不同性别的人才可以拿结婚证)
- !逻辑非,取反 (要么写,要写只写一个)
短路运算符
引导:为什么有短路运算符?
为了提高代码运行效率,当打开一个登陆页面时当他的用户名输错时不用再去判断密码是不是正确。
理解短路运算符代码:
int a=10;
int b=10;
boolean result=++a<5 && ++b<5;
System.out.println(result);//false
System.out.println(a);//11
System.out.println(b);//10
//分析:因为前面的结果是错误的,所以不再去运行后面的代码,也就是说b的结果不变
//要是用单个逻辑与&b的结果也是11,也就是说前面即使错了,他回去运行完后面的代码
练习
需求:数字6是一个真正伟大的数字,键盘录入两个整数。
如果其中一个为6,最终结果输出true
如果他们和为6的倍数,最终结果输出true。
其他情况都是false
import java.util.Scanner;
import static java.lang.System.out;
public class Day12 {
public static void main(String []args){
//键盘了录入两个整数
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个整数:");
int number1=sc.nextInt();
out.println("请输入第二个整数;");
int number2=sc.nextInt();
//用短路逻辑运算符去连接三个判断
boolean result=number1==6|| number2==6||(number1+number2)%6==0;
System.out.println(result);
}
}
三元运算符
作用:可以进行判断,根据判断的结果得到不同的内容。
- 格式:关系表达式?表达式1:表达式2:
- 范例:求两个数的较大值
- a>b?a:b;
-
int max=a>b?a:b;//把三元运算符的结果赋给一个变量 System.out.println(a>b?a:b);//把三元运算符的结果直接打印
三元运算符练习:
import java.util.Scanner;
public class Day12 {
public static void main(String []args){
Scanner sc=new Scanner (System.in);
System.out.println("请输入第一只老虎的体重:");
int weight1=sc.nextInt();
System.out.println("请输入第二只老虎的体重:");
int weight2=sc.nextInt();
//比较
String result = weight1 == weight2 ? "相同" : "不相同";
System.out.println(result);
}
}
运算符优先级
原码反码补码
原码
十进制数据的二进制表现形式,最左边是符号位,0为正,1为负。
利用原码对整数进行计算是不会有问题
但是如果是负数计算,结果就出错,实际运算的结果,跟我们预期的结果是相反的。
- 一个0或者一个1表示为bit 比特位
- 8bit为一组等于一个字节(字节:是计算机中最小的存储单元)
- 最大值01111111=+127
- 最小值11111111=-127
反码:
为了解决原码不能计算负数的问题而产生的。
计算规则:整数的反码不变,负数的反码在原码的基础上,符号位不变,数值取反,0变1,1变0;
补码:
计算补码反码加1(整数的原反补都是一样 )。
加一的目的是为了屏蔽 反码当中的+-0的情况。
负数在计算的时候,如果结果不跨0,是没有任何问题,但是如果结果跨0,会跟实际结果有一个偏差。
计算机中数字的存储和计算都是以补码的形式 来操作的。
所以一个字节他的取值范围是-128到+127
基本数据类型
- byte 类型的10 1个字节 0000 1010
- short类型的10 2个字节 0000 0000 0000 1010
- int类型的10 4个字节 0000 0000 0000 0000 0000 0000 0000 1010
- long类型的10 8个字节 ……
其他的运算符
<< 左移 向左移动,低位补0
>> 右移 向右移动,高位补0或1