Java学习的第一周很快过去,课程从Java的运行环境和对应软件用法开始,到现在已经讲到算法一章的递归函数,随着课程的深入,以前不扎实的基础也有了明显的进步。
那么分小结回顾一下之前一周的内容
Java基础知识
** 1.Java运行环境**
- JDK 和 JER的安装
- windows有很多环境变量,路径去path方面找
Java语法基础
1. 注释
- //注释只能打一行
- /注释可以打很多行/
** 2. 方法和语句**
- 类里面包含多个方法
- i.方法包括方法
public int sum(int a,int b){}
修饰符 方法声明 方法体
- ii.void不需要返回值,int需要return,返回类型和声明的一致
** 3. 标识符** - 不能用关键词,第一个字母是字母或者_或者$,后面的字符可以是任何字符或者数字
标识符大小写敏感,命名规范——驼峰命名法 - i.多个单词直接连接在一起,中间不用下划线或者横杠等
- ii.类名每个单词首字母大写
- iii.变量名和方法名第一个字母小写,还是使用驼峰命名法
- 尽量让名字直观易懂
比如BodyMassIndexCalculator
** 4. 数据**
- 变量需要先定义才能使用
- 常量定义后就不能再改变
final int ss=45;
** 5. 数据类型**
- 基本数据类型有8种(基础类型没有方法,属性)
byte short int long char float double boolean
8 16 32 64 16 32 64 1bit used in 32 bit integer
八种基础数据类型可以转换为对应的类,转换后可以有方法
Integer--int Byte--byte
Short--short Long--long
Double--doubule Float--float
Boolean--boolean Character--char
数据类型装换
- 数字之间,低精度到高精度可以自动转换
- 从高精度到低精度不能自动转换 age=(int)shenGao可以强制转换
** 6. 属性**
System.out.println
类 属性 方法
方法里面变量为局部,最外面的变量为全局变量
运算符
- 数字运算符 比较运算符 逻辑运算符
** 1. 逻辑运算符%**
% < >&& || & |
** 2. 程序的三种执行方式**
- 顺序执行
- 分支执行
- i. if ;else if ;else
- ii.switch
- 循环执行
- i. for
- ii.while
** 3. 循环**
- for(int i=1;i<=100;i=i+1){}
- while(条件){}//先判断再做
- do{}while() //先做再判断
字符串
** 1. 字符串的拼接**
字符串的拼接基本方法有两个:
- 使用 + 号,如
- 使用 .concat
- 但如果要运用大量字符串的拼接就要考虑性能
可以考虑使用
StringBuffer,Stringbuilder
** 2. String的大量拼接**
- StringBuffer
这是一个特殊的string类,它将string封装起来,从头到尾只有一个string在运行
StringBuffer sb=new StringBuffer("0");
for(int i=1;i<10000;i++){
sb.append(i);
}
- Stringbuilder
StringBuilder sbuilder=new StringBuilder("0");
for(int i=1;i<10000;i++){
sbuilder.append(i);
}
- Stringbuffer和Stringbuilder在拼接过程中使用同一个对象,所以效率高(append方法)
- StringBuffer是线程安全的,会防止多个线程同时访问String,它增加了额外的防护,
** 3. String的查找和替换**
1.查找 System.out.println(str1.indexOf("are"))
2.替换 String str2 =str1.replace('H','h');
String str3 =str1.replace("you","me");
3)更加复杂的查找和替换将会用到 正则表达式Regex
数组
** 1. 数组的概念,声明和创建**
int[]nums={4,5,3,5};
String[] names=new String[10];
String[] names=new String[10];
- 直接用System.out.println(names)打印出来的是类名@地址
** 2. 数组的访问和遍历**
- nums[]
- 注意数组下标越界问题,会显示以下异常
java.lang.ArrayIndexOutOfBoundsException
** 3. For Each语句**
int[]nums={4,5,3,5};
for(int num:nums){
System.out.println(num);
}
这种方式只能运用在数组,list等集合数据结构上,结构简介但没有原先的for循环灵活
Arrays.sort()可以排序数组,如果是字符串会按字母顺序,如果是数组会按大小顺序
** 4. 二维数组**
int [][] nums ={{2,3,4},{3,2},{9}};
String [][] names= new String[][]{{"tom","jack"},{"Alice","John"},{"Kate","Lily"}};
String [][] names2=new String[4][3];
names[a][b] a为行,b为类
算法
1.算法概念
- 算法简单来说是解决问题的思路和步奏,对程序员至关重要
- 算法是独立于编程语言的
** 2. 递归**
- 递归算法概念 -recursion
- 递 是传递给自己,自己调用自己
- 归 是退出条件,在某些条件符合的时候,停止调用自己,如果没有退出条件会出现死循环,程序上会出现
java.lang.StackOverflowError
网友评论