1.eclipse的使用
*创建一个工程
-类型java/web project
-依赖jdk
*创建包package
-cn.itcast.test
*在包里创建一个类
-类的命名规范
**每个单词首字母都要大写
*在类里创建方法
public void test1(参数列表)
{
方法体或者返回值;
}
-方法的命名规范
首字母小写:addNum()
*定义变量
-变量命名规范
**首字母小写,第二个单词首字母大写
使用汉语拼音,不能拼音和英文混合
2.debug调试模式
*使用debug第一步设置一个断点
-双击出现一个断点
*使用debug as运行程序
-提示是否进入到调试界面,yes
*可以让程序向下执行,使用step over 快捷键F6(单步执行)
*resume F8:表示调试结束,直接向下运行,有断点则跳到下一个断点
*查看程序的源代码
3.Java 的常用快捷键
批量修改:ALT+SHIFT+R
代码提示: alt +/
代码修复: ctrl+1
快速导包:ctrl+shift+o
单行注释:ctrl+/
取消注释:ctrl+/
多行注释:ctrl+shift+/
取消多行注释:ctrl+shift+\
for:快捷 alt+/
删除行:ctrl+d
对方法注释: /**+回车
4.junit的使用
*单元测试
*测试对象是一个类中的方法
*单元测试方法的时候,方法命名规则public void 方法名(){}
*使用注解方式运行测试方法,在方法的上面
**@Test
-//測試方式
@Test
public void testAdd(){
TestJunit test01=new TestJunit();
test01.testAdd(2,3);
}
选中方法名称运行点击 run as ----junit test
出现绿色条,方法通过
**@Ignore:表示这个方法不进行单元测试
**@Before:在每个方法之前运行
**@After:在每个方法之后运行
**断言
jdk5.0新特性
jdk 1.1 1.2 1.4 5.0
**泛型 枚举 静态导入 自动拆装箱
**反射
5.泛型的简介
*为什么要使用泛型?
-一般使用在集合上
**比如现在吧一个字符串型的值放入到集合里面,这个时候,这个值放到集合之后,失去本身的类型,只能是object类型
这个时候,比如想要对这个值进行类型转换,很容易出现类型转换错误,可以使用泛型解决
*在集合上如何使用泛型
-常用集合 list set map
-泛型语法 集合<String> 比如List<String>
*在list上使用泛型
list的三种实现 ArrayList linkedList Vector
代码:
@Test
public void testList(){
List<String> list=new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
//遍历list集合三种方式
//for循环 迭代器 增强for
//for循环
for(int i=0;i<list.size();i++)
{
String s=list.get(i);
System.out.println(s);
}
System.out.println("================");
//增强for
for(String s1:list){
System.out.println(s1);
}
System.out.println("====================");
//迭代器
Iterator<String>it=list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
*list的三种实现 ArrayList linkedList Vector 区别数组
1.ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组
的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的
数据复制到新的存储空间中。当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、
移动、代价比较高。因此,它适合随机查找和遍历,不适合插入和删除。
2.Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个
线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问
它比访问ArrayList慢。
3.LinkedList是用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。
另外,他还提供了List接口中没有定义的方法,专门用于操作表头和表尾元素,可以当作堆栈、队列
和双向队列使用。
12.增强for循环
*语法for(遍历出来的值:要遍历的集合)
*数组;实现Iterator接口可以实现增强for循环
*在集合上使用增强for循环遍历
list set 实现Iterator接口,所以可以使用增强for循环
map不能使用,没有实现Iterator接口,
*增强for循环就是为了替换迭代器
13.内容补充
*交换任意类型数组
*交换长度 长度/2
//遍历数组
public static <T>void reverses(T[] arr1)
{
for(int i=0;i<=arr1.length/2;i++)
{
T temp=arr1[i];
arr1[i]=arr1[arr1.length-i-1];
arr1[arr1.length-1-i]=temp;
}
}
14.可变参数
*可变参数可以应用在:
**实现两个数相加,实现三个 四个数相加
--如果实现多个方法,这些方法里面逻辑相同,唯一不同的是传递的参数的个数,可以使用可变参数
*定义方法:数据类型...数组的名称
-代码
private static void add1(int...nums)
{
///nums理解为一个数组,这个数组存储传递过来的参数
int sum=0;
for (int i = 0; i < nums.length; i++)
{
sum+=nums[i];
}
System.out.println(sum);
}
*注意的地方
(1)可变参数需要写在方法的参数列表中,不能单独定义
(2)在方法的参数列表中只能有一个可变参数
(3)方法的参数列表中的可变参数,必须放在参数列表的最后
*创建一个工程
-类型java/web project
-依赖jdk
*创建包package
-cn.itcast.test
*在包里创建一个类
-类的命名规范
**每个单词首字母都要大写
*在类里创建方法
public void test1(参数列表)
{
方法体或者返回值;
}
-方法的命名规范
首字母小写:addNum()
*定义变量
-变量命名规范
**首字母小写,第二个单词首字母大写
使用汉语拼音,不能拼音和英文混合
2.debug调试模式
*使用debug第一步设置一个断点
-双击出现一个断点
*使用debug as运行程序
-提示是否进入到调试界面,yes
*可以让程序向下执行,使用step over 快捷键F6(单步执行)
*resume F8:表示调试结束,直接向下运行,有断点则跳到下一个断点
*查看程序的源代码
3.Java 的常用快捷键
批量修改:ALT+SHIFT+R
代码提示: alt +/
代码修复: ctrl+1
快速导包:ctrl+shift+o
单行注释:ctrl+/
取消注释:ctrl+/
多行注释:ctrl+shift+/
取消多行注释:ctrl+shift+\
for:快捷 alt+/
删除行:ctrl+d
对方法注释: /**+回车
4.junit的使用
*单元测试
*测试对象是一个类中的方法
*单元测试方法的时候,方法命名规则public void 方法名(){}
*使用注解方式运行测试方法,在方法的上面
**@Test
-//測試方式
@Test
public void testAdd(){
TestJunit test01=new TestJunit();
test01.testAdd(2,3);
}
选中方法名称运行点击 run as ----junit test
出现绿色条,方法通过
**@Ignore:表示这个方法不进行单元测试
**@Before:在每个方法之前运行
**@After:在每个方法之后运行
**断言
jdk5.0新特性
jdk 1.1 1.2 1.4 5.0
**泛型 枚举 静态导入 自动拆装箱
**反射
5.泛型的简介
*为什么要使用泛型?
-一般使用在集合上
**比如现在吧一个字符串型的值放入到集合里面,这个时候,这个值放到集合之后,失去本身的类型,只能是object类型
这个时候,比如想要对这个值进行类型转换,很容易出现类型转换错误,可以使用泛型解决
*在集合上如何使用泛型
-常用集合 list set map
-泛型语法 集合<String> 比如List<String>
*在list上使用泛型
list的三种实现 ArrayList linkedList Vector
代码:
@Test
public void testList(){
List<String> list=new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
//遍历list集合三种方式
//for循环 迭代器 增强for
//for循环
for(int i=0;i<list.size();i++)
{
String s=list.get(i);
System.out.println(s);
}
System.out.println("================");
//增强for
for(String s1:list){
System.out.println(s1);
}
System.out.println("====================");
//迭代器
Iterator<String>it=list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
*list的三种实现 ArrayList linkedList Vector 区别数组
1.ArrayList是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组
的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要讲已经有数组的
数据复制到新的存储空间中。当从ArrayList的中间位置插入或者删除元素时,需要对数组进行复制、
移动、代价比较高。因此,它适合随机查找和遍历,不适合插入和删除。
2.Vector与ArrayList一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个
线程能够写Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问
它比访问ArrayList慢。
3.LinkedList是用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。
另外,他还提供了List接口中没有定义的方法,专门用于操作表头和表尾元素,可以当作堆栈、队列
和双向队列使用。
12.增强for循环
*语法for(遍历出来的值:要遍历的集合)
*数组;实现Iterator接口可以实现增强for循环
*在集合上使用增强for循环遍历
list set 实现Iterator接口,所以可以使用增强for循环
map不能使用,没有实现Iterator接口,
*增强for循环就是为了替换迭代器
13.内容补充
*交换任意类型数组
*交换长度 长度/2
//遍历数组
public static <T>void reverses(T[] arr1)
{
for(int i=0;i<=arr1.length/2;i++)
{
T temp=arr1[i];
arr1[i]=arr1[arr1.length-i-1];
arr1[arr1.length-1-i]=temp;
}
}
14.可变参数
*可变参数可以应用在:
**实现两个数相加,实现三个 四个数相加
--如果实现多个方法,这些方法里面逻辑相同,唯一不同的是传递的参数的个数,可以使用可变参数
*定义方法:数据类型...数组的名称
-代码
private static void add1(int...nums)
{
///nums理解为一个数组,这个数组存储传递过来的参数
int sum=0;
for (int i = 0; i < nums.length; i++)
{
sum+=nums[i];
}
System.out.println(sum);
}
*注意的地方
(1)可变参数需要写在方法的参数列表中,不能单独定义
(2)在方法的参数列表中只能有一个可变参数
(3)方法的参数列表中的可变参数,必须放在参数列表的最后