java教学总结
“酒梦笑颜”通过精心收集,向本站投稿了17篇java教学总结,下面是小编为大家准备的java教学总结,欢迎阅读借鉴。
篇1:java双语教学总结
java双语教学总结
20x年9月教育部《关于加强高等学校本科教育工作,提高教学质量的若干意见》指出:为适应经济全球化和科技革命的挑战,本科教育要创造条件使用外语进行公共课和专业课教学。对高科技领域的生物技术、信息技术等专业力争3年内,外语教学课程达到所开课程的5%-10%。
我校双语教学起步较晚,对于计算机专业,目前主流的编程语言的语义均来自于英文,国际上最先进、前沿的计算机技术大都用英文论述,最新的编程框架90%以上是用英文论述或注释。计算机专业的双语教学,不仅是对现行教学方法的一次探索,也是培养高素质双语计算机人才的重要途径之一。为将我院本科各专业学生培养成富有创新思想、开拓能力,具有国际视野和知识的高素质人才,我20x年9月开始担任本课程的双语教学工作,结合过去一个学期的教学经验,现对本课程的意义、多媒体双语教学应具备的条件、应注意的问题、存在问题和应采用的措施等方面作一总结
1、本课程采用多媒体双语教学的意义
(1)作为基础外语教学的延伸,提高学生的专业外语水平,并为学生毕业后从事科研、生产和经济建设活动服务,从而提高学生面向市场的竞争能力。
(2)吸收国外教材中的先进成分,学习国外科学家开展科学研究、参加工程实践和面向市场经济的务实态度和献身精神,培养具有强烈创新意识和实际创新能力的人才。所选择的图像处理技术国外教材特别注重理论和实践的.结合,在内容安排、习题的选择和工程项目的举例等方面均很有特色。
(3)为部分后续课程的学习提供新的平台。本课程承前启后,本科生,以及将来学生深入学习,进入研究生课程都与它有密切关联。
(4)利于学生的毕业论文利用新的外文资料。
(5)展多媒体双语教学有利于提高师资素质,培养青年教师后备队伍,使他们树立起“面向世界”、“赶超世界先进水平”的观念。
(6)课程的研究还有利于加强国际交流和合作,为今后培养留学生、国外访问学者打下基础。
2、本课程多媒体双语教学已具备的条件
java程序设计是理论性和实用性都很强的学科。java编程语言和编程平台都起源于西方国家,为了缩小我国在本学科的研究水平与国际上的差距,国内的部分著名大学开始选用国外的原版或影印教材。
为了适应现代化教学、与国内名牌院校和国外大学教学水平接轨的要求,本课程逐步实行多媒体双语教学,已具备的条件如下:
(1)任课教师对该课程教学熟悉,有良好的外语口语和书写表达能力。
(2)由于课程属于专业课程,学生的专业知识和外语水平较好,条件比较成熟。
(3)选择了近年来国外优秀的图像处理原版或影印教材。
(4)选择难度适中的中英文参考书。
(5)以多媒体课件加大课堂教学的信息量。
(6)先实行外语教材、外文课件、中文授课,逐步过渡到全英文教学。
3、本课程在教学工作中的具体实施
(1)教材和参考书的选择。教材选用原版英文教材或影印教材。参考书以中文书为主,适当选择一些英文参考资料,中英文参考书相互补充,便于学生加深对课程的理解和中英文表达方式的对照。例如,选择《Introductiontojavaprogramming》(6edition),本教材有相应的中文译本,而且被机械工业出版社入选为《国外优秀计算机科学与技术系列教学用书》.相辅助的参考书有《Thinkinginjava》《javahowtoprogram》等,都有对应中文参考书并全部被列为经典原版教材,多数院校经久使用。
(2)中英文教材在内容、体系上的异同。对现有中文教材和原版外文教材的教学大纲进行比较分析,以实现不同语种教材间的互补。列出重点掌握的专业词汇对照
(3)英文的习题和试题的命题
本课程使用英文作业和试卷考核形式,这是把握教学质量的重要环节,是分析教学实际效果的重要依据。这方面没有现成的经验可遵循,必须探索。示例作业和英文试卷见后面附录A、B。
4、双语教学效果
鉴于目前我院师资情况,双语课程只是在部分班级开设,即使同一年级同专业的各班之间也不是全部开设。同时我们本着实事求是的原则,谨慎推进双语教学。通过对双语教学课程学生反馈信息的总结,可以确定双语教学的开展产生了如下效果。
(1)学生不仅掌握了相关课程的基本概念和基本理论知识,而且通过双语学习掌握了准确系统的英语专业表达方式。提高专业英文的阅读能力和自学能力。
(2)通过课堂提问,书面作业等形式的教学方法,初步培养了学生用外语进行专业交流的能力,增强了学生开口说,动手写的热情,提供了学生与老师间进行专业交流的平台,提升了学生的综合素质。
(3)在本课程学习的基础上,学生在毕业论文设计初期可以充分,自由的利用新的外文资料。
(4)为学生毕业后从事科研、生产和经济建设活动服务,从而提高学生面向市场的竞争能力。
5、本课程在教学过程中存在的问题
从学生外语能力来看,由于大多数学生口语表达能力和听力较差,特定题材的英文写作能力较弱,限制了老师和学生的知识沟通,使双语教学停留在老师语言表达较为简单、专业词汇较为基础的层面上,导致更进一步的知识传授与探讨无法顺利进行。影响了双语教学的效果。
从教师的授课内容来看,由于双语教学开展时间较短,授课教师教学经验不足,出现了教师的讲授更多停留在英文教材的书面表述上;
从课件准备上看,为了更好地阐述和传授英文教材中的专业知识,授课教师在课件中大多使用全英文专业词汇,部分使用了英文单词的缩写形式,考虑到中国学生的知识背景和英文认知能力,部分学生对授课教师课件中的这些内容难以理解和接受。
6、本课程在实施中为解决问题所采用的应对措施
(1)教学与科研相结合将科研成果结合到教学当中去,以增强学生的学习兴趣和求知欲望。也可以在本科毕业设计中指导学生进行java程序设计方面课题的较为深入的研究,使他们在实践中加深对所学知识的理解。同时对教学和科研都有相应的促进作用。目前我所代09届毕业生10名,有一半的学生使用java结合IDE和服务器软件做毕业设计,这说明教学的知识可以充分的应用到实践中去。
(2)传统教学方法与多媒体课件相结合
现代的多媒体技术虽然所包含的信息量大,形式多样,但是并不能完全代替传统的教学方法,靠课件往往在速度上和表达的准确性上难以奏效,教师的口头表达以及在黑板上书写显得更为方便。
(3)中文教授和英文讲授相结合
在专业语言表达上,中英文存在一定的差异,针对学生英语水平的现状,全英文讲授将导致教学效果不好。针对学生的现状,收集学生对教学效果的反馈意见,采用英文教案和多媒体课件,课堂上主要以中文讲授为主,适当穿插英文专业术语效果较好。只有在条件成熟时才能适当采用全英文教学。
(4)教师指导与优秀本科生和研究生参加教改相结合
下一步打算,吸收部分优秀本科生参与课件制作,通过与学生交互,收集反馈意见,提升教学质量,并可以提高学生学习兴趣。7结论
总之,双语教学对高校而言,是一种新的实践,它必然要经过一个从不成熟到成熟的过程。本课程在实际教学过程中取得了一定的教学效果,同时也存在一定的问题,应当在今后的实践中积极探索,及时总结经验,采取积极有效的措施,促进双语教学工作的顺利进行。附录ATestpaperB附录Bhomework
篇2:java总结
java集合总结
java集合总结(一)
一、数组、集合
数组、集合:都是一种容器,用一个对象管理多个对象;
数组:不能自动增长;只能存放同类型的元素
集合:能自动扩容;部分集合允许存放不同类型的元素;
二、学习这些集合类要掌握哪些东西:
1)怎样得到(选择)集合对象;
2)怎样添加元素
3)怎样删除元素
4)怎样循环遍历没一个元素
三、list、set、map
collection:父接口;
Set:接口---一个实现类:HashSet
List:接口---三个实现类:LinkedList,Vector,ArrayList
SortedSet:接口---实现类:TreeSet
1、List:
List:有序列表,允许存放重复的元素;
实现类:
ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;下标也是从0开始;
LinkedList:链表实现,增删快,查询慢
Vector:数组实现,线程安全,重量级
2.Set:
无序集合,不允许存放重复的元素;
实现类HashSet:equals返回true,hashCode返回相同的整数;哈希表;
子接口SortedSet:对Set排序实现类:TreeSet:二叉树实现的;
看API:
Iterator:接口,迭代器;
java.util;
hasNext;
next();
remove();
Iterable:可迭代的,访问的;
ng;实现了可迭代的接口就可以用迭代的方式访问;
只需实现iterator();方法即可;Iteratoriterator();
三种循环的访问方式:
只有实现了Iterable接口的才能用第三种;能用第二种的也一定能用第三种;
ArrayList:自动扩容,是数组照搬过来的;
3.Map
HashMap:键值对,key不能重复,但是value可以重复;key的实现就是HashSet;value对应着放;
HashSet的后台有一个HashMap;初始化后台容量;只不过生成一个HashSet的话,系统只提供key的访问;
如果有两个Key重复,那么会覆盖之前的;
Hashtable:线程安全的
Properties:java.util.Properties;key和value都是String类型,用来读配置文件;
HashMap与Hashtable区别:
HashMap线程不安全的,允许null作为key或value;
Hashtable线程安全的,不允许null作为key或value;
TreeMap:对key排好序的Map;key就是TreeSet,value对应每个key;
key要实现Comparable接口或TreeMap有自己的构造器;
HashSet:remove(Objecto)的原则看这个对象O的Hashcode和equals是否相等,并不是看是不是一个对象;
定义一个Map;key是课程名称,value是Integer表示选课人数;
map.put(cou,map.get(cou)+newInteger(1));
四、Hashtable、Properties
1,Hashtable:实现了Map接口,此类实现一个哈希表,作用和HashMap相同。任何非null对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现hashCode方法和equals法。
2,Properties:继承自Hashtable,比Hashtable更严格属性列表中每个键及其对应值都是一个字符串。
常用方法StringgetProperty(String?key)和setProperty(Stringkey,Stringvalue);
用法:我在C盘下建了一个名为yy.dat的文件,文件的内容为:
name=hehe
password=12345
执行以下程序,输出hehe,可见用Properties可以很方便的解析配置文件
Propertiesp=newProperties();
p.load(newFileInputStream(“C:yy.dat”));
System.out.println(p.getProperty(“name”))
五、两个工具类Arrays和Collections
1.Arrays、此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂
2.Collections、主要提供了在collection上进行操作的静态方法
六、遗留的几个类
1.Hashtable,作用和HashMap相同,不过它是线程安全的,如果不需要线程安全,应该使用HashMap
2.Enumeration,遗留集合使用枚举接口来遍历元素,它有两个方法,hasMoreElements和nextElement,用法类似Iterator。
3.Stack,继承自Vector,实现了栈的功能,提供了push()方法押栈和pop()方法出栈。
4.BitSet,位集。如果需要高效率的存储一个位序列,例如一个标志序列,请使用位集。它可以对各个位进行
读取get(i)
设置set(i)
清楚clear(i)
七、常见笔试题目汇总
1.Collection和Collections的区别。
Collection是集合类的上级接口,继承与他的接口主要有Set和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
2.List,Set,Map是否继承自Collection接口?
List,Set是,Map不是
3.两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对?
不对,有相同的hashcode。
4.你所知道的集合类都有哪些?主要方法?
最常用的集合类是List和Map。List的.具体实现包括ArrayList和Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。List适用于按数值索引访问元素的情形。
Map提供了一个更通用的元素存储方法。Map集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。
5.排序都有哪几种方法?请列举。用JAVA实现一个快速排序。
排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)
快速排序的伪代码。
//使用快速排序方法对a[0:n-1]排序
从a[0:n-1]中选择一个元素作为middle,该元素为支点
把余下的元素分割为两段left和right,使得left中的元素都小于等于支点,而right中的元素都大于等于支点
递归地使用快速排序方法对left进行排序
递归地使用快速排序方法对right进行排序
所得结果为left+middle+right
6.HashMap和Hashtable的区别
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap类没有分类或者排序。它允许一个null键和多个null值。
Hashtable类似于HashMap,但是不允许null键和null值。它也比HashMap慢,因为它是同步的。
7.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()它们有何区别?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。
equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
java集合总结(二)
java集合类主要负责保存、盛装其他数据,因此集合类也称容器类。java集合类分为:set、list、map、queue四大体系。其中set代表无序、不可重复的集合;list代表有序、可重复的集合。map代表具有映射关系的集合;queue代表队列集合。
java集合类主要由两个接口派生:Collection和Map,是集合框架的根接口。下面是其接口、子接口和实现类的继承树。
下面就一一介绍四大接口及其实现类。
Set接口。set集合不允许包含相同的元素。set判断两个对象是否相同是根据equals方法。如果两个对象用equals方法返回的是true,set不会接受这两个对象。
HashSet是set接口的典型实现,HashSet按hash算法来存储集合中的元素。因此具有很好的存储和查找性能。HashSet判断两个元素的标准是两个元素的equals方法比较相等,同时两个对象的hasCode()方法返回值也相等。HashSet可以保存null元素。
List集合代表一个有序集合。集合中的每个元素都有其对应的顺序索引。Arraylist和vector是list接口的两个典型实现。他们之间的显着区别就是:vector是线性安全的,而arraylist不是。它们两个都是基于数组实现的list类。List还有一个基于链表实现的LinkedList类。当插入、删除元素的速度非常快。这个类比较特殊,功能也特别多,即实现了List接口,也实现了Dueue接口(双向队列)。可以当成双向队列使用,也可以当成栈使用。
Queue用于模拟队列的数据结构。LinkedList和ArrayDueue是其两个比较常用的实现类。
Map用于保存具有映射关系的数据。Map接口有如下几个常用的实现类:HashMap、HashTable、TreeMap。TreeMap是基于红黑树对TreeMap中所有key进行排序。HashMap和HashTable主要区别有两点:1、Hashtable是线性安全的,因此性能差些。2、HashMap可以使用null作为key或者value。
集合类还提供了一个工具类Collections。主要用于查找、替换、同步控制、设置不可变集合。
上面是对java集合类的一般概述,下面就set、list、map三者之间的关系进行剖析。
Set与Map的关系。Map集合中所有key集中起来,就组成了一个set集合。所以Map集合提供Set
Map与List的关系。把Map的key-value分开来看,从另一个角度看,就可以把Map与List统一起来。
Map集合是一个关联数组,key可以组成Set集合,Map中的value可以重复,所以这些value可以组成一个List集合。但是需要注意的是,实质Map的values方法并未返回一个List集合。而是返回一个不存储元素的Collection集合,换一种角度来看对List集合,它也包含了两组值,其中一组就是虚拟的int类型的索引,另一组就是list集合元素,从这个意思上看,List就相当于所有key都是int型的Map。
下面讲解几个相似类之间的差异。
ArrayList和LinkedList。ArrayList是一种顺序存储的线性表,其底层是采用数组实现的,而LinkedList是链式存储的线性表。其本质就是一个双向链表。对于随机存储比较频繁的元素操作应选用ArrayList,对于经常需要增加、删除元素应该选用LinkedList。但总的来说ArrayList的总体性能还是优于LinkedList。
HashSet与HashMap的性能选项。主要有两个方面:容量和负载因子(尺寸/容量)。较低负载因子会增加查询数据的性能,但是会降低hash表所占的内存开销。较高负载因子则反之,一般对数据的查询比较频繁,所以一般情况下初始容量应该大一点,但也不能太大,否则浪费内存空间。
篇3:java总结
一、数组、集合
数组、集合:都是一种容器,用一个对象管理多个对象;
数组:不能自动增长;只能存放同类型的元素
集合:能自动扩容;部分集合允许存放不同类型的元素;
二、学习这些集合类要掌握哪些东西:
1)怎样得到(选择)集合对象;
2)怎样添加元素
3)怎样删除元素
4)怎样循环遍历没一个元素
三、list、set、map
collection:父接口;
Set:接口---一个实现类:HashSet
List:接口---三个实现类:LinkedList,Vector,ArrayList
SortedSet:接口---实现类:TreeSet
1、List:
List:有序列表,允许存放重复的元素;
实现类:
ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;下标也是从0开始;
LinkedList:链表实现,增删快,查询慢
Vector:数组实现,线程安全,重量级
2.Set:
无序集合,不允许存放重复的元素;
实现类HashSet:equals返回true,hashCode返回相同的整数;哈希表;
子接口SortedSet:对Set排序实现类:TreeSet:二叉树实现的;
看API:泛型:表示一个对象;
Iterator:接口,迭代器;
java.util;
hasNext();
next();
remove();
Iterable:可迭代的,访问的;
ng;实现了可迭代的接口就可以用迭代的方式访问;
只需实现iterator();方法即可;Iteratoriterator();
三种循环的访问方式:
只有实现了Iterable接口的才能用第三种;能用第二种的也一定能用第三种;
ArrayList:自动扩容,是数组照搬过来的;
3.Map
HashMap:键值对,key不能重复,但是value可以重复;key的实现就是HashSet;value对应着放;
HashSet的后台有一个HashMap;初始化后台容量;只不过生成一个HashSet的话,系统只提供key的访问;
如果有两个Key重复,那么会覆盖之前的;
Hashtable:线程安全的
Properties:java.util.Properties;key和value都是String类型,用来读配置文件;
HashMap与Hashtable区别:
HashMap线程不安全的,允许null作为key或value;
Hashtable线程安全的,不允许null作为key或value;
TreeMap:对key排好序的Map;key就是TreeSet,value对应每个key;
key要实现Comparable接口或TreeMap有自己的构造器;
HashSet:remove(Objecto)的原则看这个对象O的Hashcode和equals是否相等,并不是看是不是一个对象;
定义一个Map;key是课程名称,value是Integer表示选课人数;
map.put(cou,map.get(cou)+newInteger(1));
四、Hashtable、Properties
1,Hashtable:实现了Map接口,此类实现一个哈希表,作用和HashMap相同。任何非null对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的.对象必须实现hashCode方法和equals法。
2,Properties:继承自Hashtable,比Hashtable更严格属性列表中每个键及其对应值都是一个字符串。
常用方法StringgetProperty(String?key)和setProperty(Stringkey,Stringvalue);
用法:我在C盘下建了一个名为yy.dat的文件,文件的内容为:
name=hehe
password=12345
执行以下程序,输出hehe,可见用Properties可以很方便的解析配置文件
Propertiesp=newProperties();
p.load(newFileInputStream(“C:yy.dat”));
System.out.println(p.getProperty(“name”))
五、两个工具类Arrays和Collections
1.Arrays、此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂
2.Collections、主要提供了在collection上进行操作的静态方法
六、遗留的几个类
1.Hashtable,作用和HashMap相同,不过它是线程安全的,如果不需要线程安全,应该使用HashMap
2.Enumeration,遗留集合使用枚举接口来遍历元素,它有两个方法,hasMoreElements和nextElement,用法类似Iterator。
3.Stack,继承自Vector,实现了栈的功能,提供了push()方法押栈和pop()方法出栈。
4.BitSet,位集。如果需要高效率的存储一个位序列,例如一个标志序列,请使用位集。它可以对各个位进行
读取get(i)
设置set(i)
清楚clear(i)
七、常见笔试题目汇总
1.Collection和Collections的区别。
Collection是集合类的上级接口,继承与他的接口主要有Set和List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
2.List,Set,Map是否继承自Collection接口?
List,Set是,Map不是
3.两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对?
不对,有相同的hashcode。
4.你所知道的集合类都有哪些?主要方法?
最常用的集合类是List和Map。List的具体实现包括ArrayList和Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。List适用于按数值索引访问元素的情形。
Map提供了一个更通用的元素存储方法。Map集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。
5.排序都有哪几种方法?请列举。用JAVA实现一个快速排序。
排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)
快速排序的伪代码。
//使用快速排序方法对a[0:n-1]排序
从a[0:n-1]中选择一个元素作为middle,该元素为支点
把余下的元素分割为两段left和right,使得left中的元素都小于等于支点,而right中的元素都大于等于支点
递归地使用快速排序方法对left进行排序
递归地使用快速排序方法对right进行排序
所得结果为left+middle+right
6.HashMap和Hashtable的区别
都属于Map接口的类,实现了将惟一键映射到特定的值上。
HashMap类没有分类或者排序。它允许一个null键和多个null值。
Hashtable类似于HashMap,但是不允许null键和null值。它也比HashMap慢,因为它是同步的。
7.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()它们有何区别?
Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。
equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。
篇4: java培训总结
Java语言是一种跨平台的高级语言,无论是网络世界和桌面应用程序,还是分布式应用环境和嵌入式应用都可以看到Java的身影。显然Java语言依然保持着旺盛的生命力,这也使得众多的从业人员开始学习Java语言。
Java技术入门 使读者对Java语言有个初步的了解,为后面的深入学习奠定基础;面向对象技术是需要读者认真学习和体会的,第三篇编程提高篇 详细讲述了Java语言的高级主题,即读者进阶学习的必备内容;Java分布式计算技术的内容 ,如果读者对Web编程感兴趣,相信本篇可以满足您的需求。为了说明Java语言的应用,《Java完全自学手册》最后一篇介绍了一个实例 ,通过该程序从无到有的过程使读者知道如何使用Java语言编写应用程序。
刚开始头绪有点乱,尤其是看了thinking in java第四版前面后,你知道那感觉,啃啃不下去,实例每个都看的似懂非懂,一两个还行,多了就慌了,更何况他的内容也看不太懂,虽然硬着头皮往后走,但走到第三章就觉得不能再这样了。上网找,一个视频教学,孙鑫老师的那个视频,老师讲的细致,各种小细节都不放过,开始还认真的一句一句听,后来也觉得有些东西用的时候查书google就好了到没必要听讲的时候弄懂。但好在孙鑫老师讲的大致还是沿袭中国人能懂的语言,比起thinking in java来说,确实是听懂了。所以到了lession4以后,我就大量使用快进了。讲下自学心得,给准备学习的朋友理个大概框架,尤其是有一点asp一类语言基础的,就更合适了:
基础,java编写的时候,用记事本或者编译工具,把java语言写出来,然后用javac 编译写好的语言文件把它编译成 class文件,class文件就是机器最终执行的文件(至于class里面是什么样的,机器是怎么中转又编译的,我们就不用管它了)。前面涉及到要配置java目录、classpath目录几个工作,很多讲座要在这里花上一两堂课,我看用不着,你就记着查google百度把path和classpath设好,就ok可以开始用了。
java以class为基本单位,一个class实现一个基本功能或者模块或者接口,一个java文件里面你可以编写多个class,但一编译就会变成多个class文件,
跟你分开写效果是一样的。class里面如果包含main方法,就是机器最后执行的class,(其他不含main方法的class为执行的这个class提供各种方法) java就是用class这个概念把各种功能模块化,当你把一个一个功能都写好或者系统本身就有这个功能的class的时候,你就直接调用现成的class,就不用额外再去写了,就省心。比如有个class他能把这个三个数字按照我们设定好的方式组成一个矩形,当我们下次要用这个矩形的时候,就不用再重复写三个数字到矩形的过程,只要把三个数字交给写好的那个class让他组合成矩形,我们把矩形拿过来用就好了;比如有个class他能把每个学生各门成绩都加总,我们要做学生总分排名的时候,只需要调用这个现成class把成绩给他加总,我们不再去写成绩如和加总的过程,直接使用加总结果排名就可以了。也就是,很多功能、模块,系统有的用系统的,别人有公用的拿别人的用,自己以前有写过的用自己以前写过的,只有这三个都没有的,才需要自己动手去写,这样一排除下来,还真的就没多少需要我们自己写的了,所以才说java比较省事。
篇5:Java基础总结
1.在程序设计中经常用到一系列类型(基本类型),它们需要特殊对待,对于这些类型,Java采取与C和C++相同的方法,也就是说,不用new来创建变量,出是创建一个并非引用的变量,这个变量直接存储“值”,并置于堆栈中,因此更加高效。
基本类型包装类型大小booleanBoolean-charCharacter16-bitbyteByte8-bitshortShort16-bitintInteger32-bitlongLong64-bitfloatFloat32-bitdoubleDouble64-bitvoidVoid-基本类型具有的装类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。
public class AutoBoxingTest{ public static final Integer CONST_A = 1; public static final Integer CONST_B = Integer.valueOf(“2”); public static final Integer CONST_C = new Integer(3); private Integer status; public void setStatus(Integer status){ this.status = status; } public void displayStatus{ if(status==CONST_A)System.out.println(“It's CONST_A”); else if(status==CONST_B)System.out.println(“It's CONST_B”); else if(status==CONST_C)System.out.println(“It's CONST_C”); elseSystem.out.println(“Invalid status!”); } public static void main(String[] args){ AutoBoxingTest abt = new AutoBoxingTest(); abt.setStatus(1); abt.displayStatus(); abt.setStatus(2); abt.displayStatus(); abt.setStatus(3); abt.displayStatus(); }}/**执行结果:It's CONST_AIt's CONST_BInvalid status!原因:在自动装箱和调用Integer.valueOf(String)时,返回的Integer是从IntegerCache中获取的,所以都是同一个对象。延伸一下,如果一边是包装类,一边是基本类型时,使用< 、> 、<=等比较,都会时行值比较。*/
Java提供了两个用于高精度计算的类:BigInteger、BigDecimal。
import java.math.BigInteger;public class MainClass{ public static void main(String[] argv)throws Exception { BigInteger bigInteger1 = new BigInteger(“123456789012345678901234567890”); BigInteger bigInteger2 = new BigInteger(“123456789012345678901234567890”); //add bigInteger1 = bigIntger1.add(bigInteger2); System.out.println(bigInteger1); //subtract bigInteger1 = bigInteger1.subtract(bigInteger2); System.out.println(bigInteger1); //multiplay bigInteger1 = bigInteger1.multiply(bigInteger2); System.out.println(bigInteger1); //divide bigInteger1 = bigInteger1.divide(bigInteger2); System.out.println(bigIntger1); }}
2.基本数据类型默认值
若类的某个成员是基本类型,即使没有进行初始化,Java也会确保它获得一个默认值 。
基本类型默认值booleanfalsechar‘/u0000’byte0short0int0long0Lfloat0.0Ldoubl0.0d3.javadoc
用于提取注释的一部分,输出是一个HTML文件,所有Javadoc命令只能在”/*”注释中出现,结束于”/”,使用Javadoc的方式主要有两种:嵌入式HTML或使用”文档标签”,”文档标签”是一些以@字符开头的命令.
篇6:Java基础总结
1.直接常量
为了编译器可以准确的知道要生成什么样的类型,可以给直接常量后面添加后缀字符标志它的类型,若为L表示long,F表示float,D表示double。也可以利用前缀表示进制,0x表示十六进制,0表示八进制。
2.移位操作符
(<<):向左移动,低位补0
(>>):向右移动,高位补符号
(>>>):向右移动,高位补0
3.Java中没有sizeof,因为所有数据类型在所有机器中的大小都是相同的。
篇7:Java基础总结
1.Java完全采用动态内存分配方式。每当想创建新对象时,就需要使用new关键字来构建此对象实例。
2.在构造器中,如果为this添加了参数列表,那么就有了不同的含义。这将产生对符合此参数列表的某个构造器的明确调用。(1)尽管可以用this调用一个构造器,但却不能调用两个,而且必须将构造器调用置于最起始处。(2)除构造器外,编译器禁止在其他任何方法中调用构造器。
public class Person{ int age = 0; String name = “”; Person(int a){ age = a; System.out.println(“age:”+age); } Person(String n){ name = n; System.out.println(“name:”+name); } Person(int a,String n){ this(a); this.name = n; System.out.println(“both!”); }}
3.finalize方法
一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。
public class FinalizeDemo{ public static void main{ Cake c1 = new Cake(1); Cake c2 = new Cake(2); Cake c3 = new Cake(3); c2 = c3 = null; System.gc();//Invoke the Java garbage collector }}class Cake extends Object{ private int id; public Cake(int id){ this.id = id; System.out.println(“Cake Object ”+id+“ is created”); } protected void finalize()throws java.lang.Throwable{ super.finalize(); System.out.println(“Cake Object ”+id+“is disposed”); }}/**执行结果 :Cake Object 1 is createdCake Object 2 is createdCake Object 3 is createdCake Object 3 is disposedCake Object 2 is disposed*/
4.在定义类成员变量的地方可以为其赋值,在C++中是不能这么做的。在类的内部,变量定义的先后顺序决定了初始化的顺序。
篇8:Java基础总结
1.package必须是文件中除注释以外的第一句程序代码。
2.每个文件只能有一个public类,但是也可以完全不带public类,在这种情况下,可以随意对文件命名。
3.类的名字必须与文件名相同.
4.除了public、private、protected之外,Java有一种默认的访问权限,当没有使用前面的访问指字词时,它将发挥作用。这种权限通常称为包访问权限。在这种权限下,同一个包中的类可以访问这个成员,而包之外的类,是不能访问这个成员的。
package testcontrol;public class MyTest{ public int mIntPublic = 22; protected int mIntProtected = 33; private int mIntPrivate = 44; int mInt = 55; void printForAll() { System.out.println(mIntPublic); System.out.println(mIntProtected); System.out.println(mInt); System.out.println(mIntPrivate); }}
package testcontrol;//同一个包下的子类class MyTestDerived extends MyTest{ void printForAll() { System.out.println(mIntPublic); System.out.println(mIntProtected); System.out.println(mInt); //Syste.out.println(mIntPrivate); }}//同一个包下的非子类public class MyTestNotDerived{ public static main(String[] args){ MyTest bjMyTest = new MyTest(); System.out.println(“Access Permission Test in same package:1”); System.out.println(objMyTest.mIntPublic); System.out.println(objMyTest.mIntProtected); System.out.println(objMyTest.mInt); //System.out.println(objMyTest.mIntPrivate); System.out.println(“Access Permission Test:2”); objMyTest.printForAll(); System.out.println(“Access Permission Test in Derived:3”); objDerived.printForAll(); }}
篇9:Java基础总结
1.foreach
是一种更加简洁的for语法用于数组和容器
for(元素类型t 元素变量x:遍历对象obj){
引用x的java语句
}
int arr[] = {1,2,3};for(int x:arr){ System.out.println(x);}
篇10:Java基础总结
1.用interface关键字创建一个接口,要让一个类实现特定接口,需要使用implements关键字。
2.接口也可以包含域,但是这些域隐式是static和final的。
interface Runner//定义接口{ int i = 3; public void start; void run(); void stop();}interface Eater extends Runner//接口间可以继承{ public final static int j = 4; void openMouth(); void upAndDown(); void goIn();}class TT implements Eater//实现接口{ public void start(){System.out.println(“start”);} public void run(){System.out.println(“run”);} public void stop(){System.out.println(“stop”);} public void openMouth(){System.out.println(“openMouth”);} public void upAndDown(){System.out.println(“upAndDown”);} public void goIn(){System.out.println(“goIn”);}}public class TestInterface { public static void main(String[] args){ Runner tt = new TT(); System.out.println(tt.i); System.out.println(Runner.i); tt.start(); Eater ee = new TT(); System.out.println(ee.j); System.out.println(Eater.j); ee.start(); }}
篇11:Java基础总结
1.它能访问其外围对象的所有成员,
2.如果你需要生成对外部类对象的引用,可以使用外部类的名字后面紧跟.this.
3. 使用.new创建内部类的引用
public Test(){ private int num; public Test(int num){ this.num = num;} private classInner{ public Test getTest(){return Test.this; } public Test newTest(){return new Test(); } } public static void main(String[] args){ Test test = new Test(5); Test.Inner inner = test.new Inner(); Test test2 = inner.getTest(); Test test3 = inner.newTest(); System.out.println(test2.num); System.out.println(test3.num); }}/**执行结果:5 0*/
篇12:Java基础总结
1.extends关键字用于类的继承。
2.在C++中,方法的动态绑定是使用virtual关键字来实现的,而在Java中,动态绑定是默认的形为,不需要添加额外的关键字。
//c++代码class Base{public : Base{init();} virtual ~Base(){}protected: virtual void init() { cout<<“in Base::init()”<
//javaclass Base{ public Base(){init();} protected void init(){ System.out.println(“in Base::init()”); }}class Derived extends Base{ public Derived(){init();} protected void init(){ System.out.println(“in Derived::init”); }}public class Test{ public static void main(String[] args){ Base base = new Derived(); }}/*执行结果 :in Derived::init()in Derived::init()这是因为Java中的类对象在构造前就已经存在了,而c++中只有在构造完毕后才存在。*/
3.使用关键字super显式调用基类的构造器。
4.final关键字
(1)对于基本类型,final可以使其成为编译时常量,可以在定义时赋值,也可以在构造函数中进行赋值。
(2)对于对象引用,final使引用恒定不变,一旦引用被初始化指向一个对象,就无法再把它改为为指向另一个对象。
public class Bat{ final double PI = 3.14;//在定义时赋值 final int i; final Listlist; Bat(){ i = 100; list = new LinkedList(); } Bat(int ii,listl){ i = ii; list = l; } public static void main(String[] args){ Bat b = new Bat(); b.list.add(new Bat()); //b.i = 25; //b.list = new ArrayList(); }}
(3)如果用final修饰方法,可以防止任何继承类修改它的含义。类中所有的private方法都隐式地指定为final。
(4)如果用final修饰类,表示不能再继承这个类。
篇13:Java基础总结
指程序能够在运行时发现和使用类型信息,我们一般使用两种方式来实现运行时对象和类的信息:传统的RTTI和反射机制。
1.class对象
专门用来保存类的信息,所有类都是动态加载到JVM中的,在他们第一次使用的时候,类加载器会首先检查Class对象是否加载,如果没有,那么找到同名的class文件,然后加载字节码文件,验证代码的完整性和安全性,一旦这个类型的class对象加载到内存中,它将会用来创建所有此类的对象。
class对象的生成方式如下:
(1)Class.forName(“类名字符串”)
(2)类名.class
(3)实例对象.getClass()
package Refect;class Demo{ //other code...}class hello{ public static void main(String[] args){ Classdemo1 = null; Classdemo2 = null; Classdemo3 = null; try{demo1 = Class.forName(“Reflect.Demo”); }cathc(Exception e){e.printStackTrace(); } demo2 = new Demo().getClass(); demo3 = Demo.class; } System.out.println(“类名称 ”+demo1.getName());//Reflect.Demo System.out.println(“类名称 ”+demo2.getName());//Reflect.Demo System.out.println(“类名称 ”+demo3.getName());//Reflect.Demo}
2.instanceof
告诉我们对象是不是某个特定类型的实例。
3.反射
RTTI(运行时类型信息)和反射之间真正的区别只在于,对于RTTI来说,编译器在编译时打开和检查.class文件,而对于反射机制来说,.class文件在编译时是不可获取的,所以是在运行时打开和检查.class文件。
反射主要是指程序可以访问、检测和修改它本身或行为的一种能力。
package Reflect;interface China{ public String name = “Rollen”; public int age = 20; public void sayChina(); public void sayHello(String name,int age);}class Person implements China{ private String sex; public Person(){}; public Person(String sex){this.sex = sex;} public getSex(){return sex;} public setSex(String sex){this.sex = sex;} @Override public void sayChina(){ System.out.println(“hello, china”); } @Override public void sayHello(String name,int age){ System.out.println(name+“ ”+age); }}class hello{ public static void main(String[] args){ Classdemo = null; try{demo = Class.forName(“Reflect.Person”) }catch(Exception e){e.printStackTrace();} //保存所有的接口 Classintes[] demo.getInterfaces(); for(int i=0;i
篇14:Java基础总结
1.通配符
(1)通配符的上界
? extends myClass其中“?”就是通配符,其上界为myClass,这句话代表myClass或其子类。List apples = new ArrayList;Listfruits = apples;
(2)通配符的下界
? super myClass表示通配符的下界为myClass,这句话代表myClass的超类型直至Object。List
(3)无界通配符
?等价于Object。
篇15:Java基础总结
1.用于描述Java源代码,使得我们能够以将由编译器来测试和验证的格式,存储有关程序的额外信息。使用时在@后面跟注解的名字。
2.预定义的三个注解
(1)Override
标识某一个方法是否覆盖了它的父类的方法。
(2)Deprecated
标注一个类成员时,编译器会发出警告信息。
(3)SuppressWarnings
就是抑制编译器产生警告信息。
3.自定义注解
注解的定义和接口差不多,只是在interface前面多一个“
@”
public @interface MyAnnotation{}
上面的代码是个最简单的注解,这个注解没有属性。当然也可以定义有属性的注解。
public @interface MyAnnotation{ String value();}
可以按如下格式使用MyAnnotation
@MyAnnotation(“abc”)public void myMethod(){}
这里有一个约定,如果没有写属性名的值,而这个注解又有value属性,就将这个值给value属性,如果没有,就出现编译错误。
除了可以省略属性名,还可以省略属性值,这就是默认值。
public @interface MyAnnotation{ public String value() default “xyz”;}
可以直接使用MyAnnotation
@MyAnnotationpublic void myMehtod(){}
4.元注解(对注解进行注解)
为注解提供了4种注解:
(1)Target
先看下面代码
@Target({ElementType.METHOD})@interface MyAnnotation{}@MyAnnotaion //wrong!public class Class1{ @MyAnnotation //right! public void myMethod(){}}
target所指的目标就是Java的语言元素,如类、接口、方法等。
(2)Retention
设置注解是否保存在class文件中
@Retention(RetentionPolicy.SOURCE)@interface MyAnnotation{}@Retention(RetentionPolicy.CLASS)@interface MyAnnotation2{}@Retention(RetentionPolicy.RUNTIME)@interface MyAnnotation3{}
其中第一段代码的作用是不将注解保存在class文件中,也就是说像“//”一样在编译时被过滤掉了。第二段代码的作用是只将注解保存在class文件中,而使用反射读取注解时忽略这些注解。第三段代码的作用是将注解保存在class文件中,也可以通过反射读取注解。
(3)Documented
在默认的情况下使用javadoc自动生成文档时,注解将被忽略掉,如果想在文档中也包含注解,必须使用Documented为文档注解。
(4)Interited
在默认情况下,父类的注解并不会被子类继承,如果要继承,就必须加上Inherited注解。
@Inherited@interface MyAnnotation{}@MyAnnotationpublic class ParentClass{}public class ChildClass extends ParentClass{}
在以上代码中ChildClass和ParentClass一样都已被MyAnnotation注解。
5.使用反射读取注解
我们使用反射可以得到类的方法、方法的参数以及其它的类成员等信息。如果要得到某一个类或接口的注解信息,可以使用如下代码:
Annotation annotation = MyClass.class.getAnnotaion(MyAnnotation.class);如果要得到全部的注解信息:Annotation[] annotations = MyClass.class.getAnnotations();或Annotation[] annotations = MyClass.class.getDeclaredAnnotations();getDeclaredAnnotations得到的是当前成员所有的注解,不包括继承。
##并发
1.定义任务
线程可以驱动任务,因些你需要一种描述任务的方式,这可以由Runnable接口来提供。实现Runnable接口并编写run方法。~
2.Thread类
将Runnable对象转变为工作任务的传统方式是把它提交给一个Thread构选器。
篇16:java课程总结
刚开始学的时候,感觉这两门课程好高大上的样子,因为自从学软件工程这个专业以来,一直都是学的理论性、框架性的东西,就没有接触到编程的实质性的部分,终于开始学编程了,感觉蛮兴奋的,前几节课也是精神饱满,信心十足,怀着一腔热血来听课。
再加上老师讲课的时候每个部分都讲得特别细致,彭老师的讲课方式与众不同,一边口述,一边实际操作,给我的第一感觉是这个老师是有真本事的,而不是像某些老师那样,整堂课就知道念PPT。
彭老师认真负责的教学态度,令我敬佩万分,每当我打瞌睡的时候,抬头看到正在用心讲课的彭老师,感到内心无比愧疚,于是再次用心听讲。
由于JAVAWEB和JSP两门课是同时上的,而且每次都是一整上午,上课时间很长,老师一直有条不紊的讲着,虽然时间很长,但是每当大家上完课,心中都是有一种充实的感觉,大家都觉得有所收获,所以也就不曾觉得累了。
JAVAWEB这门课让我认识了以前见所未见闻所未闻的专业术语,Web应用程序的概述。
我从中了解到Web应用程序的三层体系结构:表示层、业务层、数据存取层。
从而想到了学数据库设计时的数据库设计三大范式,它们同是叙述在编写代码时应做的规划和应遵循的规则,这种规划在以后的学习中时有出现,说明编程并不是一味地进行循环判断、死记硬背,而需要在技术上有所加强、在效率上有所提高。
做任何事都是如此,事先必须有目标、有计划,有统筹,这样执行时才不会盲目,才不会事倍功半。
学习编程对综合能力都是一种培养。
接下来是JSP知识。
要学JSP,就必须会HTML,如果HTML学不通,这对以后的学习都是一个瓶颈。
基础一定要打扎实,吃透,否则上层建筑的建起就不会很顺利甚至没法起步。
然后是JavaBean。
以下是个人对JavaBean的一点学习体会。
JavaBean里有set和get()方法,用这些方法能很容易地传值,逻辑上更标准,代码看起来也更规范。
但set()和get()方法只是用来对属性进行操作的,所以如果是进行复杂的逻辑或对数据库进行操作等,那么就不要写成set()和get()方法,只用一个有返回值的方法就足以。
这样直观方便,且符合规范。
总之,set()和get()方法不要没有效率地滥定义。
接着是Servlet。
Servlet是一个用Java编写的应用程序,在服务器上运行,用来处理请求和响应,也可以单独做为一个Web页面。
然后讲的是标签,包括自定义标签和JSP标准标签库。
用一般的Java代码都几乎能实现它们的功能。
它们的好处是提高了代码的重用性。
我们需要配置的坏境有JDK,Tomcat,还要用到Myeclips这一基础的编程工具。
在学习JSP之前,由于没有网页编程的基础,便学习了HTML这种文本标记语言,自己试着去做简单的静态网站。
后来学做JSP动态网站时,就涉及到了多方面的知识,JSP内部对象及内部对象所涉及的方法,JSP与数据库连接,如何去引用数据库。
这门课更是巩固了JAVA这一基础编程语言,要求对JAVA掌握的要透彻,每门语言要学扎实,深入理解,都要花费很大的功夫,不是容易的事情。
Jsp与servlet有一定的区别,Servlet可以看作是HTML的Java代码,而JSP可看作是包含Java代码的HTML。
共同点:JSP和Servlet实际上是一回事。
JSP页面最终要转换成Servlet,并进行编译,在请求期间执行的实际上是编译后的Servlet。
因此,JSP页面不过是编写Servlet的另一种方式。
各自应用的范围:Servlet比较适合于做处理任务,如做业务逻辑;JSP适合于表示任务,如网页制作,生成动态网页。
对JAVAWEB和JSP课程的知识就简单介绍到这里,本学期的这两门课程让我对软件工程这门课有了一个全新的认识,我真切的学到了能用的东西,大学里的很多课是浪费时间,而把时间花在学习这两门课上,不会觉得是在虚度光阴,相反,会有一种无比满足与充实的感觉,感谢彭老师半年以来的精心教诲,感谢这两门课给我带来快乐!
篇17:java学习心得总结
对于很多只会C语言的初学者而言,面对java基础语法学习,反而感觉很难,其实其中最大的问题不是语法难,而是一种编程思想的转变。面向过程就是把你的代码封装成函数,然后依次去做一件事情,面向过程是把你要做的事情抽象成对象,告诉对象去做。所以要想学好java入门,必须知道类和对象的概念。
类是对生活中事物的抽象描述,比如人类,动物类,交通工具类;对象即是对类的具体实例化,比如张三是人,猫是动物,飞机是交通工具(对象-----类)。Java基础入门学习路线可以总结为四步走:
1.java开发环境的搭建;
2.java初级之基础语法学习(80%类似C语言);
3.java中级之面向对象编程学习(重点);
4.java中级之应用编程学习。
第一步:JDK软件开发包时java软件开发环境,
包括jre运行环境和jvm虚拟机,在oricle官网下载javaSE版本JDK包;配置好环境变量就可以使用了。
第二步:java初级语法学习,
1.基本数据类型整形,字符型,字节型,长整形,短整形,浮点型,双精度,布尔型;
2.运算符+,-,_/,%等;
3.控制流(while,switch,if else);
4.数组的定义方式。
此阶段基本无难度,只要了解练习例题。
第三步:java面向对象学习,
1.类和对象;
2.java语言三大特性,封装、继承、多态;
3.一些关键字学习(static,final,abstract,extends)等。
这是重点,大家根据知识点一步步研究学习才是关键。
第四步:java应用编程,
例如:文件IO,集合(类似C语言数据结构),异常处理,线程,网络,JDBC数据库操作等,都是掌握面向对象以后,在查找不同的类使用类中不同的方法达到应用的效果,所以并不会很难。等基础语法掌握了就可以继续后面框架学习(java web方向,android学习),相信明确思路你会豁然开朗,更有学习动力。
【java教学总结】相关文章:
2.java学习总结
3.java个人总结
10.java个人学习总结2






文档为doc格式