JAVA笔记
高级编程语言:编译型 javac.exe
解释型 java.exe
程序组成:Java源程序、字节码文件、机器码指令
特点:可移植性、开发简单、支持多线程开发的语言、自动的垃圾收集处理、面向对象。
程序文件后缀为*.java
编译源文件后形成*.class文件
Jdk环境变量配置:编辑Path,添加jdk安装目录即可。
Java引用API方法:
Import
程序代码中打出全名
类是Java的一个基本单位,定义类:
(1) public class类名称{}:文件名必须与类名称保持一致;
(2) class类名称{}:文件名可以与类名称保持一致,生成的字节码就是”类名称.class”,一个文件中可以定义多个类,且编译后会形成多个*.class文件(一般一个文件只定义一个类)。
主方法所在类称为主类,主类用第一种方法定义。(“args”可以换其他的,如上图)
输出:System.out.println()
CLASSPATH指类的加载路径。可直接从文件目录执行,也可使用如下指令设置class path:SET CLASSPATH=文件目录。
严禁设置过多class path路径,最好从当前所在的路径中进行类的加载,此时可以将class path的内容设置为“.”。
注释:
单行注释//
多行注释/* 注释内容 */
文档注释/** 文档注释标记 */
标识符与关键字:
在Java中标识符的命名要求有:字母、数字、_、 组 成 , 且 不 能 以 数 字 开 头 , 不 能 是 J a v a 中 的 保 留 字 ( 关 键 字 ) 。 ( 组成,且不能以数字开头,不能是Java中的保留字(关键字)。( 组成,且不能以数字开头,不能是Java中的保留字(关键字)。(不要再代码中出现,其有特殊含义)
变量命名要求:第一个单词小写,而后的每个单词首字母大写。
Java中有俩个未使用到的关键字goto、const,有三个特殊含义的单词(不算关键字)null、true、false,JDK1.4、1.5之后分别追加了assert、enum关键字。
Java数据类型分为俩大类:
基本数据类型:
整数型byte、short、int、long 默认值为0;
浮点型float、double 默认值0.0;
字符型char 默认值为’\u0000’;
布尔型boolean 默认值为false。
引用数据类型:数组、类、接口 默认值为null。(默认值在主方法下无效,会报错,需提前设置)
数据类型选择原则:
程序开发整数用int,小数用double;
long这种数据类型一般会描述日期时间、内存或文件大小(字节);
如果需要进行编码转换或进行二进制数据传输使用byte;
char一般在描述中文时使用(基本上都忽略);
boolean在描述程序逻辑时使用。
在Java中整数的常量类型都是int型。
在进行整型数据操作的时候会存在一个数据溢出的问题,指当已经达到整型的最大或最小值时,如果继续进行数学计算可能会产生的错误数据。溢出可以使用long解决,但是首先得将其中一个变量的类型进行扩充(可赋值或者变量定义时改变),或者需要强制转换(如果数字超了int的大小得在数字后加L或l),此时数据可能会丢失,强制转换使用“(变量类型)”。
char表示单字符,多字符String,表示字符串,但是其并不是一个基本数据类型。String可以使用“+”号,但此时“+”表示2个字符串的连接。“+”在数学计算中表示加法,若俩种操作同时出现,则表示字符相连。期间若出现“-”等其他符号,则会报错。
使用“””声明的是字符串,字符串用String定义。
转义字符:
换行(\n)
制表(\t)
双引号(\”)
单引号(\’)
斜杠(\ \)
三目运算(重点)是一种赋值运算,根据条件来进行判断。
格式:
数据类型 变量 = 布尔表达式 ? 条件满足时赋值内容: 条件不满足时赋值内容;
可以使用if else替换,但不建议替换。
关系运算符:
所有的关系运算符判断完成的数据返回结果都是Boolean型
可以直接将字符与数字进行判断。
逻辑运算符:& 、|、!、&&、||
编程时尽量使用&&或||,表示程序判断到结果后就不再继续判断,而&或|则会继续判断,可能会导致出错。
位运算:用&、| 移位:左移位<< 右移位>>
程序逻辑结构:
If else(3种格式)
switch语句:若编写case时未加break,则会一直运行,直到遇见break或者程序代码结束为止,此时可能会出现输出错误的情况。
循环结构:
While:如果条件不满足就一次都不执行,而do…while的特点是即使判断条件不满足也会执行一次。
for语句:
循环使用原则:
对于不知道循环次数,但是知道循环结束条件的使用while循环;
如果已经明确知道循环次数,则使用for循环。
循环控制:
continue:跳过当前循环。
break:直接跳出。
方法指一段可以重复调用的代码块。
格式:
方法的返回值类型:
void:无返回值;
数据类型(基本类型、引用类型);
eg:
定义一个无返回值,无参数的方法:
定义一个有参数无返回值的方法:
定义一个有参数有返回值的方法:
定义方法的时候,如果某一个方法使用了void(无返回值)定义,那么该方法中可以直接利用ruturn结束调用。
方法重载:方法名称相同,参数的类型或个数不同。
虽然方法重载将依据参数的类型或个数的不同执行不同的方法体,但是最好方法重载的时候返回值类型一定要相同。
System.out.println()是一个被重载的方法。
方法递归调用:指方法自己调用自己的形式。
方法有一个递归的结束条件;
方法在每次递归处理的时候一定要做出一些变更。
使用while循环的操作其实大部分都可以更换为递归,之所以使用递归主要是一个方法可以执行的操作很多,而且结构要好。
eg:
1-100累加:
Tomca9点击start/shutdown.bat闪退解决方法:
在rem Guess CATALINA_HOME if not defined这句话下加:
set JAVA_HOME=E:\Java\jdk //你的jdk存放路径
set JRE_HOME=E:\Java\jdk //你的jre安装路径
set SET TOMCAT_HOME=E:\tomcat\apache-tomcat-9.0.13 //你tomcat的解压路径