本帖最后由 请问有药吗 于 2018-4-1 15:00 编辑
环境配置目的:主要是在任何位置都能使用Java 1、 Java的配置方法 系统——属性——高级——环境变量 新建JAVA_HOME系统变量 值为Java目录内bin的上一级。比如:H:\JAVA7 再去path内添加JAVA_HOME的值。方法为:%JAVA_HOME%\bin: 好处在于以后Java版本的变化可以直接调整系统变量JAVA_HOME内的值。 避免混淆和不小心的操作导致path内值的变化。 2、 JAVA安装成功的检测方法 徽标键+R 在运行窗口输入cmd 找到安装JAVA的位置,进入bin文件夹(进入文件夹方法:cd 文件名) 运行Javac。出来一堆文件说明安装成功。 3、 Java的源文件后缀名字为.java Java的运行文件后缀名为.class 4、 Java语言 class:类,Java当中组织代码的基本单位 HelloWorld: 类名,可自定义 每一个语言的第一个案例为输出“Hello World”为主 public: 访问权限修饰符,现为固定写法 static:静态修饰符,现为固定写法 void: 返回值类型,现在为固定写法 main: 方法名,现在为固定写法 永远都是main方法调用其他方法;所用程序开始是从main方法开始; String:参数类型,现在为固定写法 args:参数名,可以自定义修改,建议固定写为args 当看到一个数值的时候要考虑两点,这个数值本身和这个数的数据类型; 当看到方法时,要看到方法名、参数类型、返回值类型 5、 运算符:就是针对常量或变量进行运算的符号 包括:算术运算符、赋值运算符、比较运算符、逻辑运算符 三元运算符 算数运算符: +: 数学上的加法 连接字符串与其他类型 ++前置;先产生副作用再使用 ++后置;先使用后产生副作用 -: 数学上的减法 --前置;先产生副作用再使用 --后置;先使用后产生副作用 *: 数学上的乘法 /: 整数整除(取整数商部分) %: 整数取商(取余数部分)为数字5上的百分号 字符串+变量+变量;先算字符串+变量,再+变量计算。 如果要先进行变量+变量运算可添加括号运算。 还可以将模式写成,变量+变量+字符串,这样先进行的事变量相加而后在加字符串 赋值运算符:给变量赋值的运算符 “=” =;给变量赋值 +=;给变量赋值加等号右边数值 -=;给变量赋值减等号右边数值 *=;给变量赋值乘等号右边数值 /=;给变量赋值乘等号右边数值 %=;给变量赋值取模等号右边数值 在Java中判断两个数据是否相等使用“==”双等号 例;int a = 10; a = a + 1 可写成 a +=1 这样写可以减少数学计算危险 比较运算符;> < >= <= == != 比较运算符的结果一定是布尔值 逻辑运算符:用来处理布尔值的逻辑关系 短路与&&;有假则假 短路或||;有真则真 逻辑非!(英文叹号);取反 三元运算符;使用格式; (条件表达式)?表达式1:表达式2; 使用规则; 1、判断条件表达式为一个布尔值类型; 2、true;运算结果为表达式1; 3、false;运算结果为表达式2; 三元运算符最后一定有一个值。 6、 编程分析习惯 结构层次分析、数据类型分析、逻辑分析 7、 引用数据类型 Scanner是一种引用数据类型。主要用于键盘录入 定义引用数据类型的变量,并赋值; 数据类型 变量名 = new 数据类型(); 调用方法; 变量名.方法名(); Scanner使用步骤; 导包; import java.util.Scanner; 创建对象实例; Scanner sc = newScanner(System.in); 调用方法; int 变量名 = sc.nextInt(); 录入数字 String 变量名 = sc.next(); 录入文字(截止回车与空格前) String 变量名 = sc.nextLine(); 录入一行字符串 8、数据类型显示; int整数型 double 小数类型 int[]数组整数类型; double[] 数组小数类型; 9、String常用引用数据类型、特殊变量并赋值。 格式; String s = "内容"; length 获取该字符串的长度 例子:int a =s.length(); 长度一般为整数 10、Math 是特殊的数字引用类型。可以直接Math.方法名 11、强制类型转换;只适用于数字 格式;转换后类型 变量名 = (转换后类型)转换前数值; 12、if语句是比三元运算符更好用的比较运算方法 if 语句格式; 单条件判断; if(条件){ } 互斥条件判断; 一定有一个结果! if(条件){ }else{ } 多条件判断; if(条件){ }else if(条件){ }else if(条件){ }else if(条件){ }else 注意事项; 1、 单条件使用if/else语句是后边的大括号可以省略; 2、 多条件语句,不可以重复区间; 3、 if语句确定变量使用区域。在if外的可以在if内使用,但在if内的不能被使用; 此语句可以进一步验证“Java编译时只检查语法错误,不检查变量值” 4、 三元运算符与if语句不同在于, 三元运算符必然产生一个数值,该数值一定被运用。 if语句可以产生数值,也可以不产生,仅完成业务逻辑。如打印。 Random类内 1、导包 import Java.util.Random{} 2、创建对象 new Random(); 3、变量名.方法名(); 方法名分为;nextInt(确定随机数最大从零到X); nextDouble();0到1之间的数字 13、Fof循环格式 for(初始表达式1;布尔表达式2;步进表达式4){ 循环体逻辑3; } break中断循环 不可以单独使用,只能放在循环里使用; 直接在循环中bradk即可。 for循环语句的注意事项; 1、1234四个部分均可以为空; 1为空时,注意变量的作用域的范围变化。不放在1处,肯定在for语句上一级放; 2为空时,为条件永远为true的死循环; 3为空时,通常没有意义,因为循环体为3,所以没有循环体就没有意义; 4为空时,注意步进表达式的位置,可以加入循环体内使用。或同样出现死循环; 2、初始化表达式1与步进表达式4可以同时定义多个变量。控制循环条件。 14、while 循环格式 初始化表达式1 while(布尔表达式2){ 循环体3 步进表达式4 } while注意事项; 普通for循环只能作用域内使用。 while循环是在方法下设定初始表达式。循环后还可以在方法内使用。 我们经常使用while(true)来做死循环; 15、循环标号; 在外层循环外的某行前边,使用后边带有“:”的标示符,即定义标示符。 而后在内层循环braek、continoe后边紧跟之前定义的标号即可完成跳出外层循环。 例如; chulai: for (int i = 0;i<5;i++){ for (int j = 0;j<5;j++){ break chulai; } } 16、Switch选择结构 如果在几个选择中只能选择一个,那么switch最合适; switch使用格式; 根据一个变量值,对比多个选择项值,当变量值匹配到对应可选项时,执行该选项对应语句; 例子; inta = 6; switch(a){ case 1: System.out.println("1"); break; case 2: System.out.println("2"); break; case 3: System.out.println("3"); break; case 4: System.out.println("4"); break; default: System.out.println("x"); break; } 15、方法的定义;方法用来封装一个完整的功能; 定义方法时明确;需要的数据 回馈的数据 (重要) 格式; 修饰符 返回值类型 方法名(类型 形式参数变量,类型 形式参数变量2,......){ 执行语句 return 返回值; } 修饰符;目前一直使用public static 返回值类型;回馈值的类型 如果没有用void代替 return;用来返回用于回馈的数值。没有可以直接retrun; 方法名;方法的名称 参数类型;需要的数据的数据类型 参数;需要的数据 方法的调用; 有回馈值;回馈值类型 接收回馈值的变量 = 方法名(方法需要的数据); 无回馈值;方法名(方法需要的数据); 方法的重载; 方法名可以一样,但是方法内的参数类型需不一样。 重载的注意事项 重载与返回值无关 重载与具体的变量标识符无关 重载只与方法名与参数名相关 重载方法方法名必须相同 重载方法参数必须不同: 参数个数不同 参数类型不同 参数顺序不同 16、数组的定义; 对数组内数据编号是从0开始; 格式; 数组类型[] 变量名 = new 数组类型[数据个数]; 或 数组类型[] 变量名 = {数据,数据,数据,数据}; 数组的使用; 数组变量名[索引] 获取数组长度:数组变量名.length 数组在返回长度的时候 变量名.length 字符串在返回长度的时候 String 变量名 = sc.nextLine(); 录入一行字符串 数组没有括号、字符串有括号 注意事项; 空指针异常;null NullPointerException 数组索引越界异常; ArrayIndexOutOfBoundsException 17、成员变量; 属于类下方法外的变量; 与方法相等的;可以被类内所有方法使用; 18、自定义类的定义; 格式; 创建文件名,与类名相同; public class 类名{ 数据类型 属性名称1; 数据类型 属性名称2; ...... } 自定义类的使用; 格式与引用类型一样;引用类型是Java设定;引用类型是用户设定; 1、导包; 2、创建对象; 3、使用方法; 19、ArrayList的集合容器的使用; 1、导包;2、创建对象;3、使用方法; 导包;import java.util.ArrayList; 创建对象; 与其他普通的引用数据类型一样,但要确定容器; 类名<集合内元素类型> 变量 = new 类名<集合内元素类型>(); ArrayList<String> xxXX =new ArrayList<String>(); 注意:基本类型需要存放对应的引用类型 ArrayList<Integer> yyYY =new ArrayList<Integer>(); ArrayList<Double> zzZZ =new ArrayList< Double >(); 使用方法; public boolean add(元素类型 e) 直接向集合添加元素 public void add(数据类型 index,元素类型 e) 在指定索引处向集合添加元素 public 元素类型 remove(数据类型 index) 删除指定索引位置的元素 public 元素类型 set(数据类型 index,元素类型 e) 修改指定索引位置的元素 public 数据类型 size() 获取集合长度 public 元素类型 get(数据类型 index) 根据指定索引获取集合元素 20、面向对象; 自定义类是Java最基本、最常用的、 类的格式; 创建java文件,与类名一样; public class 类名(){ //成员变量 private 数据类型 变量值; private 数据类型 变量值; ..... //成员功能/方法; public 返回值类型 方法名(参数类型 形参变量.....){ 方法体; return 返回值; } 对应属性的get/set方法; } 相同名字变量主要看方法内参数类型是否已定; 已定;加this.变量名 = 变量名; 未定;变量名; 直接赋值非成员变量; static 修饰; 在同一个类下,如果不创建对象直接调用方法需要方法有static。 如果使用对象调用方法,可不用使用static。 21、构造方法;正常开发不可缺少,语法上必须存在的 可以直接给变量赋值,无需在对象产生后在赋值 构造方法必须存在,如果没有手动给出,java会自动补齐一个空参的构造方法; 如果手动给出过空参或有返回值的构造方法,java将不再自动产生空参构造方法;(重要) 格式;奇怪的方法定义格式;没有返回值类型定义,方法名或类名相同。 public 类名(参数类型 参数,参数类型 参数2){ //创建对象时要执行的逻辑,经常为——为成员变量赋值 } 一般在使用构造方法的时候只定义两个;一个是空参的构造方法;一个是满参的构造方法; 22、API部分总结 sc.nextLine()获取字符 数组(字符数组)->字符串:String s1 = new String(数组) 截取数组(字符数组):String s1 = new String(数组,开始截取的下标,截取多少个) s1.equals 判断字符串值是否相等 s1.equalsIgnoreCase :忽略大小写比较 s1.startsWith() s1.endsWith()判断是否以某个字符串开头或结尾 s1.length() 获取字符串长度(字母个数) s1.charAt(字符串索引) 获取指定索引处的某个字符 s1.indexOf(字符串):获取S1中,第一次出现参数中字符串的位置索引,如果没有,返回-1, s1.substring(索引):从索引处截取字符串,一直截取到最后 s1.substring(索引,end):从索引出开始,到end处进行截取,包括索引,不包括end对应的字符 s1.toCharArray() :字符串变成字符数组 s1.toLowerCase();小写 s1.toUpperCase():大写 s1.trim():去掉左右两端的空格(不包括中间的) 小红 s1.split(某个字符串):根据某个字符串,把原字符串分割成数组 StringBuilder sb= new StringBuilder() sb.capacity() 获取sb容器的容量(理论值) sb.length():获取里面字符串的长度 sb.append(内容):向字符串中追加数据(返回的是对象) sb.reverse():字符串翻转 StringBuilder转成字符串 sb.toString();返回一个字符串 字符串转换成StringBuilder new的时候,直接把字符串放进去就好了 new StringBuilder(字符串/字符串变量) sb.charAt(int index) :获取指定索引处的某个字符 sb. delete(intstart, int end) 删除
|