java基础习题(推荐7篇)
1、编写程序创建并显示一个标题为“My Frame”、背景为红色的Frame。
2、编写一个程序,其功能为:在窗口上摆放两个标签。构造第一个标签时,令其上面的文本信息为“我将参加Java程序设计考试。”,将第二个标签构造为空标签。程序将第一个标签的信息复制到第二个标签上,并增加信息“希望自己考取好成绩。”。要求第一个标签以红色为背景,绿色为前景;第二个标签以绿色为背景,蓝色为前景。
3.请编写一个窗口程序,实现如下功能:定义一个用于给出提示信息的标签和两个文本框,其中,一个文本框用于获取用户给出的一个整数,求该数的平方后将计算结果置在另一个文本框中输出。
4.请编写一个窗口程序,实现如下功能:定义三个文本框。其中,第一个文本框上面的文本信息为“请输入口令:”;第二个文本框为口令输入域;第三个文本框上的信息由程序设置:若口令(假设口令为字符串”MyKey”)正确,则设置为“通过!”,否则设置为“口令错!”。
5.编写一个窗口程序, 其中包含两个按钮b1、b2,初始时b1的前景为兰色,b2的前景为红色,它们的标签分别为”兰按钮”、”红按钮”。当点击b1时,通过paint()方法在坐标(100,100)处画一个兰色的椭圆框,椭圆的长半轴为30,短半轴为20;点击b2时,在坐标(100,100)处,画一个红色的圆框,圆的半径为50。无论那个按钮被点击,都将该按钮上的标记改为“已按过”,并使该按钮变灰。
6.编写窗口程序, 其中包含两个按钮,初始时两个按钮的前景均为绿色。当点击一个按钮时,通过paint()方法在坐标(0,0)处显示一幅图象,图象名称为a.gif,显示的高、宽分别为400、300;图象与应用程序在同一目录(程序中用到的图片可自行定义)。当点击另一个按钮时,在图像上再输出字符串“好漂亮!”。同时要求当反复点击按钮时,就令被点击按钮的前景变为红色,而使另一个按钮的前景恢复为绿色。
7、编写一个窗口程序,要求使用内部类和匿名内部类做监视器,当在文本框text1中输入一个数字字符串之后,一个监视器负责计算这个数的平方并将结果放入文本框text2中,另外一个监视器计算立方并将结果放入文本框text3中。
JAAS(Java Authentication and Authentication Service Jay,认证和授权服务)是SUN公司为了进一步增强Java 2安全框架的功能而提供的编程接口,它是JDKI.3的标准扩充,并成为JDKI.4的一个组成部分。Java 2安全框架提供的是基于代码源的存取控制方式,即基于代码从哪里来,谁签署了代码,而JAAS还提供了基于代码运行者的存取控制能力,因此,JAAS是Java安全编程的一个重要补充。随着Internet的安全问题日益受到重视,JAAS编程接口和安全服务作为J2EE 1.3标准的一部分,必将会在Java应用编程中得到更广泛的应用。
JAAS主要由认证和授权两大部分构成。不管Java代码是作为Application、Applet、Bean还是Servlet运行,JAAS认证部分都能提供安全可靠的方法,决定谁可以执行哪些Java代码。
JAAS认证通过插件的形式工作,这可以使Java应用程序独立于底层的认证技术,应用程序可以使用新的或经过修改的认证技术而不需要修改应用程序本身。
2 JAAS的核心类
2.1 公共类
公共类是由JAAS认证和授权部分共同使用的类,其中Subject类最关键,它代表某个整体的一组相关信息,这个整体可以是一个人或其它对象,而相关信息则包括这个整体的标识(Principal)公有凭据、私有凭据等。
2.1.1 Subject(主题)类
应用程序首先要对请求的来源进行认证,然后才能对该请求源访向的资源进行授权。JARS框架定义“主题,这个术语代表请求源。主题可以是任何实体,如一个人或一项服务。一旦通过了认证,主题就和相关的标识联系在一起,标识可以使不同主题之间相互区别。一个主题可以具有多个标识,例如,一个人可以有一个名字标识和一个SSN(社会保障号)标识。主题也可以拥有与安全相关的属性,这些属性被称为凭据。需要特殊保护的凭据,如私匙等,储存在私有凭据集中;而可以公开的凭据,如公共证书等,储存在公共的凭据集中。
主题对象可以由以下构造函数创建:
第一个构造函数用空的标识和凭据集创建主题。第二个构造函数用指定的标识和凭据集创建主题,布尔参数read Only使主题成为只读,这样可以防止标识和凭据集被改变。
2.1.2 Principal标识类
Principal对象代表了Subject对象的身份。标识可以和一个主题关联,用于主题之间的相互区别,它必须实现java security Principal和jave.io.Serializable接口。另外,一个Subject对象中可包含多个Principal对象。
2.1.3 Credential(凭据)类
核心工JAAS类库没有对公共和私有凭据类做出规定,所以任何Java类都能代表凭据。但一般情况下,建议作为凭据的类应该实现Refreshable和Destroyable两个接口,Refreshable接口可以使凭据能够自我刷新,而Destroyable接口提供了销毁凭据中内容的功能。
2.2 认证类
认识一个主题需要下面一些步骤:
(1)应用程序实例化登录上下文(Login Context)。
(2)登录上下文按照输入参数及配置装入所有相关的登录模块。
(3)应用程序调用登录上下文的Login方法。
(4)Login方法调用所有被装入的登录模块。每个模块都试图认证主题。如果认证成功,登录模块就把相关的标识和凭据关联到所认证的主题。
(5)登录上下文返回认证状态给应用程序。
(6)如果认证成功,应用程序可以从登录上下文中获得被认证的主题。
2.2.1 Login Context(登录上下文)类
登录上下文类给应用程序提供了认证主题的基本方法,并提供了一种独立于底层认证技术的应用程序开发方法。登录上下文依照配置决定应用程序采用哪些认证服务,或者说,哪些认证模块,这样,认证模块就以插件的形式工作于应用程序的底层,认证技术的改变不需要修改应用程序本身。登录上下文创建时,需要提供一个字符申参数name,登录上下文用这个参数去索引登录配置,以决定所采用的登录模块,此外还可以提供Subject,Callback Handler等参数。
2.2.2 Login Module(登录模块)接口
登录模块接口使开发者能够把不同类型的认证技术以插件的形式加到应用程序中。作为实例化登录模块,登录上下文要求每一个登录模块提供一个没有参数的构造函数,然后登录上下文通过调用登录模块的initialize方法初始化登录模块,这样可以保证所提供的主题是非空的。
登录过程的方式由用户所编写的Callback Handler类决定,可以是提示用户输人用户名和密码.然后和储存在(如NIS和LDAP等)命名服务中的数据进行比较;也可以是从智能卡或生物特征鉴别设备那里得到数据,或者简单地从底层的操作系统中抽取用户信息。
2.2.3 Callback Handler(回调)接口
在某些情况下,登录模块必须和用户通讯以获得认证信息,这种交流可以由以下过程达到。应用程序提供一个实现Callback Handler接口的类,并把该类的实例的引用作为创建登录上下文对象时的参数,登录上下文接着把它传给了底层的登录模块。登录模块通过这个引用调用它的handle方法,这样就可以从用户那里收集信息(如密码或智能卡的PIN号),也可以把信息送给用户。于是,底层的登录模块与用户交互的方式就可以由应用程序所决定。
2.3 授权类
在成功认证主题的基础上,通过调用主题类的do As方法,可以对主题做细粒度的存取控制。授予主题的权限配置在JAAS策略中。
2.3.1 Policy(策略)类
这是一个抽象类,代表系统范围的JAAS存取控制策略。默认情况下,JAAS提供一个基于文件的子类实现,名为Policy File。
2.3.2 策略文件在JAAS中
最常见的安全策略配置一般存在于策略文件中,与Java 2的安全策略文件类似,文件中的每一个条目代表一种授权,但所列的权限是授予由代码源、代码签署者、标识集三者构成的元组,即把权限授予从特定代码源下载和被特定签署者签署的任何代码,只要运行那些代码的主题具有属于标识集中的特定标识。
2.3.3 Auth Permission类
这个类是Permission类的子类并封装了JAAS所要求的基本权限。一个Auth Permission类包含一个名字(也称为目标名),但它没有行为列表。Auth Permission类对象用于保护对Policy,Subject,Login Context和Configuration对象的访问。从Java API文档中可以得到所支持的名字列表。
3 配置文件
JAAS的可扩展性来源于它能够进行动态配置,而配置信息通常是保存在文本。这些文本文件有很多个配置块构成,我们通常把这些配置块称作申请(Application)。每个申请对应了一个或多个特定的Login Module对象。
当你的代码构造一个Login Context对象时,你需要把配置文件中申请的名称传递给它。Login Context将会根据申请中的信息决定激活哪些Login Module对象,按照什么顺序激活以及使用什么规则激活。配置文件中各元素之间的关系如图1所示。
4 实际操作
由于JAAS编程牵涉到的类比较多,它们之间的关系相对来说也比较复杂,为了更好地说明JAAS的编程特点,SUN公司提供了一个完整的例子,可以从http://java.sun.com/products/jaas/index-10.html得到。
5 结语
JAAS安全编程有很强的模块性,它通过提供动态的、可扩展的模型来进行用户验证和控制权限,从而使应用程序有更加健壮的安全机制。同时,它还能够让你能够很轻松地创建自己的登录机制。JAAS可以同时在在客户端和服务器端的应用程序上工作。以上只是介绍了JAAS编程中常用的类,所提供的例子也只是说明了程序的执行过程,以及JAAS中主要类、方法之间的调用和被调用关系。对于一个实际的系统,还会对安全提出更多的要求,因此编程时还要考虑很多因素,做很多的扩充,才能满足要求。
摘要:JAAS(Java Authentication and Authentication ServiceJay,认证和授权服务)是Java安全编程的一个重要补充。它提供了根据验证主题身份来验证主题和授权资源访问的标准方法。本文较全面地介绍了JAAS的特点、组成及其在Java安全编程中的应用。介绍了JAAS编程中常用的类,所提供的例子也只是说明了程序的执行过程,以及JAAS中主要类、方法之间的调用和被调用关系。
关键词:JAAS,认证,编程
参考文献
[1]林天峰,基于JAAS的JAVA安全编程.[J],计算机应用与软件,2007,(7):86-88.
[2]万军,金静梅,JAAS的分析和应用.[J],计算机时代,2008,(9):22-23.
关键词:卓越 专业基础 习题讨论
中图分类号:G642 文献标识码:A 文章编号:1673-9795(2012)12(a)-0081-01
强化学生的工程能力和创新能力是“卓越工程师”计划的重点,工程能力是以专业知识的雄厚为基础,而基础知识又是创新能力的源泉。专业基础课作为基础知识和专业知识的桥梁课程,对“卓越计划”的顺利实施起着重要的作用。针对目前工程教育存在的工程到知识的分解方法、以及知识到工程的适应性等欠缺问题,本文通过机械专业基础课的习题课,开展“卓越计划”下机械专业基础课教学内容和教学方法的探讨。
1 机械专业基础理论课在“卓越计划”教改中的地位
首先,机械专业基础课程包括机械设计、机械原理等课程,在工科类院校中,通常是面对全校机类、近机类和准机类多达十几个专业开设课程,这些专业通常又都是“卓越计划”覆盖的学科。其次,对学生来说,工程观念、工程标准以及工程规范都将在机械专业基础课程的学习中初步建立,同时在课程学习过程中对工程问题的常用解决方法、以及工程问题求解习惯的养成对专业课程的学习以至今后的专业发展都将起到至关重要的作用。最后,机械专业基础课程中宽广、抽象的理论知识便于学生设置不同类型的工程问题场景,能活跃同学们的思维,而活跃的思维对创新起着决定性的作用。因此,机械专业基础理论课这一教学阶段,不仅可以推进“卓越计划”在工程教育和创新教育方面的顺利实施,同时对学生养成好的工程习惯等,均具有不可替代的重要地位。
2 目前机械专业基础课习题课的开展模式及不足
习题课是教学活动模式中学生主体作用发挥最充分的教学模式之一,是学生暴露知识缺陷、暴露思维的过程。目前,机械专业基础课习题课主要的开展模式及其存在的不足主要体现:(1)习题课内容较单一。机械专业基础课的习题目前主要還是以课后习题,或者是与教材配套的习题册等习题为主。这种课后习题型习题针对的知识点较集中,内容单一,其答案一般具有唯一性。这种习题的优越性主要是体现在习题和知识点的对应性比较强,学生通过这种习题的练习可以快速地认识和掌握某个具体的知识点。然而工程问题通常是多个知识点交叉、重叠的复杂问题,首先需要解决也是最关键的问题往往是如何将复杂问题分解为简单问题,同时解决的方法多种多样,这恰恰是目前习题内容所不具备的。(2)习题课的开展模式主动性较差。目前机械专业基础课习题课的开展模式主要还是以学生练习,教师评讲的模式进行。这种模式主体仍然是教师,学生在习题评讲中发挥的主体作用非常有限,学生在这种习题课的开展模式中很难将思维扩散开来,创新教育难以开展或者说效果不太明显。(3)习题课所占课时比例较低。鉴于目前教学课时较少和教学内容较多,加上主要以教师讲授为主的课堂教学模式,使得能够支配的习题课课时在课程总课时中的比较很低。以机械原理为例,总学时为48学时的课程来说,习题课通常不超过4学时。习题课可以说是学生利用所学知识对工程问题进行求解的练习,学时少,就很难展开工程问题进行讨论,直接带来的弊端就是学生很难得到应用所学理论知识对工程问题进行综合模拟性求解的锻炼。
3 “卓越计划”下习题讨论课教学环节的教学改革
卓越计划下机械专业基础课的习题课强调在教师的精心准备和引导下,通过预先工程问题的设计与组织,启发学生就工程问题涉及到的理论知识及其应用发表自己的见解,以培养学生的工程能力和创新精神。
3.1 习题讨论课教学内容的确定
习题讨论课的教学内容,不局限在单一知识点上,而是以章节众多知识点或者说多章节知识点为依托,以工程问题为载体,结合专业特点,注重专业基础课在习题讨论课中的系统性与实效性,紧密联系生产实际制定习题讨论课的内容。习题内容可以由教师自拟,也可以是教师在学生提出的工程问题上结合知识点提炼以后的问题。
3.2 习题讨论课教学模式的探讨
机械专业基础课的习题讨论课是以课堂教学的课前、课中、课后三阶段为基础进而获得有效开展的讨论模式。第一阶段,工程问题在课程伊始布置给学生,学生可以通过预习、也可以查找课程之外的知识尝试求解,锻炼学生自主解决问题的能力;第二阶段,教师在课堂教学过程中,注重知识点在工程问题求解中穿插,引导并渗透解决工程问题的方法及步骤;第三阶段,课堂教学后,学生再次尝试综合解决工程问题,方法上既可以采用教师课堂讲授的方法,也可以采用别的学科知识进行求解,鼓励采用不同理论或者不同方法进行同一问题的求解。在上述三个阶段基础上开展习题讨论课,教师在整个讨论的过程中只起一个“暗线引领”的作用,合理调控讨论过程,引导学生进行小组讨论。最后,教师对求解该工程问题可以采用或者说涉及的理论或者方法进行系统梳理及总结。
3.3 习题讨论课教学环节教改的保障与评价
习题讨论课是在研究了专业基础课程特点的基础上,从激发兴趣和培养创新的角度探讨教改环节之一,合理的保障与评价,有利于推动机械专业基础课在卓越计划下的教改顺利进行。(1)习题讨论课的小组讨论要提交整理后的讨论记录,以报告的形式提交给任课教师,并作为课程考核的一部分。该报告制定的格式详细记载了学生解决该工程问题的过程,记载了学生的思维发展变化过程,记载了学生在求解该工程问题时知识的深入理解过程。(2)教师在评阅讨论记录时,注重学生的工程和创新教育的培养,以学生学习成效、学习过程、学习主动性、求解方法的创新性和工程求解能力的提高上进行综合考核。
4 结语
在机械专业基础课的习题课上,抓住了这个特殊的教学阶段,发挥了习题讨论课教学模式的特点,本着提高学生发现、分析和解决工程问题的能力,以培养严谨的工程态度,注重工程能力和创新能力的培养为目标,开展了专业基础课的教育教学改革研究。
参考文献
[1]朱永梅,王明强.高等学校课程考试评价研究[J].管理观察,2009(3):88-89.
[2]朱昌平,周浩,朱陈松,等.卓越计划之课后辅导“三环”实施方案[J].实验室研究与探索,2012,31(6):129-132.
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构选器。
标识符
Java对各种变量、方法和类等要素命名时使用的字符数列称为标识符。
凡是自己可以起名字的地方都叫标识符,都遵循标识符的规则
Java标识符命名规则:
标识符由字母、下划线“__”、美元”$”或数字组成 标识符应以字母、下划线、美元符开头
Java标识符大小写敏感,长度无限制
约定俗成:Java标识符选取因“见名知意”且不能与Java语言的关键字重名
关键字
Java中一些赋以特定的含义,用做专门用途的字符串称为关键字(keyword)。
大多数编译器会将关键字用特殊的方式标出
所有Java关键字都是小写英文。
goto 和const虽然从未使用,但也作为被Java关键字保留。
Java常量
Java的常量值用字符串表示,区分为不同的数据类型。
如整型常量123
实型常量3.12
字符常量„a‟
逻辑常量true,false
字符串常量“helloword”
注意:区分字符串常量和字符常量
注意:“常量”这个名词还会用在另外其他语境中表示值不可变的变量
参见final关键字
Java变量
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式:
type varName[=value] [{,varName [=value]}]
例如:
int I = 100;
float f = 12.3f;
double d1,d2,d3 = 0.123;
String s = “Hello”;
从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,每一个变量使用前必须要先申请(声明),然后必须进行赋值(填充内容),才能使用
Java变量的分类
按被声明的位置划分:
局部变量:方法或语句块内部定义的变量
成员变量:方法外部、类的内部定义的变量
注意:类外部(与类对应的大括号外面)不能有变量的声明
按所属的数据类型划分:
基本数据类型变量
引用数据类型变量
Java局部变量与成员变量
方法体内部声明的变量(包括形参)称为局部变量:
方法体内部是指与方法对应的大括号内部
在方法体外,类体内声明的变量成为成员变量
public void method(){
int i;
int j = i+5;//编译出错,变量i还未被初始化
double d = 3.14;
Dog dog;
Dog = new Dog(22,1964);
}
注:以上程序面前还不能编译
Java基本数据类型
Java中定义了4类8种基本数据类型
逻辑型—boolean
文本型---char
整数型---byte,short,int,long
浮点数型---float,double
逻辑型boolean
boolean类型适于逻辑运算,一般用于程序流程控制。
boolean类型数据只容许取值true或false,不可以0或非0的整数替代true和false,这点和C语言不同。字符型char
Char型数据用来表示通常意义上“字符”
字符常量用单引号括起来的单个字符,例如:
Char eChar = „a‟;char cChar = „中‟
Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示,例如:
Char c1 = „u0061‟;
注:Unicode是全球语言统一编码
Java语言中还允许使用转义字符„‟来将其后转变为其他含义,例如:
Char c1 = „n‟;//‟n‟代表换行
补充:2进制,10进制,16机制之间的转换
1101---1*1 + 0*2 + 1*4 + 1*8
13---1 + 4 + 8---1101
1101---D
整数类型
Java各整数类型有固定的表示范围和字段长度,其不受具体操作系统的影响,以保证Java程序的可移
植性。
Java语言整型常量的三种表示形式:
10进制整数:12-3140。
8进制,要求以0开头,如:012。
16进制,要求0x或0X开头,如:0x12
Java语言的整型常量默认为int类型,声明long型常量可以后加‟l‟或‟L‟,如:
int i1 = 600;long l1 = ***L;//必须加L否则出错
浮点类型
与整数类型类似,Java浮点类型有固定的表示范围和字段长度,不受平台影响。
Java浮点类型常量有两种表示形式:
10进制形式,例如:3.14312.0
科学记数形式:3.14e23.14E2
Java浮点数默认为double类型,如要声明一个常量为float类型,则需要在数字后面加f或F
double d = 12323.6;float f = 12.3f;必须加f否则出错
基本数据类型转换
Boolean类型不可以转换为其他的数据类型
整型,字符型、浮点型的数据在混合运算中相互转换,转换时遵循以下原则:
容量小的类型自动转换为容量大的数据类型:数据类型按容量大小排序为:
Byte,short,char->int->long->float-> double
Byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型
容量大的数据类型转换为为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或
溢出:使用时格外注意。
有多种类型的数据混合也算时,系统首先自动的将所有数据类型转换为容量最大的,然后在进
行计算
实数常量(如:1.2)默认为double
整数常量(如:12)默认为int
运算符
Java语言支持如下运算符:
算术运算符:+、-、*、/、%、++、--关系运算符:>、<、>=、<=、==、!= 逻辑运算符:!、&、|、^、&&、|| 位运算符:&、|、^、~、>>、<<、>>>
赋值运算符:=
扩展赋值运算符:+=、-=、*=、/=
字符串连接运算符:+
逻辑运算符
逻辑运算:!--逻辑非&--逻辑与 |--逻辑或 ^--逻辑异或 &&--短路与 ||--短路或
赋值运算符与扩展赋值运算符
赋值运算符(=)
当”=”两侧数据类型不一致时,可以适用默认类型转换或使用强制类型转换原则进行处理
long m = 100;int n =(int)m
注意:可以将整型常量直接赋值给byte,short,char等类型变量,而不需要进行强制类型转换,只
要不超出其表示范围:
byte b = 12;char c = 100;
byte bb = 256;short s =-32769
字符串连接符
“+”除用于算术加法运算外,还可以对字符串进行连接操作
int id = 800 + 90
String s = “Hello” + “World”;
“+”运算符两侧的操作数中只要有一个字符串类型,系统自动将另一个操作数转换为字符串然后再进行
连接。
int c = 12;
System.out.println(“c=”+c);
当进行打印时,无论任何类型,都自动转为字符串进行打印
System.out.println(c);
三目条件运算符
三目运算符,语法格式:
X ? y : z
其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算的结果为表达
式y的值,否则整个运算结果为表达式z的值。
语句
条件语句—根据不同条件,执行不同语句
if
if…else
if…else if
if…else if…else if…else
switch
循环语句—重复执行某些动作
for
while
do…while
if语句
if if…else… if…else if… if…else if…else if…
if…else if…else if…else
只有一句需要执行的语句时,可以省略{}
for循环语句
for语句为如下形式:
for(表达式1;表达式2;表达式3){ 语句;……}
执行过程
达式3,再判断表达式2的值;依此重复下去,直到表达式2的值=false
for语句中三个表达式都可以省略
while & do while语句
while语句为如下形式:
while(逻辑表达式){语句……}
执行过程:先判断逻辑表达式的值。若=true则执行其后面的语句,然后再次判断条件
并反复执行,直到条件不成立。
do while语句为如下形式:
do{语句…} while(逻辑表达式); 首先计算表达式1,接着执行表达式2,若表达式2的值=true,则执行语句,接着计算表
执行过程:先执行语句,再判断逻辑表达式的值,若为true,再执行语句,否则结束循
环。
break & continue语句
break在循环体中用于强制退出循环,不再执行循环中剩余的部分
continue在循环体内,用于终止当前的循环,返回到循环的开始处,接着开始新的一次循环。switch语句(条件语句补充)
switch(){
case xx:
….case xx:
….default:
…. }
小心case穿透,推荐使用break语句
多个case可以合并到一起
default可以省略,但不推荐省略
在switch语句里的选择值只能是字符或是常量。
方法
Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式:
[修饰符1,修饰符2…]返回值类型 方法名(形式参数列表){}
形式参数:在方法调用时用于接收外界输入的数据
实参:调用方法时实际传给方法的数据
返回值:方法在执行完毕后返回给调用它的环境的数据。返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void Java语言中使用下述形式调用方法:对象名.方法名(实参列表)实参的数目、数据类型和次序必须和所调用方法声明的形参列表匹配
Return语句终止方法的运行指定要返回的数据
Java中进行函数调用中传递参数时,遵循传递的原则:
基本类型传递的是该数据本身。引用类型传递的是对对象的引用,而不是对象本身
递归调用
递归调用指在方法执行过程中出现该方法本身的调用:
总结
标识符
不用记规则,动手
关键字
局部变量vs成员变量
变量作用域
内存布局
基础类型变量
4类8种,相互转换
分支、循环
方法
形参、实参、返回值、返回值类型
问题: 已知点M是边长为2的正方形ABCD内或边界上一动点, N是BC的中点, 则的大值为 ( ) .
A. 4 B. 5 C. 6 D. 8
( 问题展示后, 课堂上要留给学生足够的时间, 尝试、讨论、探究, 根据学情 做适当的 引导. ) 引导学生回顾教材: 数量积的问题, 教材上有定义a·b = a·b cosθ, 坐标化后a·b = x1 x2 + y1 y2 , 因而数量积计算常见方法有三种: ( 1) 利用向量数量积的定义, 计算两个向量的模及夹角; ( 2) 根据向量数量积的几何意义, 明确向量投影的含义; ( 3) 建立坐标系写出向量坐标进行运算.
因此很自然地想到:
想法1: 如图, 建立体系. 则时, 的大值为6, 选C.
反思1: 见题及图, 想法油然而生, 向量具有“几何”“代数”两种形态, “正方形”的条件自然让人选择“向量的坐标表示”. 这本身也是向量部分的核心内容, 它是将形化数的重要手段, 也是通性通法.
想法2: 另一方面, 数量积的定义:, 因要求大值, 而为定值. 所以希望在边界CB上, 准确地讲在线段CN上. 但如何直接求与cosθ, 许多学生会感到比较困难, 如何方便求解?有学生联想到教材上的平面向量基本定理, 问题便迎刃而解了.
反思2: 想法2从基本的概念入手, 抓住数量积的本质、长度与夹角的余弦, 定性地找出M点位置, 运用平面向量基本定理, 将互相垂直的向量作为基向量, 将用基底表示, 从而化一般为特殊, 化繁为简.
想法3: 受想法2的启发, 既然为定值, 联想到教材上投影的概念, , 即在上的投影.要使投影大, 则M应在点C处.
反思3: 想法3从数量积的几何意义入手, 简单快捷地确定点M的位置, 运用平面几何知识 ( 三角形相似) 求解, 整个过程完全采用几何法, 抓住了问题的本质, 由于形的直观, 解法也很简捷.
学生是学习的主体, 不同层次的学生的知识体系和思维模式是有差异的, 上述三种解法侧重的知识点不同, 但都紧扣教材, 立足基础, 注重通性通法, 抓住了问题的本质. 通过比较、交流可促进学生的思维, 每名同学可根据自己的特长选择自己熟悉的方法.
总之, 习题课教学应积极创设问题情境, 多一些探究、交流、思考, 少点“灌”, 多点“活”, 提高教学效果, 提升学生的解题能力.
参考文献
[1]2012年高考试题及解法赏析.中学数学教学参考, 2012 (8) .
[2]阳志长.数形结合思想教学设计示例之一.中学数学教学参考, 2013 (1-2) .
[3]江忠良.教学解函数的“起承转会”.中学数学教学参考, 2013 (3) .
[4]史嘉.数学解题应崇尚自然和常规.中学数学教学参考, 2012 (8) .
这里张孝祥老师只是大致提了下,我通过搜索资料,在这里把它们一一列出,并把最常用的几个已经背下.API(Application Programming Interface)应用编程接口 JRE(Java Runtime Enviroment)Java 运行时环境 JDK(Java Development Kit)Java开发工具包
SDK(Software Development Kit, 即软件开发工具包)JVM(Java Virtual Machine)Java虚拟机 JNI(Java Native Interface)Java本地接口
AWT(Abstract Windows Toolekit)抽象窗口工具箱
JNDI(Java Naming & Directory Interface)JAVA命名目录服务.主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留
下自己的索引,从而满足快速查找和定位分布式应用程序的功能。
JMS(Java Message Service)JAVA消息服务.主要实现各个应用程序之间的通讯.包括点对点和广播.JTA(Java Transcation API)JAVA事务服务.提供各种分布式事务服务.应用程序只需调用其提供的接口即可.JAF(Java Action FrameWork)JAVA安全认证框架.提供一些安全控制方面的框架.让开发者通过各种部署和自定义实现自己的个性安全控制策
略.RMI(Remote Method Interface)远程方法调用
CVS(Concurrent Versions System)版本控制器 SVN(Subversion)版本控制器
TC(Test Case)测试用例,是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个
特定需求。指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测
试步骤、预期结果、测试脚本等,并形成文档。TDD(Test-Driven Development)测试驱动开发
HTTP
Hypertext Transfer Protocol 超文本传输协议 FTP
File Transfer Protocol
文件传输协议
TCP/IP Transmission Control Protocol/Internet Protocol 传输控制协议和互联网协议 SMTP Simple Mail Transfer Protocol 简单邮件传输协议 LAN
Local area network 局域网
IPX Internetwork Packet Exchange
Internet包交换 SNA Systems Network Architecture 系统网络体系结构 DNS domain name service
域名服务
ISP Internet Service Provider
Internet服务提供商
DHCP Dynamic Host Configuration Protocol 动态主机配置协议 IETF Internet Engineering Task Force
Internet工程任务组 URI(Uniform Resource Identifier)统一资源标识符
URL(Uniform Resource Locator)统一资源定位器,URI的一个子集 REST(Representational State Transfer)表述性状态转移 HTML(Hypertext Markup Language)超文本标记语言 RFC(Request fo Comment,Internet标准(草案))HREF(Hypertext reference 超文本连接)
IMAP是Internet Message Access Protocol的缩写,是用于访问服务器上所存储的邮件的Internet协议。
DBCP(Database connection Pools)数据库连接池
CGLIB(Code Generation Library)cglib是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。
Hibernate用它来实现PO字节码的动态生成。
SOAP(Simple Object Access Protocal)简单对象访问协议,它是一个用于分散和分布式环境下网络信息交换的基于XML的通讯协议。在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。
SOA(Service Oriented Architecture)面向服务的架构,其实质就是要将系统模型与系统实现分割开来。
WSDL(Web Service Description Lanaguage)网络服务描述语言 ,是一门基于 XML 的语言,用于描述 Web Services 以及如何对它们进行访问。
UDDI(Universal Description , Discovery and Ingergration)是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。可译
为“通用描述、发现与集成服务”。
DWR(Direct Web Remoting)java的远程web调用框架
DTD
Document type Definition(文档类型定义),它为一个XML文档或者文档集合建立一套规则。它本身不是独立的技术规范,而是属于规范的一部分,XML文档中的文档类型声明既可以是标记约束,也可以是带有标记约束的外部文档。这两种约束的总和就是DTD。它规定了XML文档的构建方式。
PI
Processing Instruction(处理指令),XML中指示应用程序执行一些特定的任务。其格式是 target instruction?>,它只能是解析器可以识别的XML标准处理指令集中一部分。有时它也被应用程序用来传达信息,这些信息可用来帮助进行解析,在这种情况下,应用程序中要有可以作为处理指令执行对象的关键字。
XML
Extentsible Markup Language(可扩展标记语言)的缩写,是用来定义其它语言的一种元语言,其前身是SGML(标准通用标记语言)。它没有标签集(tag set),也没有语法规则(grammatical rule),但是它有句法规则(syntax rule)。任何XML 文档对任何类型的应用以及正确的解析都必须是良构的(well-formed),即每一个打开的标签都必须有匹配的结束标签,不得含有次序颠倒的标签,并且在语句构成上应符合技术规范的要求。XML文档可以是有效的(valid),但并非一定要求有效。所谓有效文档是指其符合其文档类型定义(DTD)的文档。如果一个文档符合一个模式(schema)的规定,那么这个文档是“模式有效的(schema valid)”。
JCP
Java Community Process(Java社区过程),负责Java技术发展与审核技术规格的开放组织,JCP对提出的请求投票表决,JCP的专家组成员一般都是业界比较有影响力的企业或者组织。
开放封闭法则
软件实体应该是可扩展的,但是不可修改的(Software Entities Should Be Open For Extension,Yet Closed For Modification),简称OCP,这个法则是OO中最重要的一条法则,其含义是我们应该能够不用修改软件实体的源代码,就能更改软件实体的行为,符合该法则便意味着最高等级的复用性(reusability)和可维护性(maintainability)。
WFC
Windows Foundation Classes for Java 的英文缩写,他提供了Java 软件包的架构,他支持面向Windows 操作系统和Dynamic HTML对象模型的组件。
JNode
JNode 是个特殊的 JVM,可以在没有其他 OS 的?机上运行 Java 程序。
AAA
认证(Authentication):验证用户的身份与可使用的网络服务;授权(Authorization):依据认证结果开放网络服务给用户;计帐(Accounting):记录用户对各种网络服务的用量,并提供给计费系统。简称AAA系统。
RADIUS
Remote Authentication Dial In User Service广泛应用于宽带窄带认证系统的协议,前端一般为PPPoE或者802.1x。
BMP
Bean-Managed Persistent(Bean管理的持久性),EJB中由Bean自己负责持久性管理的方法,Bean的内容的同步(保存)需要自己编写代码实现。
CMP
Container-Managed Persistent(容器管理的持久性),EJB中由容器负责entity beans的持久性管理的方法,即容器负责将entity beans的更新同步(保存)到数据库。
JTA
Java Transaction API(Java事务API),Java中进行事务划分的技术。
WORA
Write Once, Run Anywhere(一次编写,到处运行),Java的宣传口号,在一定程度上可以达到,对于复杂应用在不同平台上可能需要进行调试。
EJB
Enterprise JavaBeans,Java中用于开发企业级应用的技术标准,他定义了一个用于开发和发布可重用的服务器端组件的模型,包括 Session beans,Entity beans以及Message-driven beans三种。
IDL
Interface Definition Language(接口定义语言),CORBA的一个关键特性,是一个语言中立的接口定义语言,每个支持CORBA的语言都会有一个自己的IDL映射。
AWT
Abstract Window Toolkit(抽象窗口工具包),第一代的Java GUI工具包,现在基本已经不使用其中的组件,已经被Swing 取代,但是Swing是扩展AWT而来。AWT中还包含很多现在GUI编程还在频繁使用的内容,例如事件处理及监听、布局管理器等。AWT也是JFC的一部分。
CORBA
Common Object Request Broker Architecture(公用对象请求代理[调度]程序体系结构),是一组用来定义“分布式对象系统”的标准,由OMG(Object Menagement Group)作为发起和标准制定单位。CORBA的目的是定义一套协议,符合这个协议的对象可以互相交互,不论它们是用什么样的语言写的,不论它们运行于什么样的机器和操作系统。
IIOP
Internet Inter-ORB Protocol(互联网内部对象请求代理协议),Java中使得程序可以和其他语言的CORBA实现实现互操作性的协议。
SPI
Service Provider Interface(服务提供商接口),满足某种服务标准的供应商提供的符合该标准的应用程序接口,SPI应该和该服务的API标准是兼容的,应用程序一般应该是基于API编写,除非是SPI中包含API中没有提供的功能而又必须使用。
API
Application Programming Interface(应用编程接口),语言、框架以及类库对外提供的编码的接口。
RMI
Remote Method Invocation(远程方法调用),Java中进行分布式编程的基础技术,EJB技术也是基于RMI的。
JSF
Java Server Faces,新一代的Java Web应用技术标准,吸收了很多Servlet、JSP以及其他的Web应用框架的特性。JSF为Web应用开发定义了一个事件驱动的、基于组件的模型。
DI
Dependency Injection(依赖注入),即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中。依赖注入的目标并非为软件系统带来更多的功能,而是为了提升组件重用的概率,并为系统搭建一个灵活、可扩展的平台。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不用关心具体的资源来自何处、由谁实现。(以上同样摘自夏昕的Spring开发指南)。DI和 IoC是同义词。
IoC
Inversion of Control(控制反转),由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控,控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。(以上摘自夏昕的Spring开发指南)
L10N
localization(本地化),和I18N类似,取首尾字母,中间省略10个字母。
I18N
internationalization(国际化),这个单词的长度是20,然后取其首尾字母,中间省略的字母刚好18个。
AOP
Aspect Oriented Programming(面向切面编程),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。
MVC
Model View Controller的缩写,为了获得更好的系统结构而推出的一种宏观的设计模式,model代表系统的模型层,view是模型的展现层,controller负责业务的流转,使用MVC可以使得系统的层次清晰,降低各个部分的耦合。
JNI
java本地编程接口。是 Java Native Interface 的英文缩写。他能够使java代码与用其他编程语言编写的应用程序和库进行互操作。(其他编程语言大多是c,c++和汇编语言。)
JDBC
Java DataBase Connectivity(Java数据库连接),用于访问关系型数据库的Java技术,仅仅是一种技术标准,访问不同的关系型数据库需要相应的JDBC规范的实现包。
JSP
Java Server Pages(Java服务器端页面),J2EE标准中用于创建动态页面内容的技术标准,基于Servlet技术,需要支持该标准的服务器才能运行,最常用的JSP服务器之一就是Tomcat。
JFC
Java Foundation Classes(JAVA基础类),集合了GUI组件以及其他能简化开发和展开桌面和Internet/Intranet应用的服务,其核心就是Swing。
JVM
Java Virtual Machine(Java虚拟机),它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。
JRE
Java Runtime Environment(Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
JSDK
Java Software Development Kit,和JDK以及J2SE等同。
JDK
Java Development Kit(Java开发工具包):包括运行环境、编译工具及其它工具、源代码等,基本上和J2SE等同。
J2ME
Java 2 Micro Edition(JAVA2精简版)API规格基于J2SE,但是被修改为可以适合某种产品的单一要求。J2ME使JAVA 程序可以很方便的应用于电话卡、寻呼机等小型设备,它包括两种类型的组件,即配置(configuration)和描述(profile)。
J2EE
Java 2 Enterprise Edition(JAVA2企业版),使用Java进行企业开发的一套扩展标准,必须基于J2SE,提供一个基于组件设计、开发、集合、展开企业应用的途径。J2EE平台提供了多层、分布式的应用模型,重新利用组件的能力,统一安全的模式以及灵活的处理控制能力。J2EE包括EJB, JTA, JDBC, JCA, JMX, JNDI, JMS, JavaMail, Servlet, JSP等规范。
J2SE
Java 2 Standard Edition(JAVA2标准版),用来开发Java程序的基础,包括编译器、小工具、运行环境,SUN发布的标准版本中还包括核心类库的所有源代码。
SableVM
SableVM是用C语言写的非常简便的JAVA虚拟机网站
【java基础习题】推荐阅读:
机械基础习题解答06-12
营养学基础习题09-20
04管理学基础习题07-03
计算机应用基础习题09-06
会计基础第二章习题11-04
理财基础知识练习题06-11
导游基础17章练习题06-30
会计基础的选择练习题07-10
三维设计基础练习题07-16
机械设计基础课后习题09-20