一、IDEA
IDEA全称IntelliJ IDEA,是用于Java语言开发的集成环境,它是业界公认的目前用于Java程序开发最好的工具。
集成环境
把代码编写,编译,执行,调试等多种功能综合到一起的开发工具。
下载
激活码
项目结构
project(项目)
module(模块)
package(包)
class(类)
如何新建项目,模块,包和类?
1.创建一个Empty project项目
2.创建模块
SDK要编辑一下,会有提示的
新建模块
3.创建包
4.创建类
最后
一些建议和按键
最好把AI给关了
取消选择设置中
Editor > General > Code Completion
的Enable Full Line Suggestions
即可
注释和取消注释代码
使用快捷键对代码行和代码块进行注释和取消注释:Ctrl斜杠:用于单行注释(/l...)
Ctrl Shift斜杠:用于块注释(/*...*/)
查找并替换
按Ctrl F可显示搜索栏。按Ctrl R可添加另一个字段,从中可以输入替换字符串。在在文件中查找对话框中,可以按Ctrl Shift R切换到"替换为”。同样,按Ctrl Shift F可隐藏替换为字段,并切换到常规搜索。
psvm
public static void main(String[] args)sout
System.out.println();
二、运算符
1.运算符和表达式
运算符
对字面量或者变量进行操作的符号
表达式
用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式。
不同运算符连接的表达式体现的是不同类型的表达式。
举例说明
int a = 10; int b = 20; int c = a + b;
+∶是运算符,并且是算术运算符 a+ b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式
算术运算符
+ - * / %
package demo1;
public class test{
public static void main(String[] args) {
//+
System.out.println(3 + 2);
//-
System.out.println(5 - 1);
//*
System.out.println(7 * 9);
//如果在计算的时候有小数参加
//结论:结果有可能不精确的
System.out.println(1.1 + 1.1); //2.2
System.out.println(1.1 + 1.01); //2.1100000000000003
System.out.println(1.1 - 1.01); //0.09000000000000008
System.out.println(1.1 * 1.01); //1.1110000000000002
//后面分析为什么小数的结果精确问题
}
}
package demo1;
public class test{
public static void main(String[] args) {
// /
//1.整数参与计算,结果只能得到整数
//2.小数参与计算,结果有可能是不精确的,如果我们需要精确计算,那么需要用到后面的知识点。|
System.out.println(10 / 2);
System.out.println(10 / 3); // 3
System.out.println(10.0 / 3); // 3.3333333333333335
//后面分析
// %
System.out.println(10 % 2);
System.out.println(10 % 3); // 1
}
}
练习:数值拆分
需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
package demo1;
import java.util.Scanner;
public class test{
public static void main(String[] args) {
// 键盘录入
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);
}
}
"+”操作的三种情况
数字相加 字符串相加 字符相加
如何转换?
1.隐式转换(自动类型提升)
把一个取值范围小的数值,转成取值范围大的数据
int a = 10; double b = a;
取值范围:byte<short<int<long<float<double
隐式转换的两种提升规则:
取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算
byte short char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算
2.强制转换
如果把一个取值范围大的数值,赋值给取值范围小的变量。是不允许直接赋值的。如果一定要这么做就需要加入强制转换
格式:目标数据类型变量名=(目标数据类型)被强转的数据;
但是要注意取值范围
字符串的“+”操作
"+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算符了。会将前后的数据进行拼接,并产生一个新的字符串。
连续进行"+"操作时,从左到右逐个执行。
字符相加
当(字符+字符)(字符+数字)时,会把字符通过ASCII码表查询到对应的数字再进行计算。
自增自减运算符、赋值运算符、关系运算符、逻辑运算符
与c语言同理
细节:+=,-=,*=,l=,%=底层都隐藏了一个强制类型转换
这里有所不同,单个且有异或操作
短路逻辑运算符
注意事项:
& l,无论左边true false,右边都要执行。
&& ||,如果左边能确定整个表达式的结果,右边不执行。
&&:左边为false,右边不管是真是假,整个表达式的结果一定是false。
||:左边为true,右边不管是真是假,整个表达式的结果一定是true。
三元运算符
格式:关系表达式?表达式1:表达式2;
三、原码、反码、补码
原码
原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负
56 ——> 0(符号位)0111000(数据) bit 比特位 8个bit1字节
显然利用原码对正数进行计算是不会有问题的。但是如果是负数计算,结果就出错,实际运算的结果,跟我们预期的结果是相反的。 但是如果是负数计算,结果就出错,实际运算的结果,跟我们预期的结果是相反的.
所以出现了反码
反码
反码:为了解决原码不能计算负数的问题而出现的。
计算规则:正数的反码不变,负数的反码在原码的基础上,符号位不变数值取反,0变1,1变0。
-56 ——> 10111000 (原码)
-56 ——> 11000111 (反码)
反码出现的目的
为了解决原码不能计算负数的问题而出现的。
反码的计算规则
正数的反码不变,负数的反码在原码的基础上,符号位不变。数值取反,0变1,1变0。
反码的弊端
负数运算的时候,如果结果不跨0,是没有任何问题的,但是如果结果跨0,跟实际结果会有1的偏差。
补码
对于负数来说在反码基础上加1,用于解决正负数相加的问题
所以:
1字节值为-128~127
补码出现的目的
为了解决负数计算时跨0的问题而出现的。
补码的计算规则
正数的补码不变,负数的补码在反码的基础上+1。另外补码还能多记录一个特殊的值-128,该数据在1个字节下,没有原码和反码。
补码的注意点
计算机中的存储和计算都是以补码的形式进行的。
注意:
隐式转换就是往前面补0
强制转换就是去掉0
其他运算符