0.0 如题所示
对javase相关知识进行复习巩固,首先是对idea的一些用法,快捷键进行复习整理~
新建一个项目HelloWorld开始复习
1 JAVA简介
1.1 挑一些重要的概念记下来
JAVASE,JAVAEE,JAVAME三者的关系
java是编译型和解释型两种类型的集合
java的可移植性来自于JVM
JRE:java运行环境,包括java虚拟机,java核心类库和支持文件,而不包含开发工具,包含开发工具和编译器的叫做JDK
主要用jdk的两个命令,于jdk/bin/目录下的java.exe和javac.exe
1.2 helloworld
有main方法的程序一般都是Application程序
java中的类名要和文件名相同,不然无法编译
Hello.java
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
一个*.java编写完后,通过javac.exe编译成*.class文件,然后通过java.exe放入JVM中运行,java Hello
1.3 类
类是java中的基本组成元素,所有的java程序都要被类管理
定义的时候,在class前面选择性的添加public
一个*.java文件中只能有一个public class,且这个public class的名称要和文件名一致
而class类名可以和文件名不一致,但是一个文件中存在多个class定义,编译后会分为不同的*.class文件
1.4 主方法main()
主方法表示一个程序的起点,java中主方法也要放在一个类中,定义格式如下
public static void main(String[] args) {
}
主方法在的类叫做主类,一般主类都用public class定义
1.5 系统输出
System.out.print("Hello World!");//输出后不换行
System.out.println("Hello World!");//输出后换行
1.6 CLASSPATH
CLASSPATH指向要加载的类的目录,经常在系统环境变量里看到
PATH:操作系统的环境属性,指的是可以执行命令的程序路径
CLASSPATH:是所有*.class文件的执行路径,java命令执行时利用此路径加载所需要的*.class文件
2 程序基本概念
2.1 注释
单行 //
多行 /**/
文档 /** */
2.2 数据类型
其中引用数据类型牵扯内存的开辟,为整个java入门的第一大难点
2.3 数据类型的溢出
例如,int类型取最大值,Integer.MAX_VALUE,同理取最小值
最大值214783647+1之后为最小值-214783648
最小值-214783648-1之后为214783647
最小值-214783648-2之后为214783646
扩大数据类型:
public class TestDemo01 {
public static void main(String[] args) {
int max = Integer.MAX_VALUE;
int min = Integer.MIN_VALUE;
//int + long = long
System.out.println(max + 1L);//最大值加一
System.out.println(min-(long)1);//最小值减一
//long + int = int
System.out.println((long)min -2);//最小值减2
}
}
输出:
2147483648
-2147483649
-2147483650
注意其中转换的方式
大小写字母转换:
public class TestDemo02 {
public static void main(String[] args) {
char c = 'A';
int num = c;
num = num +32;
System.out.println((char)num);
}
}
2.4 String型数据
String属于引用数据类型,他属于一个类所以大写首字母
使用‘+’来进行字符串拼接
2.5 三目运算
JSP开发中一定会用到,格式为:
布尔表达式?满足此表达式时的内容 : 不满足此表达式时候的内容
2.6 与操作
& 普通与
&& 短路与
if((1 == 2)&(10/0 == 0))
程序报错↑
if((1 == 2)&&(10/0 == 0))
返回为假↑
前面的条件为false时,&&不再判断,直接得出结论
同理或操作也如此
if((1 == 1)|(10/0 == 0))
程序报错↑
if((1 == 1)||(10/0 == 0))
返回为真↑
前面的条件为true时,||不再判断,直接得出结论
2.7 位运算
详见书本,如何更快计算2的3次方:
public class TestDemo03 {
public static void main(String[] args) {
int x = 2;
System.out.println(x<<2);
}
}
以及还有位或,位与操作
2.8 方法
方法的主要功能是封装可以执行的一段代码,这样不仅可以重复利用,还可以更方便实现代码的维护。
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
修饰符就是像public static这样的
返回值的类型有2种:
- 直接设置Java中的数据类型
- 方法没有返回值void,可以不使用return返回值,但是可以写个return结束调用
方法命名规范:第一个单词首字母小写,其余单词首字母大写
定义一个加法
public class TestDemo04 {
public static void main(String[] args) {
System.out.println(add(123,7));
}
/**
* 实现数据的加法操作
* @param x 操作数字一
* @param y 操作数字二
* @return 返回两个数字的加法结果
*/
public static int add(int x,int y){
return x + y;
}
}
2.8.1 方法的重载
方法的重载指方法名称相同,参数的类型或者个数不同,调用的时候会按照传递的参数类型和个数完成不同方法体的执行。
也就是说:一个方法名称,执行多项操作,一个add(),要算2个数相加,也要能算3个数相加
public class TestDemo04 {
public static void main(String[] args) {
System.out.println(add(123,7));
System.out.println(add(1,1,1));
System.out.println(add(3.14,2.44));
}
/**
* 实现数据的加法操作
* @param x 操作数字一
* @param y 操作数字二
* @return 返回两个数字的加法结果
*/
public static int add(int x,int y){
return x + y;
}
/**
* 实现数据的加法操作
* @param x 操作数字一
* @param y 操作数字二
* @param z 操作数字三
* @return 返回三个数字的加法结果
*/
public static int add(int x,int y,int z){
return x + y + z;
}
/**
* 实现数据的加法操作
* @param x 操作数字一
* @param y 操作数字二
* @return 返回两个小数的加法结果
*/
public static double add(double x,double y){
return x + y;
}
}
2.9 方法的递归调用
递归是自己调用自己的特殊形式,必须满足2个条件:
- 要有结束条件
- 每次调用都要改变传递的参数