ja

阅读 / 问答 / 标签

javascript中如何判断一个函数是async函数

Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针,改以引用取代,同时移除原C++与原来运算符重载,也移除多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。太阳微系统对Java语言的解释是:“Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言”Java不同于一般的编译语言或直译语言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的运行速度有了大幅提升。与传统类型不同,Sun公司在推出Java时就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司后来推出了与之竞争的.NET平台以及模仿Java的C#语言。后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。现时,移动操作系统Android大部分的代码采用Java 编程语言编程。早期的JavaJava的发明人詹姆斯·高斯林Duke,Java语言的吉祥物语言最开始只是Sun计算机(Sun MicroSystems)公司在1990年12月开始研究的一个内部项目。Sun计算机公司的一个叫做帕特里克·诺顿的工程师被公司自己开发的C++和C语言编译器搞得焦头烂额,因为其中的API极其难用。帕特里克决定改用NeXT,同时他也获得了研究公司的一个叫做“Stealth计划”的项目的机会。“Stealth计划”后来改名为“Green计划”,詹姆斯·高斯林和麦克·舍林丹也加入了帕特里克的工作小组。他们和其他几个工程师一起在加利福尼亚州门罗帕克市沙丘路的一个小工作室里面研究开发新技术,瞄准下一代智能家电(如微波炉)的程序设计,Sun公司预料未来科技将在家用电器领域大显身手。团队最初考虑使用C++语言,但是很多成员包括Sun的首席科学家比尔·乔伊,发现C++和可用的API在某些方面存在很大问题。工作小组使用的是嵌入式系统,可以用的资源极其有限。很多成员发现C++太复杂以至很多开发者经常错误使用。他们发现C++缺少垃圾回收系统,还有可移植的安全性、分布程序设计、和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。根据可用的资金,乔伊决定开发一种集C语言和Mesa语言大成的新语言,在一份报告上,乔伊把它叫做“未来”,他提议Sun公司的工程师应该在C++的基础上,开发一种面向对象的环境。最初,高斯林试图修改和扩展C++的功能,他自己称这种新语言为C++ ++ --,但是后来他放弃了。他将要创造出一种全新的语言,被他命名为“Oak”(橡树),以他的办公室外的橡树命名。就像很多开发新技术的秘密工程一样,工作小组没日没夜地工作到了1993年的夏天,他们能够演示新平台的一部分了,包括Green操作系统,Oak的程序设计语言,类库及其硬件。最初的尝试是面向一种类PDA设备,被命名为Star7,这种设备有鲜艳的图形界面和被称为“Duke”的智能代理来帮助用户。1992年12月3日,这台设备进行了展示。同年11月,Green计划被转化成了“FirstPerson有限公司”,一个Sun公司的全资子公司,团队也被重新安排到了帕洛阿尔托。FirstPerson团队对建造一种高度交互的设备感兴趣,当时代华纳发布了一个关于电视机顶盒的征求提议书时(Request for proposal),FirstPerson改变了他们的目标,作为对征求意见书的响应,提出了一个机顶盒平台的提议。但是有线电视业界觉得FirstPerson的平台给予用户过多的控制权,因此FirstPerson的投标败给了SGI。与3DO公司的另外一笔关于机顶盒的交易也没有成功,由于他们的平台不能在电视工业产生任何效益,公司被并回Sun公司。Java和互联网1994年6月,在经历了一场历时三天的脑力激荡的讨论后,约翰·盖吉、詹姆斯·高斯林、比尔·乔伊、帕特里克·诺顿、韦恩·罗斯因和埃里克·斯库米,团队决定再一次改变了努力的目标,这次他们决定将该技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型,帕特里克·诺顿写了一个小型万维网浏览器,WebRunner,后来改名为HotJava[12]。1994年10月,HotJava和Java平台为公司高层进行演示。1994年,Java 1.0a版本已经可以提供下载,但是Java和HotJava浏览器的第一次公开发布却是在1995年3月23日SunWorld大会上进行的。升阳公司的科学指导约翰·盖吉宣告Java技术。这个发布是与网景公司的执行副总裁马克·安德森的惊人发布一起进行的,宣布网景将在其浏览器中包含对Java的支持。1996年1月,升阳公司成立了Java业务集团,专门开发Java技术。Java和“Java”由于商标搜索显示,Oak已被一家显示卡制造商注册。于是同年,Oak被改名为Java。当使用十六进制编辑器打开由Java源代码编译出的二进制文件(.class文件)的话,最前面的32位将显示为CA FE BA BE,即词组“CAFE BABE”(咖啡屋宝贝)。Java近况一套Java编辑器软件J2SE环境与CDC的关连JVM的所在角色JSPX网页的概念在流行几年之后,Java在浏览器中的地位被逐步侵蚀。它在简单交互性动画方面的用途已经完全被Adobe公司的Flash排挤,2005年Java倾向只被用于雅虎游戏那样的更为复杂的应用程序。Java同时遭受到来自微软的反对,他们决定在新版本的Internet Explorer和Windows中不再附带Java平台。与此相反。在万维网的服务器端和手持设备上,Java变得更加流行。很多网站在后端使用JSP和其他的Java技术。在桌面系统上,独立的Java程序还是相对少见,这是因为Java平台的运行开销较大,而许多人的电脑上没有安装Java,由于网络带宽在以前较小,下载Java曾经是个耗时的事情。但是随着计算机计算能力、网络带宽在10年中获取了很大的进步,同时虚拟机和编译器的质量得到了提高,许多应用程序得到了广泛的使用,包括:开源软件:NetBeans和Eclipse等软件开发工具Android操作系统JEditAzureus BitTorrent客户端。JNode操作系统Apache软件基金会的Ant、Derby、Hadoop、Jakarta、POI和TomcatJBoss和GlassFish应用服务器商业软件:EIOffice(永中Office)Minecraft纯Java 3D游戏合金战士ChromeIBM Websphere、ColdFusion和WebLogicIntelliJ IDEA还有许多用Java写的软件,可以在http://www.java.com 找到。在以下网页可以看到非常多用Java写的程序:http://java.sun.com/products/ 下面有大量用Java Swing开发的桌面Java程序 http://java.sun.com/products/jfc/tsc/sightings/ 目前Java提供以下三个版本:Java Platform, Enterprise Edition(Java EE:Java平台企业版)Java Platform, Standard Edition(Java SE:Java平台标准版)Java Platform, Micro Edition(Java ME:Java平台微型版)Java Platform, Card EditionJava开放源代码项目2006年SUN在JavaOne公布Java 开放源代码项目,并推出OpenJDK项目。[13]Java虚拟机、Java编译器和Java类库以GNU通用公共许可证公开。版本历史主条目:Java版本历史1995年5月23日,Java语言诞生1996年1月,第一个JDK-JDK1.0诞生1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术1996年9月,约8.3万个网页应用了JAVA技术来制作1997年2月18日,JDK1.1发布1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录1997年9月,JavaDeveloperConnection社区成员超过十万1998年2月,JDK1.1被下载超过2,000,000次1998年12月8日,JAVA2企业平台J2EE发布1999年6月,SUN公司发布Java的三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME)2000年5月8日,JDK1.3发布2000年5月29日,JDK1.4发布2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机2001年9月24日,J2EE1.3发布2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.02005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME2006年12月,SUN公司发布JRE6.02009年12月,SUN公司发布Java EE 62010年11月,由于Oracle公司对于Java社区的不友善,因此Apache扬言将退出JCP[14]2011年7月28日,Oracle公司发布Java SE 72014年3月18日,Oracle公司发表Java SE 8语言特性Java之所以被开发,是要达到以下五个目的:应当使用面向对象程序设计方法学应当允许同一程序在不同的计算机平台执行应当包括内建的对计算机网络的支持应当被设计成安全地执行远端代码应当易于使用,并借鉴以前那些面向对象语言(如C++)的长处。Java技术主要分成几个部分:Java语言、Java运行环境、类库。一般情况下说Java时并不区分指的是哪个部分。Java在1.5版本时,做了重大改变,Sun公司并1.5版本重命名为Java 5.0。面向对象Java的特点之一就是面向对象,是程序设计方法的一种。“面向对象程序设计语言”的核心之一就是开发者在设计软件的时候可以使用自定义的类型和关联操作。代码和数据的实际集合体叫做“对象”。一个对象可以想象成绑定了很多“行为(代码)”和“状态(数据)”的物体。对于数据结构的改变需要和代码进行通信然后操作,反之亦然。面向对象设计让大型软件工程的计划和设计变得更容易管理,能增强工程的健康度,减少失败工程的数量。跨平台性Java语言的第二个特性就是跨平台性,也就是说使用Java语言编写的程序可以在编译后不用经过任何更改,就能在任何硬件设备条件下运行。这个特性经常被称为“一次编译,到处运行”。执行Java应用程序必须安装爪哇运行环境(Java Runtime Environment,JRE),JRE内部有一个Java虚拟机(Java Virtual Machine,JVM)以及一些标准的类库(Class Library)。通过JVM才能在电脑系统执行Java应用程序(Java Application),这与.Net Framework的情况一样,所以电脑上没有安装JVM,那么这些程序将不能够执行。实现跨平台性的方法是大多数编译器在进行Java语言程序的编码时候会生成一个用字节码写成的“半成品”,这个“半成品”会在Java虚拟机(解释层)的帮助下运行,虚拟机会把它转换成当前所处硬件平台的原始代码。之后,Java虚拟机会打开标准库,进行数据(图片、线程和网络)的访问工作。主要注意的是,尽管已经存在一个进行代码翻译的解释层,有些时候Java的字节码代码还是会被JIT编译器进行二次编译。有些编译器,比如GCJ,可以自动生成原始代码而不需要解释层。但是这些编译器所生成的代码只能应用于特定平台。并且GCJ目前只支持部分的Java API。甲骨文公司对于Java的许可是“全兼容的”,这也导致了微软和升阳关于微软的程序不支持RMI和JNI接口、并且增加特性为己所用的法律争端。升阳最终赢得了官司,获得了大约两千万美元的赔偿,法院强制要求微软执行升阳公司关于Java的许可要求。作为回应,微软不再在Windows系统中捆绑Java,最新的Windows版本,Windows Vista和Internet Explorer 7.0版本也不再提供对于Java应用程序和控件的支持。但是升阳公司和其他使用Java运行时系统的公司在Windows操作系统下对用户提供无偿的第三方插件和程序支持。Java语言使用解释层最初是为了轻巧性。所以这些程序的运行效率比C语言和C++要低很多,用户也对此颇有微词。很多最近的调查显示Java的程序运行速度比几年前要高出许多,有些同样功能的程序的效率甚至超过了C++和C语言编写的程序[来源请求]。Java语言在最开始应用的时候是没有解释层的,所有需要编译的代码都直接转换成机器的原始代码。这样做的后果就是获得了最佳的性能,但是程序臃肿异常。从JIT技术开始,Java的程序都经过一次转换之后才变成机器码。很多老牌的第三方虚拟机都使用一种叫做“动态编译”的技术,也就是说虚拟机实时监测和分析程序的运行行为,同时选择性地对程序所需要的部分进行编译和优化。所有这些技术都改善了代码的运行速度,但是又不会让程序的体积变得失常。程序的轻便性事实上是软件编写很难达到的一个目标,Java虽然成功地实现了“一次编译,到处运行”,但是由于平台和平台之间的差异,所编写的程序在转换代码的时候难免会出现微小的、不可察觉的错误和意外。有些程序员对此非常头疼,他们嘲笑Java的程序不是“一次编译,到处运行”,而是“一次编译,到处调试”。以JavaAWT为例,早期Java AWT内提供的按钮、文字区等均是以计算机系统所默认的样式而显示。这令Java程序在有些没有提供图案的计算机系统产生错误(在Microsoft Windows设有窗口管理器,在一些Linux distribution则没有)。后来SUN公司针对Java AWT一些问题而推出Java Swing。平台无关性让Java在服务器端软件领域非常成功。很多服务器端软件都使用Java或相关技术建立。自动垃圾回收(Garbage Collection)C++语言被用户诟病的原因之一是大多数C++编译器不支持垃圾收集机制。通常使用C++编程的时候,程序员于程序中初始化对象时,会在主机内存堆栈上分配一块内存与地址,当不需要此对象时,进行析构或者删除的时候再释放分配的内存地址。如果对象是在堆栈上分配的,而程序员又忘记进行删除,那么就会造成内存泄漏(MemoryLeak)。长此以往,程序运行的时候可能会生成很多不清除的垃圾,浪费了不必要的内存空间。而且如果同一内存地址被删除两次的话,程序会变得不稳定,甚至崩溃。因此有经验的C++程序员都会在删除之后将指针重置为NULL,然后在删除之前先判断指针是否为NULL。C++中也可以使用“智能指针”(Smart Pointer)或者使用C++托管扩展编译器的方法来实现自动化内存释放,智能指针可以在标准类库中找到,而C++(题主你怎么可以问这么沙比的问题!)托管扩展被微软的VisualC++ 7.0及以上版本所支持。智能指针的优点是不需引入缓慢的垃圾收集机制,而且可以不考虑线程安全的问题,但是缺点是如果不善使用智能指针的话,性能有可能不如垃圾收集机制,而且不断地分配和释放内存可能造成内存碎片,需要手动对堆进行压缩。除此之外,由于智能指针是一个基于模板的功能,所以没有经验的程序员在需要使用多态特性进行自动清理时也可能束手无策。Java语言则不同,上述的情况被自动垃圾收集功能自动处理。对象的创建和放置都是在内存堆栈上面进行的。当一个对象没有任何引用的时候,Java的自动垃圾收集机制就发挥作用,自动删除这个对象所占用的空间,释放内存以避免内存泄漏。注意程序员不需要修改finalize方法,自动垃圾收集也会发生作用。但是内存泄漏并不是就此避免了,当程序员疏忽大意地忘记解除一个对象不应该有的引用时,内存泄漏仍然不可避免。不同厂商、不同版本的JVM中的内存垃圾回收机制并不完全一样,通常越新版本的内存回收机制越快,IBM、BEA、SUN等等开发JVM的公司都曾宣称过自己制造出了世界上最快的JVM[来源请求],JVM性能的世界纪录也在不断的被打破并提高。IBM有一篇有关Java内存回收机制比不激活垃圾收集机制的C++内存处理快数倍的技术文章[15],而著名的Java技术书籍《Java编程思想》(Thinking in Java)也有一段论述Java内存及性能达到甚至超过C++的章节[16]。基本语法编写Java程序前应注意以下几点:大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如MyFirstJavaClass。方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写,例如myFirstJavaMethod。源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。主方法入口:所有的Java程序由public static void main(String[] args)方法开始执行。Java关键字关键字 下面列出了Java关键字。这些关键字不能用于常量、变量、和任何标识符的名称。关键字 描述 abstract 抽象方法,抽象类的修饰符 assert 断言条件是否满足 continue 不执行循环体剩余部分 default switch语句中的默认分支 do-while 循环语句,循环体至少会执行一次 double 64-bit双精度浮点数 else if条件不成立时执行的分支 enum 枚举类型 extends 表示一个类是另一个类的子类 final 表示定义常量 finally 无论有没有异常发生都执行代码 float 32-bit单精度浮点数 for for循环语句 goto 用于流程跳转(不可用,意即不可随意跳转) if 条件语句 implements 表示一个类实现了接口 import 导入类 instanceof 测试一个对象是否是某个类的实例 int 32位整型数 interface 接口,一种抽象的类型,仅有方法和常量的定义 long 64位整型数 native 表示方法用非java代码实现 new 分配新的类实例 package 一系列相关类组成一个包 private 表示私有字段,或者方法等,只能从类内部访问 protected 表示保护类型字段 public 表示共有属性或者方法 return 方法返回值 short 16位数字 static 表示在类级别定义,所有实例共享的 strictfp 浮点数比较使用严格的规则 super 表示基类 switch 选择语句 synchronized 表示同一时间只能由一个线程访问的代码块 this 调用当前实例或者调用另一个构造函数 throw 抛出异常 throws 定义方法可能抛出的异常 transient 修饰不要序列化的字段 try 表示代码块要做异常处理 void 标记方法不返回任何值 volatile 标记字段可能会被多个线程同时访问,而不做同步 while while循环 注释注释作用:标识程序是干什么的,以及它是如何构建的。注释帮助程序员进行相互沟通以及理解程序。注释不是程序设计语言,所以编译器编译程序时忽略它们。接口和类别Java自带了创建接口的类别,可以这样使用:public interface Deleteable {void delete();}这段代码的意思是任何实现(implement)Deleteable接口的类别都必须实现delete()方法。每个类别对这个方法的实现可以自行定制。由此概念可以引出很多种使用方法,下面是一个类别的例子:

java年月相减得出哪几个月份

上具体代码。

java 的关键字有哪些

转的Abstract 抽象的 一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的,但是可以被其它类继承。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现 break 一个Java的关键字,用来改变程序执行流程,立刻从当前语句的下一句开始执行从。如果后面跟有一个标签,则从标签对应的地方开始执行 case Java语言的关键字,用来定义一组分支选择,如果某个值和switch中给出的值一样,就会从该分支开始执行。 catch Java的一个关键字,用来声明当try语句块中发生运行时错误或非运行时异常时运行的一个块。 char Java语言的一个关键字,用来定义一个字符类型 continue 一个Java的关键字,用来打断当前循环过程,从当前循环的最后重新开始执行,如果后面跟有一个标签,则从标签对应的地方开始执行。 do 一个Java语言的关键字,用来声明一个循环,这个循环的结束条件可以通过while关键字设置 double 一个Java语言的关键字,用来定义一个double类型的变量 else 一个Java语言的关键字,如果if语句的条件不满足就会执行该语句。 final 一个Java语言的关键字。你只能定义一个实体一次,以后不能改变它或继承它。更严格的讲:一个final修饰的类不能被子类化,一个final修饰的方法不能被重写,一个final修饰的变量不能改变其初始值。 finally 一个Java语言的关键字,用来执行一段代码不管在前面定义的try语句中是否有异常或运行时错误发生。 float 一个Java语言的关键字,用来定义一个浮点数变量 for 一个Java语言的关键字,用来声明一个循环。程序员可以指定要循环的语句,推出条件和初始化变量。 if Java编程语言的一个关键字,用来生成一个条件测试,如果条件为真,就执行if下的语句。 implements Java(TM)编程语言的一个关键字,在类的声明中是可选的,用来指明当前类实现的接口。 import Java(TM)编程语言的一个关键字,在源文件的开始部分指明后面将要引用的一个类或整个包,这样就不必在使用的时候加上包的名字。 instanceof 一个二操作数的Java(TM)语言关键字,用来测试第一个参数的运行时类型是否和第二个参数兼容。 int Java(TM)的一个关键字,用来定义一个整形变量 Java(TM)的一个关键字,用来定义一系列的方法和常量。它可以被类实现,通过implements关键字。 long Java语言的一个关键字,用来定义一个long类型的变量。 private Java语言的一个关键字,用在方法或变量的声中。它表示这个方法或变量只能被这个类的其它元素所访问。 protected Java语言的一个关键字,在方法和变量的声明中使用,它表示这个方法或变量只能被同一个类中的,子类中的或者同一个包中的类中的元素所访问。 public Java语言的一个关键字,在方法和变量的声明中使用,它表示这个方法或变量能够被其它类中的元素访问。 return Java语言的一个关键字,用来结束一个方法的执行。它后面可以跟一个方法声明中要求的值。 short Java语言的关键字,用来定义一个short类型的变量。 static Java语言的关键字,用来定义一个变量为类变量。类只维护一个类变量的拷贝,不管该类当前有多少个实例。"static" 同样能够用来定义一个方法为类方法。类方法通过类名调用而不是特定的实例,并且只能操作类变量。 this Java语言的关键字,用来代表它出现的类的一个实例。this可以用来访问类变量和类方法。 throw Java语言的关键字,允许用户抛出一个exception对象或者任何实现throwable的对象 throws Java语言的关键字,用在方法的声明中来说明哪些异常这个方法是不处理的,而是提交到程序的更高一层。 transient Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。 try Java语言的关键字,用来定义一个可能抛出异常语句块。如果一个异常被抛出,一个可选的catch语句块会处理try语句块中抛出的异常。同时,一个finally语句块会被执行,无论一个异常是否被抛出。 void Java语言的关键字,用在Java语言的方法声明中说明这个方法没有任何返回值。"void"也可以用来表示一句没有任何功能的语句。 volatile Java语言的关键字,用在变量的声明中表示这个变量是被同时运行的几个线程异步修改的。 while Java语言的一个关键字,用来定义一段反复执行的循环语句。循环的退出条件是while语句的一部分。 关于break和continuecontinue语句与break语句相关,但较少用到。continue语句用于使其所在的for、while或do-while语句开始下一次循环。在while与do-while语句中,continue语句的执行意味着立即执行测试部分;在for循环语句中,continue语句的执行则意味着使控制传递到增量部分。

java 中的语法到底指的什么?

java中的语法是指java中的规则,即java的命名规则:包的命名  (全部小写,由域名定义)Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都 可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。 由于互联网上的域名称是不会重复的,所以程序员一般采用自己在互联网上的域名称作为自己程序包的唯一前缀。例如:net.frontfree.javagroup 类的命名 (单词首字母大写)根据约定,Java类名通常以大写字母开头,如果类名称由多个单词组成,则每个单词的首字母均应为大 写例如TestPage;如果类名称中包含单词缩写,则这个所写词的每个字母均应大写,如:XMLExample,还有一点命名技巧就是由于类是设计用来 代表对象的,所以在命名类时应尽量选择名词。例如: Graphics 方法的命名 (首字母小写,字母开头大写)方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头。 例如:drawImage 常量的命名 (全部大写 ,常加下划线) 常量的名字应该都使用大写字母,并且指出该常量完整含义。如果一个常量名称由多个单词组成,则应该用下划线来分割这些单词。 例如:MAX_VALUE 参数的命名参数的命名规范和方法的命名规范相同,而且为了避免阅读程序时造成迷惑,请在尽量保证参数名称为一个单词的情况下使参数的命名尽可能明确。知识扩展: 在变量命名时要注意以下几点: 1.选择有意义的名字,注意每个单词首字母要大写。 2.在一段函数中不使用同一个变量表示前后意义不同的两个数值。 3.i、j、k等只作为小型循环的循环索引变量。 4.避免用Flag来命名状态变量。 5.用Is来命名逻辑变量,如:blnFileIsFound。通过这种给布尔变量肯定形式的命名方式,使得其它开发人员能够更为清楚的理解布尔变量所代表的意义。 6.如果需要的话,在变量最后附加计算限定词,如:curSalesSum。 7.命名不相包含,curSales和curSalesSum。 8.static final 变量(常量)的名字应该都大写,并且指出完整含义。 9.如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如, 如果在代码的某些区域中使用intCnt,而在另一些区域中又使用intCount,就会给代码增加不必要的复杂性。建议变量名中尽量不要出现缩写。 10.通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用 strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。常 用的量词后缀有:First(一组变量中的第一个)、Last(一组变量中的最后一个)、Next(一组变量中的下一个变量)、Prev(一组变量中的上 一个)、Cur(一组变量中的当前变量)。 11.每个变量选择最佳的数据类型,这样即能减少对内存的需求量,加快代码的执行速度,又会降低出错的可能性。用于变量的数据类型可能会影响该变量进行计算所产生的结果。在这种情况下,编译器不会产生运行期错误,它只是迫使该值符合数据类型的要求。这类问题极难查找。 12.尽量缩小变量的作用域。如果变量的作用域大于它应有的范围,变量可继续存在,并且在不再需要该变量后的很长时间内仍然占用资源。它们的主要问题是,任何类 中的任何方法都能对它们进行修改,并且很难跟踪究竟是何处进行修改的。占用资源是作用域涉及的一个重要问题。对变量来说,尽量缩小作用域将会对应用程序的 可靠性产生巨大的影响。 关于常量的命名方法,在JAVA代码中,无论什么时候,均提倡应用常量取代数字、固定字符串。也就是 说,程序中除0,1以外,尽量不应该出现其他数字。常量可以集中在程序开始部分定义或者更宽的作用域内,名字应该都使用大写字母,并且指出该常量完整含 义。如果一个常量名称由多个单词组成,则应该用下划线“_”来分割这些单词如:NUM_DAYS_IN_WEEK、MAX_VALUE。

java全部关键字及其每个用法解释

Abstract 抽象的 一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的,但是可以被其它类继承。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现 break 一个Java的关键字,用来改变程序执行流程,立刻从当前语句的下一句开始执行从。如果后面跟有一个标签,则从标签对应的地方开始执行 case Java语言的关键字,用来定义一组分支选择,如果某个值和switch中给出的值一样,就会从该分支开始执行。 catch Java的一个关键字,用来声明当try语句块中发生运行时错误或非运行时异常时运行的一个块。 char Java语言的一个关键字,用来定义一个字符类型 continue 一个Java的关键字,用来打断当前循环过程,从当前循环的最后重新开始执行,如果后面跟有一个标签,则从标签对应的地方开始执行。 do 一个Java语言的关键字,用来声明一个循环,这个循环的结束条件可以通过while关键字设置 double 一个Java语言的关键字,用来定义一个double类型的变量 else 一个Java语言的关键字,如果if语句的条件不满足就会执行该语句。 final 一个Java语言的关键字。你只能定义一个实体一次,以后不能改变它或继承它。更严格的讲:一个final修饰的类不能被子类化,一个final修饰的方法不能被重写,一个final修饰的变量不能改变其初始值。 finally 一个Java语言的关键字,用来执行一段代码不管在前面定义的try语句中是否有异常或运行时错误发生。 float 一个Java语言的关键字,用来定义一个浮点数变量 for 一个Java语言的关键字,用来声明一个循环。程序员可以指定要循环的语句,推出条件和初始化变量。 if Java编程语言的一个关键字,用来生成一个条件测试,如果条件为真,就执行if下的语句。 implements Java(TM)编程语言的一个关键字,在类的声明中是可选的,用来指明当前类实现的接口。 import Java(TM)编程语言的一个关键字,在源文件的开始部分指明后面将要引用的一个类或整个包,这样就不必在使用的时候加上包的名字。 instanceof 一个二操作数的Java(TM)语言关键字,用来测试第一个参数的运行时类型是否和第二个参数兼容。 int Java(TM)的一个关键字,用来定义一个整形变量 Java(TM)的一个关键字,用来定义一系列的方法和常量。它可以被类实现,通过implements关键字。 long Java语言的一个关键字,用来定义一个long类型的变量。 private Java语言的一个关键字,用在方法或变量的声中。它表示这个方法或变量只能被这个类的其它元素所访问。 protected Java语言的一个关键字,在方法和变量的声明中使用,它表示这个方法或变量只能被同一个类中的,子类中的或者同一个包中的类中的元素所访问。 public Java语言的一个关键字,在方法和变量的声明中使用,它表示这个方法或变量能够被其它类中的元素访问。 return Java语言的一个关键字,用来结束一个方法的执行。它后面可以跟一个方法声明中要求的值。 short Java语言的关键字,用来定义一个short类型的变量。 static Java语言的关键字,用来定义一个变量为类变量。类只维护一个类变量的拷贝,不管该类当前有多少个实例。"static" 同样能够用来定义一个方法为类方法。类方法通过类名调用而不是特定的实例,并且只能操作类变量。 this Java语言的关键字,用来代表它出现的类的一个实例。this可以用来访问类变量和类方法。 throw Java语言的关键字,允许用户抛出一个exception对象或者任何实现throwable的对象 throws Java语言的关键字,用在方法的声明中来说明哪些异常这个方法是不处理的,而是提交到程序的更高一层。 transient Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。 try Java语言的关键字,用来定义一个可能抛出异常语句块。如果一个异常被抛出,一个可选的catch语句块会处理try语句块中抛出的异常。同时,一个finally语句块会被执行,无论一个异常是否被抛出。 void Java语言的关键字,用在Java语言的方法声明中说明这个方法没有任何返回值。"void"也可以用来表示一句没有任何功能的语句。 volatile Java语言的关键字,用在变量的声明中表示这个变量是被同时运行的几个线程异步修改的。 while Java语言的一个关键字,用来定义一段反复执行的循环语句。循环的退出条件是while语句的一部分。 关于break和continue。 continue语句与break语句相关,但较少用到。continue语句用于使其所在的for、while或do-while语句开始下一次循环。在while与do-while语句中,continue语句的执行意味着立即执行测试部分;在for循环语句中,continue语句的执行则意味着使控制传递到增量部分。

javastring怎么赋值

Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Java编程语言的风格十分接近C语言。继承了C语言面向对象技术的核心,Java舍弃了C语言中容易引起错误的指针,改以引用取代,同时移除原C与原来运算符重载,也移除多重继承特性,改用接口取代,增加垃圾回收器功能。在JavaSE1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。太阳微系统对Java语言的解释是:“Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言”Java不同于一般的编译语言或直译语言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的运行速度有了大幅提升。与传统类型不同,Sun公司在推出Java时就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司后来推出了与之竞争的.NET平台以及模仿Java的C语言。后来Sun公司被甲骨文公司并购,Java也随之成为甲骨文公司的产品。现时,移动操作系统Android大部分的代码采用Java编程语言编程。早期的JavaJava的发明人詹姆斯·高斯林Duke,Java语言的吉祥物语言最开始只是Sun计算机(Sun)公司在1990年12月开始研究的一个内部项目。Sun计算机公司的一个叫做帕特里克·诺顿的工程师被公司自己开发的C和C语言编译器搞得焦头烂额,因为其中的API极其难用。帕特里克决定改用NeXT,同时他也获得了研究公司的一个叫做“Stealth计划”的项目的机会。“Stealth计划”后来改名为“Green计划”,詹姆斯·高斯林和麦克·舍林丹也加入了帕特里克的工作小组。他们和其他几个工程师一起在加利福尼亚州门罗帕克市沙丘路的一个小工作室里面研究开发新技术,瞄准下一代智能家电(如微波炉)的程序设计,Sun公司预料未来科技将在家用电器领域大显身手。团队最初考虑使用C语言,但是很多成员包括Sun的首席科学家比尔·乔伊,发现C和可用的API在某些方面存在很大问题。工作小组使用的是嵌入式系统,可以用的资源极其有限。很多成员发现C太复杂以至很多开发者经常错误使用。他们发现C缺少垃圾回收系统,还有可移植的安全性、分布程序设计、和多线程功能。最后,他们想要一种易于移植到各种设备上的平台。根据可用的资金,乔伊决定开发一种集C语言和Mesa语言大成的新语言,在一份报告上,乔伊把它叫做“未来”,他提议Sun公司的工程师应该在C的基础上,开发一种面向对象的环境。最初,高斯林试图修改和扩展C的功能,他自己称这种新语言为C--,但是后来他放弃了。他将要创造出一种全新的语言,被他命名为“Oak”(橡树),以他的办公室外的橡树命名。就像很多开发新技术的秘密工程一样,工作小组没日没夜地工作到了1993年的夏天,他们能够演示新平台的一部分了,包括Green操作系统,Oak的程序设计语言,类库及其硬件。最初的尝试是面向一种类PDA设备,被命名为Star7,这种设备有鲜艳的图形界面和被称为“Duke”的智能代理来帮助用户。1992年12月3日,这台设备进行了展示。同年11月,Green计划被转化成了“FirstPerson有限公司”,一个Sun公司的全资子公司,团队也被重新安排到了帕洛阿尔托。FirstPerson团队对建造一种高度交互的设备感兴趣,当时代华纳发布了一个关于电视机顶盒的征求提议书时(Requestforproposal),FirstPerson改变了他们的目标,作为对征求意见书的响应,提出了一个机顶盒平台的提议。但是有线电视业界觉得FirstPerson的平台给予用户过多的控制权,因此FirstPerson的投标败给了SGI。与3DO公司的另外一笔关于机顶盒的交易也没有成功,由于他们的平台不能在电视工业产生任何效益,公司被并回Sun公司。Java和互联网1994年6月,在经历了一场历时三天的脑力激荡的讨论后,约翰·盖吉、詹姆斯·高斯林、比尔·乔伊、帕特里克·诺顿、韦恩·罗斯因和埃里克·斯库米,团队决定再一次改变了努力的目标,这次他们决定将该技术应用于万维网。他们认为随着Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型,帕特里克·诺顿写了一个小型万维网浏览器,WebRunner,后来改名为HotJava[12]。1994年10月,HotJava和Java平台为公司高层进行演示。1994年,Java1.0a版本已经可以提供下载,但是Java和HotJava浏览器的第一次公开发布却是在1995年3月23日SunWorld大会上进行的。升阳公司的科学指导约翰·盖吉宣告Java技术。这个发布是与网景公司的执行副总裁马克·安德森的惊人发布一起进行的,宣布网景将在其浏览器中包含对Java的支持。1996年1月,升阳公司成立了Java业务集团,专门开发Java技术。Java和“Java”由于商标搜索显示,Oak已被一家显示卡制造商注册。于是同年,Oak被改名为Java。当使用十六进制编辑器打开由Java源代码编译出的二进制文件(.class文件)的话,最前面的32位将显示为CAFEBABE,即词组“CAFEBABE”(咖啡屋宝贝)。Java近况一套Java编辑器软件J2SE环境与CDC的关连JVM的所在角色JSPX网页的概念在流行几年之后,Java在浏览器中的地位被逐步侵蚀。它在简单交互性动画方面的用途已经完全被Adobe公司的Flash排挤,2005年Java倾向只被用于雅虎游戏那样的更为复杂的应用程序。Java同时遭受到来自微软的反对,他们决定在新版本的InternetExplorer和Windows中不再附带Java平台。与此相反。在万维网的服务器端和手持设备上,Java变得更加流行。很多网站在后端使用JSP和其他的Java技术。在桌面系统上,独立的Java程序还是相对少见,这是因为Java平台的运行开销较大,而许多人的电脑上没有安装Java,由于网络带宽在以前较小,下载Java曾经是个耗时的事情。但是随着计算机计算能力、网络带宽在10年中获取了很大的进步,同时虚拟机和编译器的质量得到了提高,许多应用程序得到了广泛的使用,包括:开源软件:NetBeans和Eclipse等软件开发工具Android操作系统JEditAzureusBitTorrent客户端。JNode操作系统Apache软件基金会的Ant、Derby、Hadoop、Jakarta、POI和TomcatJBoss和GlassFish应用服务器商业软件:EIOffice(永中Office)Minecraft纯Java3D游戏合金战士ChromeIBMWebsphere、ColdFusion和WebLogicIntelliJIDEA还有许多用Java写的软件,可以在www.java找到。在以下网页可以看到非常多用Java写的程序:java.sun/procts/下面有大量用JavaSwing开发的桌面Java程序java.sun/procts/jfc/tsc/sightings/目前Java提供以下三个版本:JavaPlatform,EnterpriseEdition(JavaEE:Java平台企业版)JavaPlatform,StandardEdition(JavaSE:Java平台标准版)JavaPlatform,MicroEdition(JavaME:Java平台微型版)JavaPlatform,CardEditionJava开放源代码项目2006年SUN在JavaOne公布Java开放源代码项目,并推出OpenJDK项目。[13]Java虚拟机、Java编译器和Java类库以GNU通用公共许可证公开。版本历史主条目:Java版本历史1995年5月23日,Java语言诞生1996年1月,第一个JDK-JDK1.0诞生1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术1996年9月,约8.3万个网页应用了JAVA技术来制作1997年2月18日,JDK1.1发布1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录1997年9月,社区成员超过十万1998年2月,JDK1.1被下载超过2,000,000次1998年12月8日,JAVA2企业平台J2EE发布1999年6月,SUN公司发布Java的三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME)2000年5月8日,JDK1.3发布2000年5月29日,JDK1.4发布2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机2001年9月24日,J2EE1.3发布2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为JavaSE5.02005年6月,JavaOne大会召开,SUN公司公开JavaSE6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME2006年12月,SUN公司发布JRE6.02009年12月,SUN公司发布JavaEE62010年11月,由于Oracle公司对于Java社区的不友善,因此Apache扬言将退出JCP[14]2011年7月28日,Oracle公司发布JavaSE72014年3月18日,Oracle公司发表JavaSE8语言特性Java之所以被开发,是要达到以下五个目的:应当使用面向对象程序设计方法学应当允许同一程序在不同的计算机平台执行应当包括内建的对计算机网络的支持应当被设计成安全地执行远端代码应当易于使用,并借鉴以前那些面向对象语言(如C)的长处。Java技术主要分成几个部分:Java语言、Java运行环境、类库。一般情况下说Java时并不区分指的是哪个部分。Java在1.5版本时,做了重大改变,Sun公司并1.5版本重命名为Java5.0。面向对象Java的特点之一就是面向对象,是程序设计方法的一种。“面向对象程序设计语言”的核心之一就是开发者在设计软件的时候可以使用自定义的类型和关联操作。代码和数据的实际集合体叫做“对象”。一个对象可以想象成绑定了很多“行为(代码)”和“状态(数据)”的物体。对于数据结构的改变需要和代码进行通信然后操作,反之亦然。面向对象设计让大型软件工程的计划和设计变得更容易管理,能增强工程的健康度,减少失败工程的数量。跨平台性Java语言的第二个特性就是跨平台性,也就是说使用Java语言编写的程序可以在编译后不用经过任何更改,就能在任何硬件设备条件下运行。这个特性经常被称为“一次编译,到处运行”。执行Java应用程序必须安装爪哇运行环境(JavaRuntimeEnvironment,JRE),JRE内部有一个Java虚拟机(JavaVirtualMachine,JVM)以及一些标准的类库(ClassLibrary)。通过JVM才能在电脑系统执行Java应用程序(JavaApplication),这与.NetFramework的情况一样,所以电脑上没有安装JVM,那么这些程序将不能够执行。实现跨平台性的方法是大多数编译器在进行Java语言程序的编码时候会生成一个用字节码写成的“半成品”,这个“半成品”会在Java虚拟机(解释层)的帮助下运行,虚拟机会把它转换成当前所处硬件平台的原始代码。之后,Java虚拟机会打开标准库,进行数据(图片、线程和网络)的访问工作。主要注意的是,尽管已经存在一个进行代码翻译的解释层,有些时候Java的字节码代码还是会被JIT编译器进行二次编译。有些编译器,比如GCJ,可以自动生成原始代码而不需要解释层。但是这些编译器所生成的代码只能应用于特定平台。并且GCJ目前只支持部分的JavaAPI。甲骨文公司对于Java的许可是“全兼容的”,这也导致了微软和升阳关于微软的程序不支持RMI和JNI接口、并且增加特性为己所用的法律争端。升阳最终赢得了官司,获得了大约两千万美元的赔偿,法院强制要求微软执行升阳公司关于Java的许可要求。作为回应,微软不再在Windows系统中捆绑Java,最新的Windows版本,WindowsVista和InternetExplorer7.0版本也不再提供对于Java应用程序和控件的支持。但是升阳公司和其他使用Java运行时系统的公司在Windows操作系统下对用户提供无偿的第三方插件和程序支持。Java语言使用解释层最初是为了轻巧性。所以这些程序的运行效率比C语言和C要低很多,用户也对此颇有微词。很多最近的调查显示Java的程序运行速度比几年前要高出许多,有些同样功能的程序的效率甚至超过了C和C语言编写的程序[来源请求]。Java语言在最开始应用的时候是没有解释层的,所有需要编译的代码都直接转换成机器的原始代码。这样做的后果就是获得了最佳的性能,但是程序臃肿异常。从JIT技术开始,Java的程序都经过一次转换之后才变成机器码。很多老牌的第三方虚拟机都使用一种叫做“动态编译”的技术,也就是说虚拟机实时监测和分析程序的运行行为,同时选择性地对程序所需要的部分进行编译和优化。所有这些技术都改善了代码的运行速度,但是又不会让程序的体积变得失常。程序的轻便性事实上是软件编写很难达到的一个目标,Java虽然成功地实现了“一次编译,到处运行”,但是由于平台和平台之间的差异,所编写的程序在转换代码的时候难免会出现微小的、不可察觉的错误和意外。有些程序员对此非常头疼,他们嘲笑Java的程序不是“一次编译,到处运行”,而是“一次编译,到处调试”。以JavaAWT为例,早期JavaAWT内提供的按钮、文字区等均是以计算机系统所默认的样式而显示。这令Java程序在有些没有提供图案的计算机系统产生错误(在MicrosoftWindows设有窗口管理器,在一些Linux则没有)。后来SUN公司针对JavaAWT一些问题而推出JavaSwing。平台无关性让Java在服务器端软件领域非常成功。很多服务器端软件都使用Java或相关技术建立。自动垃圾回收(GarbageCollection)C语言被用户诟病的原因之一是大多数C编译器不支持垃圾收集机制。通常使用C编程的时候,程序员于程序中初始化对象时,会在主机内存堆栈上分配一块内存与地址,当不需要此对象时,进行析构或者删除的时候再释放分配的内存地址。如果对象是在堆栈上分配的,而程序员又忘记进行删除,那么就会造成内存泄漏(MemoryLeak)。长此以往,程序运行的时候可能会生成很多不清除的垃圾,浪费了不必要的内存空间。而且如果同一内存地址被删除两次的话,程序会变得不稳定,甚至崩溃。因此有经验的C程序员都会在删除之后将指针重置为NULL,然后在删除之前先判断指针是否为NULL。C中也可以使用“智能指针”(SmartPointer)或者使用C托管扩展编译器的方法来实现自动化内存释放,智能指针可以在标准类库中找到,而C(题主你怎么可以问这么沙比的问题!)托管扩展被微软的VisualC7.0及以上版本所支持。智能指针的优点是不需引入缓慢的垃圾收集机制,而且可以不考虑线程安全的问题,但是缺点是如果不善使用智能指针的话,性能有可能不如垃圾收集机制,而且不断地分配和释放内存可能造成内存碎片,需要手动对堆进行压缩。除此之外,由于智能指针是一个基于模板的功能,所以没有经验的程序员在需要使用多态特性进行自动清理时也可能束手无策。Java语言则不同,上述的情况被自动垃圾收集功能自动处理。对象的创建和放置都是在内存堆栈上面进行的。当一个对象没有任何引用的时候,Java的自动垃圾收集机制就发挥作用,自动删除这个对象所占用的空间,释放内存以避免内存泄漏。注意程序员不需要修改finalize方法,自动垃圾收集也会发生作用。但是内存泄漏并不是就此避免了,当程序员疏忽大意地忘记解除一个对象不应该有的引用时,内存泄漏仍然不可避免。不同厂商、不同版本的JVM中的内存垃圾回收机制并不完全一样,通常越新版本的内存回收机制越快,IBM、BEA、SUN等等开发JVM的公司都曾宣称过自己制造出了世界上最快的JVM[来源请求],JVM性能的世界纪录也在不断的被打破并提高。IBM有一篇有关Java内存回收机制比不激活垃圾收集机制的C内存处理快数倍的技术文章[15],而著名的Java技术书籍《Java编程思想》(ThinkinginJava)也有一段论述Java内存及性能达到甚至超过C的章节[16]。基本语法编写Java程序前应注意以下几点:大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如。方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写,例如。源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。主方法入口:所有的Java程序由publicstaticvoidmain(String[]args)方法开始执行。Java关键字关键字下面列出了Java关键字。这些关键字不能用于常量、变量、和任何标识符的名称。关键字描述abstract抽象方法,抽象类的修饰符assert断言条件是否满足continue不执行循环体剩余部分defaultswitch语句中的默认分支do-while循环语句,循环体至少会执行一次double64-bit双精度浮点数elseif条件不成立时执行的分支enum枚举类型extends表示一个类是另一个类的子类final表示定义常量finally无论有没有异常发生都执行代码float32-bit单精度浮点数forfor循环语句goto用于流程跳转(不可用,意即不可随意跳转)if条件语句implements表示一个类实现了接口import导入类instanceof测试一个对象是否是某个类的实例int32位整型数interface接口,一种抽象的类型,仅有方法和常量的定义long64位整型数native表示方法用非java代码实现new分配新的类实例package一系列相关类组成一个包private表示私有字段,或者方法等,只能从类内部访问protected表示保护类型字段public表示共有属性或者方法return方法返回值short16位数字static表示在类级别定义,所有实例共享的strictfp浮点数比较使用严格的规则super表示基类switch选择语句表示同一时间只能由一个线程访问的代码块this调用当前实例或者调用另一个构造函数throw抛出异常throws定义方法可能抛出的异常transient修饰不要序列化的字段try表示代码块要做异常处理void标记方法不返回任何值volatile标记字段可能会被多个线程同时访问,而不做同步whilewhile循环注释注释作用:标识程序是干什么的,以及它是如何构建的。注释帮助程序员进行相互沟通以及理解程序。注释不是程序设计语言,所以编译器编译程序时忽略它们。接口和类别Java自带了创建接口的类别,可以这样使用:publicinterfaceDeleteab

Java 里面有没有跟c++ extern 作用一样的语句

static

英语不好学java好学吗?

英语不好完全可以学JAVA的哦,JAVA不需要记很多的词汇量,学习Java主要是需要很大的毅力,Java学习是一个漫长的过程,换算成时间每天如果学8小时的话,大概需要4个月左右,涉及到的内容非常多,简单的网页制作,简单的js脚本,数据库,各种常用的框架等。

关于JAVA语言,和C语言有什么联系吗?

分类: 电脑/网络 >> 程序设计 >> 其他编程语言 解析: Java编程基础 原创:EOC_ZX 2002年10月4日 Java语言由语法规则和类库两部分组成,其中语法规则确定了Java程序的书写规范,学习好语法规则是Java语言,也是所有编程语言的基本功。本文主要向大家简单介绍一下Java的语法规则。 Java语言与C/C++语言有着紧密的联系,Java中的许多术语来自于C++,起语法也来自于C++。因此Java的语法和c++的语法计划一模一样。下面简单介绍一下Java的具体语法。 一、Java的词法1、标识符 标识符是类、变量和方法等的名字,作用是让编译器能够识别它们。在Java语言中,标识符可以包含数字、字母、下划线(_)和美圆符号($),但是不能以数字作为开头。与C/C++语言不同的是,Java语言还可以将一些非拉丁字母包含在标识符中,这是因为Java语言使用的是Unicode字符,所有的十六进制00C0以上的Unicode字符都可以用在标识符中。但是Java语言的关键字是不能用来作为标识符的。 我们在使用标识符的时候应该尽量表达所要表示的类、变量、方法等的含义。另外,标识符中可以使用下划线,我们应该充分利用这一点以提高程序的可读性。 2、关键字 以下是Java的全部关键字: abstract double int strictfp** boolean else interface super break extends long switch byte final native synchronized case finally new this catch float package throw char for private throws class goto* protected transient const* if public try continue implements return void default import short volatile do instanceof static while * 尚未使用的关键字 ** 为Java 2增加的关键字 3、注释 Java有三种形式的注释: 第一种是C语言的传统注释方式,即将“/*”和“*/”之间的文本都视为注释,这种注释可以跨越多行。 第二种是C++风格的注释,即将“”之后直到行尾的文本都视为注释,这种注释只能包含一行。 第三种是Java新增加的注释方式,即将“/**”和“*/”之间的文本都视为注释,这种注释也可以夸耀多行。注意,这种注释方式生成的注释将作为Javadoc文档保存。 二、操作符 1、算术操作符 操作符 用途 优先级 结合性 ++,-- 自动递增,自动递减 2(仅次于括号) 从右到左 +,- 一元加,一元减 2 从右到左 *,/ 乘,除 3 从左到右 % 取余(求模) 3 从左到右 +,- 加,减 4 从左到右 2、布尔运算与关系运算符 操作符 用途 优先级 结合性 >,<,>=,<= 测试相对大小 6 从左到右 == 测试相等性 7 从左到右 != 测试不等性 7 从左到右 ?: 根据第一个操作数返回后两个操作数之一 13 从左到右 ! 非 2 从右到左 & 布尔与 8 从左到右 ^ 异或 9 从左到右 | 布尔或 10 从左到右 && 条件与 11 从左到右 || 条件或 12 从左到右 3、位操作符 操作符 用途 优先级 结合性 ~ 非(位求补) 2 从右到左 <<,>> 左移,右移 5 从左到右 >>> 当作无符号右移 5 从左到右 & 位和 8 从左到右 ^ 位异或 9 从左到右 | 位或 10 从左到右 4、赋值操作符 操作符 用途 优先级 结合性 = 赋值 14 从右到左 *= 操作同时赋值 14 从右到左 /= 操作同时赋值 14 从右到左 %= 操作同时赋值 14 从右到左 += 操作同时赋值 14 从右到左 -= 操作同时赋值 14 从右到左 >>= 操作同时赋值 14 从右到左 <<= 操作同时赋值 14 从右到左 >>>= 操作同时赋值 14 从右到左 ^= 操作同时赋值 14 从右到左 |= 操作同时赋值 14 从右到左 &= 操作同时赋值 14 从右到左 5、特殊操作符 cast操作符将一种数据类型转换成为另一种数据类型,cast应写成把要校正操作数的类型名放在括号中。 例如: int i; long l; l=7876547; i=(int)l; 如果给高精度的变量赋予一个低精度值,则不需校正。类型校正操作符的优先级为2,结合性为从右到左结合。 将以上讲到的操作符的优先级总结如下: 优先级 运算符 结合顺序 1 []数组运算 .点运算符 ()调用方法 从左到右 2 ! ~ ++ -- +(一元加) -(一元减) ()强制类型转换 new 从右到左 3 * / % 从左到右 4 +(二元加) -(二元减) 从左到右 5 >> << >>> 从左到右 6 < <= > >= instanceof 从左到右 7 == != 从左到右 8 & 从左到右 9 ^ 从左到右 10 | 从左到右 11 && 从左到右 12 || 从左到右 13 ?: 从左到右 14 = += -= *= /= %= &= |= ^= <<= >>= >>>= 从右到左 三、常量 1、整型常量 在Java语言中,整型常量有三种形式,它们分别是:十进制、八进制、十六进制。 需要注意的是十进制数不能以0开头,这是因为八进制的数是以0开头的,而十六进制数以0x或0X开头。 2、浮点型常量 浮点数只能表示十进制数。浮点数有两种表示方法,即标准表示法和科学记数法。浮点数又分为单精度数和双精度数。 3、布尔型常量 布尔型常量有两个值:ture(或TURE)和false(或FALSE)它们分别表示真和假,这两个值用来表示事物的状态,它们必居其一。通过测量布尔值可以判断是否执行某个步骤。 4、字符型常量 字符型常量是一个单一的字符,其形式是由两个单引号引起来的一个字符。但是两个单引号引起来的不能是单引号和反斜杠,即‘""和‘"是不正确的写法。 大家一定要记住,Java语言中的字符是16位的Unicode字符,这与C/C++等语言是不一样的。 同C/C++语言一样,Java语言也有转意序列。Java中的转意序列的功能见下表: 转义序列 标准形式 功能描述 继续 NL 回车换行 HT 水平制表符  BS 后退一格 CR 回车不换行 f FF 换页 " " 单引号 \ 反斜杠 " " 双引号 ddd 0ddd 八进制模式 xddd 0xddd 十六进制模式 udddd 0xdddd Unicode双字节字符 字符串常量 字符串常量是由双引号引起来的一系列字符,与C/C++语言中不同的是,Java语言中的字符串不是通过字符数组来实现的,而是通过字符串类(即String类)来实现的。 四、变量和数据类型 在Java中,数据的类型可以分为四种:基本数据类型、数组类型、类和接口类型。任何数据都一定是上述数据类型的一种。 其中基本数据类型可以分为四大类:布尔型、字符型、整数型和浮点型。这些类型的数据与前面介绍的常量的类型基本相同,在此不再多说。下面将整数型和浮点型变量的取值范围列出: 表一、 类型 宽度 取值范围 byte 8位 -256到256 short 16位 -32768到32767 int 32位 -***********到*********** long 64位 -9223372036854775808到9223372036854775807 表二、 进制 整数 长整数 十进制 最大正整数 ***********(2的31次方减1) 923372036854775807L(2的63次方减1) 八进制 最大正整数 077777777777(2的31次方减1) 07777777777777777777L(2的63次方减1) 最小负整数 020000000000(-2的31次方) 04000000000000000000L(-2的63次方) 十六进制 最大正整数 0x7fffffff(2的31次方减1) 0x7fffffffffffffffL(2的63次方减1) 最小负整数 0x***********(-2的31次方) 0x8000000000000000L(-2的63次方) 浮点数能表示的数值从小到大分别是:负无穷大、负有限值、负零、正零、正有限值及正无穷大。其中正零和负零在进行数值比较的时候是相等的,但仍有办法分辨这两个值,例如在进行1.0/0.0的时候会得到正无穷大的结果。其它非零非无穷大的有限值是以s*m*(2^e)来表示的,s和m的取值范围见下表: 表三、 类型 s m e float +1或-1 小于2的24次方的正整数 149到104的整数 double +1或-1 小于2的53次方的正整数 1045到1000的整数 表四、float 最大值 ***********e+38f 非零最小值 1.***********e-45f double 最大值 1.79769313486231570e+308 非零最小值 4.940656458412465334e-324 另外浮点数还有一些特殊值,见下表:float 最大值 Float.MAX_VALUE 最小值 Float.MIN_VALUE 正无穷大 Float.POSITIVE_INFINITY 负无穷大 Float.NEGATIVE_INFINITY NaN Float.NaN double 最大值 Double.MAX_VALUE 最小值 Double.MIN_VALUE 正无穷大 Double.POSITIVE_INFINITY 负无穷大 Double.NEGATIVE_INFINITY NaN Double.NaN 与C/C++语言中不同的是,在Java语言中,所有的基本数据类型都有预设值,就是说当我们声明一个变量时,即使我们没有对它赋值,它的值也是一定的,而不像在C/C++中那样是不可预测的。具体个类型的预设值见下表: 基本数据类型 预设值 Boolean false Char "u000" Byte (byte)0 Short (short)0 Int 0 Long 0L Float 0.0L Double 0.0d 五、Java与C/C++的比较 由于Java的语法直接来源于C/C++,所以Java的程序控制语句与C/C++一模一样,在此不再多说。以下重点介绍一下Java与C/C++的不同。 指针 大家在使用C语言编程的时候想必都曾经因为指针的复杂计算而烦恼,在C/C++语言编程过程中,指针可能引起许多错误,这些复杂的指针算法所产生的错误常常让人迷惑不解,导致C/C++程序员在此浪费了大量的时间。考虑到这种原因,Java中取消了指针。指针的功能由参考(reference)所取代,这使得Java中对复杂数据结构的实现更加容易,因为用对象和对象数组实现复杂的数据结构更可靠。 函数 在Java中没有C/C++中应用广泛的函数,C/C++中通过函数实现的功能在Java中都是通过类和方法来实现的。 继承 C++支持多重继承,这是一个从多个父类中派生一个类的有效办法,但这种派生很复杂,也很容易产生问题。因此,Java中没有采用多重继承,但Java的Objective C协议接口能完成C++中多重继承的所有功能。 goto语句 大家知道,在使用高级语言编程时过多的使用goto语句会使程序变得十分混乱,因此Java中也没有使用goto语句。但是不可否认,当程序比较容易控制的时候,适当使用goto语句能使程序的运行更快捷,因此Java中使用了多重break和continue语句(允许break和continue语句使用标签)实现C++种goto语句的功能。 联合和结构 在C++中有三种数据结构:联合、结构和类;Java中只有类,它可以实现上述三者的功能。 字符串 在C/C++中,字符串是通过字符数组实现的,但是由于数组的空间不是动态分配的,这容易出现越界错误,例如:常有预先设定的字符数组不能容纳后输入的字符串。在Java中,字符串是一类特定的对象,这使得字符串更具有一致性和可预见性。 Typedef、Define和预处理器 Java中不需要#define语句、预处理器或者typedef,但需要头文件。在Java中一个类的信息必须包含在一个文件中,而C/C++中有关类的信息可能分散在多个文件中。 数据类型的自动强制转换 在Java中强制一种类型的数据元素变成一种不太精确的数据类型需要编程人员采用预测方法。

java 的关键字有哪些

转的Abstract 抽象的 一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的,但是可以被其它类继承。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现 break 一个Java的关键字,用来改变程序执行流程,立刻从当前语句的下一句开始执行从。如果后面跟有一个标签,则从标签对应的地方开始执行 case Java语言的关键字,用来定义一组分支选择,如果某个值和switch中给出的值一样,就会从该分支开始执行。 catch Java的一个关键字,用来声明当try语句块中发生运行时错误或非运行时异常时运行的一个块。 char Java语言的一个关键字,用来定义一个字符类型 continue 一个Java的关键字,用来打断当前循环过程,从当前循环的最后重新开始执行,如果后面跟有一个标签,则从标签对应的地方开始执行。 do 一个Java语言的关键字,用来声明一个循环,这个循环的结束条件可以通过while关键字设置 double 一个Java语言的关键字,用来定义一个double类型的变量 else 一个Java语言的关键字,如果if语句的条件不满足就会执行该语句。 final 一个Java语言的关键字。你只能定义一个实体一次,以后不能改变它或继承它。更严格的讲:一个final修饰的类不能被子类化,一个final修饰的方法不能被重写,一个final修饰的变量不能改变其初始值。 finally 一个Java语言的关键字,用来执行一段代码不管在前面定义的try语句中是否有异常或运行时错误发生。 float 一个Java语言的关键字,用来定义一个浮点数变量 for 一个Java语言的关键字,用来声明一个循环。程序员可以指定要循环的语句,推出条件和初始化变量。 if Java编程语言的一个关键字,用来生成一个条件测试,如果条件为真,就执行if下的语句。 implements Java(TM)编程语言的一个关键字,在类的声明中是可选的,用来指明当前类实现的接口。 import Java(TM)编程语言的一个关键字,在源文件的开始部分指明后面将要引用的一个类或整个包,这样就不必在使用的时候加上包的名字。 instanceof 一个二操作数的Java(TM)语言关键字,用来测试第一个参数的运行时类型是否和第二个参数兼容。 int Java(TM)的一个关键字,用来定义一个整形变量 Java(TM)的一个关键字,用来定义一系列的方法和常量。它可以被类实现,通过implements关键字。 long Java语言的一个关键字,用来定义一个long类型的变量。 private Java语言的一个关键字,用在方法或变量的声中。它表示这个方法或变量只能被这个类的其它元素所访问。 protected Java语言的一个关键字,在方法和变量的声明中使用,它表示这个方法或变量只能被同一个类中的,子类中的或者同一个包中的类中的元素所访问。 public Java语言的一个关键字,在方法和变量的声明中使用,它表示这个方法或变量能够被其它类中的元素访问。 return Java语言的一个关键字,用来结束一个方法的执行。它后面可以跟一个方法声明中要求的值。 short Java语言的关键字,用来定义一个short类型的变量。 static Java语言的关键字,用来定义一个变量为类变量。类只维护一个类变量的拷贝,不管该类当前有多少个实例。"static" 同样能够用来定义一个方法为类方法。类方法通过类名调用而不是特定的实例,并且只能操作类变量。 this Java语言的关键字,用来代表它出现的类的一个实例。this可以用来访问类变量和类方法。 throw Java语言的关键字,允许用户抛出一个exception对象或者任何实现throwable的对象 throws Java语言的关键字,用在方法的声明中来说明哪些异常这个方法是不处理的,而是提交到程序的更高一层。 transient Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。 try Java语言的关键字,用来定义一个可能抛出异常语句块。如果一个异常被抛出,一个可选的catch语句块会处理try语句块中抛出的异常。同时,一个finally语句块会被执行,无论一个异常是否被抛出。 void Java语言的关键字,用在Java语言的方法声明中说明这个方法没有任何返回值。"void"也可以用来表示一句没有任何功能的语句。 volatile Java语言的关键字,用在变量的声明中表示这个变量是被同时运行的几个线程异步修改的。 while Java语言的一个关键字,用来定义一段反复执行的循环语句。循环的退出条件是while语句的一部分。 关于break和continuecontinue语句与break语句相关,但较少用到。continue语句用于使其所在的for、while或do-while语句开始下一次循环。在while与do-while语句中,continue语句的执行意味着立即执行测试部分;在for循环语句中,continue语句的执行则意味着使控制传递到增量部分。

下面哪个单词是java语言的关键字

abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for if goto implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while保留字const,goto

java中的函数调用怎么理解?

x+y=?求和函数sum(需要整型x、y参数,返回整型结果):public int sum(int x, int y){return x+y;}调用方法:public void test(){//定义函数返回结果变量,并且初始化int result =0;//求和函数调用result=sum(3,5);} 上面只是简单的例子,希望能帮到你。

java语言编的计算器程序,一按0.3就会显示0.3000000004,只有个别数字会出现这种情况

可以用strictfp修饰类,就能解决了!

有没有较完整的Java中的关键字及其含义

留个邮箱,我发给你……

以下不是java关键字的有()

C 正确写法为null

Java中方法的重载和覆盖怎么区分?

重载:函数或者方法有同样的名称,但是参数列表不相同例子:public void func(String s) {...} / public void func(int i) {...}覆盖:也称重写,函数的签名完全相同,但函数体不同例子:public void func(String s) {...} / public void func(String s) {...}理解重载的话,你可以认为这是两个不同的函数而重写,你可以认为是同一个函数,但在不同的对象实例中做了不同的工作

java中如何实现N个浮点数相加并确保其精确度

用strictfp(精确浮点)修饰变量

Java中标识符定义的规则有哪些?

可以是数字、字母、下划线的组合,但不能以数字开头

如下哪个是java中有效的关键字

如下 是在哪里??

java 哪些关键字 java未使用到

goto反正是写在关键字里面但是没有用到,我就找到这一个

哪位朋友能帮我详解一下Java的内部类和匿名内部类?

内部类一、 定义:在一个类内部定义的类。二、 类型:成员内部类、局部内部类(也叫方法内部类)、匿名内部类、静态嵌套类。三、 用法a) 四种内部类的共性i. 内部类仍然是一个独立的类,在编译后内部类会被编译成独立的.class文件,只是在前面加上外部类的类名和$符号。ii. 内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由访问外部类的成员变量,无论是否是private的。iii. 内部类的this引用:内部类中同样使用this.成员变量,如要使用外部类的成员变量,则使用外部类名.this.成员变量。b) 四种内部类的区别i. 成员内部类:它相当于外部类的一个成员变量或方法,可用修饰符为final、abstract、public、private、protected、strictfp和static。形式如下class Outer { class Inner{}}编译上述代码会产生两个文件,Outer.class和Outer$Inner.class。成员内部类内不允许有任何静态声明!能够访问成员内部类的途径是通过外部类的对象或外部类中非静态的方法。//外部类class Outer { //内部类 class Inner { //内部类的方法 public void myInner() { System.out.println(“Inner class”); } } //非静态方法访问内部类 public void getInner() { Inner in = new Inner(); in.myInner(); } //外部访问内部类 pulblic static void main(String args[]) { Outer out = new Outer(); Outer.Inner in = out.new Inner(); in.myInner(); }}ii. 局部内部类(方法内部类):在外部类的某个方法内定义的类,与成员内部类不同,它相当于外部类的一个局部变量,修饰符只有final和abstract。1. 只能在定义该内部类的方法内实例化,不可以在此方法外对其实例化。2. 局部内部类对象不能使用该内部类所在方法的非final局部变量。因为方法的局部变量位于栈上,只存在于该方法的生命期内。当一个方法结束,其栈结构被删除,局部变量成为历史。但是该方法结束后,在方法内创建的内部类对象可能仍然存在于堆中!例如,如果对它的引用被传递到其他某些代码,并存储在一个成员变量内。正因为不能保证局部变量的存活期和方法内部类对象的一样长,所以内部类对象只能使用所在方法中被定义为final的局部变量。3. 静态方法内的局部内部类没有this的引用。a) 示例:class Outer { public void doSomething() { final int a = 10; class Inner { public void myInner() { System.out.println(a); } } }}iii. 匿名内部类:没有名字的内部类。1. 继承式的匿名内部类class Car { public void drive() { System.out.println(“Driving a car!”); }}class Temp { public static void main(String[] args) { Car car = new Car() { pulbic void drive() { System.out.println(“Driving another car!”); } }; car.drive(); }}2. 接口式的匿名内部类interface Face { public void drive();}class Temp { public static void main(String[] args) { Face face = new Face() { public void drive() { System.out.println(); } }; face.drive(); }}3. 参数匿名内部类:顾名思义,将匿名内部类当成参数使用。iv. 静态嵌套类:从技术上讲,静态嵌套类不属于内部类。因为内部类与外部类共享一种特殊关系,更确切地说是对实例的共享关系。而静态嵌套类则没有上述关系。它只是位置在另一个类的内部。因此也被称为顶级嵌套类。静态的含义是该内部类可以像其他静态成员一样,没有外部类对象时,也能够访问它。静态嵌套类不能访问外部类的成员和方法。class Outer { static class Inner{}}class Temp { public static void main(String[] args) { Outer.Inner n = new Outer.Inner(); }}

JAVA中有哪些保留字?

保留字以后可能用。 x0dx0a关键字现在就已经使用。x0dx0ax0dx0aJava 关键字列表 (依字母排序 共51组): x0dx0aabstract, assert,boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum,extends, final, finally, float, for, if, implements, import, instanceof, int, interface, long, native, new, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while x0dx0aJava 保留字列表 (依字母排序 共14组) : Java保留字是指现有Java版本尚未使用 但以后版本可能会作为关键字使用。 x0dx0abyValue, cast, false, future, generic, inner, operator, outer, rest, true, var , goto ,const,null

以下不是java关键字的有()

C、D都不是,属于java字面常量java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。以下是java 关键字分类列表:(共50个,供大家参考)访问控制:private 私有的protected 受保护的public 公共的类、方法和变量修饰符abstract 声明抽象class 类extends 扩允,继承final 终极,不可改变的implements实现interface 接口native 本地new 新,创建static 静态strictfp 严格,精准synchronized 线程,同步transient 短暂volatile 易失程序控制语句break 跳出循环continue 继续return 返回do 运行while 循环if 如果else 反之for 循环instanceof 实例switch 开关case 返回开关里的结果default 默认错误处理catch 处理异常finally 有没有异常都执行throw 抛出一个异常对象throws 声明一个异常可能被抛出try 捕获异常包相关import 引入package 包基本类型boolean 布尔型byte 字节型char 字符型double 双精度,float 浮点int 整型long 长整型short 短整型变量引用super 父类,超类this 本类void 无返回值Java Language KeywordsHere"s a list of keywords in the Java programming language. You cannot use any of the following as identifiers in your programs. The keywords const and goto are reserved, even though they are not currently used. true, false, and null might seem like keywords, but they are actually literals; you cannot use them as identifiers in your programs.abstractcontinuefornewswitchassert***defaultgoto*packagesynchronizedbooleandoifprivatethisbreakdoubleimplementsprotectedthrowbyteelseimportpublicthrowscaseenum****instanceofreturntransientcatchextendsintshorttrycharfinalinterfacestaticvoidclassfinallylongstrictfp**volatileconst*floatnativesuperwhile*not used**added in 1.2***added in 1.4****added in 5.0

如何使用java

先找本基础的教材来看看吧。

java中的关键字是是什么意思

abstract :表明类或类中的方法是抽象的;assert :声明断言;boolean :基本数据类型之一,布尔类型;break :提前跳出一个块;byte :基本数据类型之一,字节类型;case :在switch语句中,表明其中的一个分支catch :用于处理例外情况,用来捕捉异常;char :基本数据类型之一,字符类型;class :类;continue :回到一个块的开始处;default :用在switch语句中,表明一个默认的分支;do :用在“do while”循环结构中;double :基本数据类型之一,双精度浮点数类型;else :在条件语句中,表明当条件不成立时的分支;extends :用来表明一个类是另一个类的子类;final :用来表明一个类不能派生出子类,或类中的方法不能被覆盖,或声明一个变量是常量;finally :用于处理异常情况,用来声明一个肯定会被执行到的块;float :基本数据类型之一,单精度浮点数类型;for :一种循环结构的引导词;if :条件语句的引导词;implements :表明一个类实现了给定的接口;import :表明要访问指定的类或包;instanceof :用来测试一个对象是否是一个指定的类的实例;int :基本数据类型之一,整数类型;interface :接口;long :基本数据类型之一,长整数类型;native :用来声明一个方法是由与机器相关的语言(如C/C++/FORTRAN语言)实现的;new :用来申请新的对象;package :包;private :一种访问模式:私有模式;protected :一种访问模式:保护模式;public :一种访问模式:公共模式;return :从方法中返回值;short :基本数据类型之一,短整数类型;static :表明域或方法是静态的,即该域或方法是属于类的;strictfp :用来声明FP-strict(双精度或单精度浮点数)表达式;算术规范:super :当前对象的父类对象的引用;switch :分支结构的引用词;synchronized :表明一段代码的执行需要同步;this :当前对象的引用;throw :抛出一个异常;throws :声明方法中抛出的所有异常;thansient :声明不用序列化的域;try :尝试一个可能抛出异常的程序块;void :表明方法不返回值;volatile :表明两个或多个变量必须同步地发生变法;while :用在循环结构中;enum :声明枚举类型;说明:⑴Java的关键字也是随新的版本发布在不断变动中的,不是一成不变的。⑵所有关键字都是小写的。⑶除这些关键字外,Java还定义了一些保留字,也就是说Java保留了它们,但是没有使用它们,这些词不 能作为标识符使用。cast、goto、future、generic、inner、operator、outer、rest、var⑷true和false不是关键字,而是boolean类型直接量。⑸null也不是关键字。⑹无sizeof运算符;所有类型的长度和表示是固定的,不依赖执行。

java中的关键字是什么?

访问控制:private 私有的protected 受保护的public 公共的类、方法和变量修饰符abstract 声明抽象class 类extends 扩允,继承final 终极,不可改变的implements实现interface 接口native 本地new 新,创建static 静态 strictfp 严格,精准synchronized 线程,同步transient 短暂volatile 易失程序控制语句break 跳出循环continue 继续return 返回do 运行while 循环if 如果else 反之for 循环instanceof 实例switch 开关case 返回开关里的结果default 默认错误处理catch 处理异常finally 有没有异常都执行throw 抛出一个异常对象throws 声明一个异常可能被抛出try 捕获异常包相关import 引入package 包基本类型boolean 布尔型byte 字节型char 字符型double 双精度,float 浮点int 整型long 长整型short 短整型null 空true 真false 假变量引用super 父类,超类this 本类void 无返回值---------------------------------------------------------------------Java语言有51个保留关键字,其中const和goto虽然被保留但未被使用。你不能使用保留关键字来命名类、方法或变量。一、保留关键字数据类型:Boolean int long short byte float double char class interface流程控制:if else do while for switch case default break continue return try catch finally修饰符: public protected private final void static strictfp abstract transientsynchronized volatile native动作: package import throw throws extends implements this Super instanceof new保留字: true false null goto const二、访问修饰符: 访问修饰符: public , protected , private * 只能应用于类的成员变量。(局部变量只能在函数的范围内可见,不能使用访问修饰符) * 能够用来修饰类本身。(protected , private 不能用于顶级类,只能用于内部类) * 能够应用于成员方法和构造函数。下面是一个例子: package Examples;public class HelloWorld02{ //以下定义了三个了类成员变量 public String str1="Hello"; //可被你程序中的任何其他代码访问 protected String str2="World!"; //程序中同一包的成员和不同包中的该类子类可以访问 private String str3=" "; //仅该类中的成员可以访问String str=str1+str3+str2; //不使用修饰符的话,变量的访问控制在所在包内为public, // 不能被所在包外的代码存取//以下定义了三个使用不同修饰符和不同参数的构造方法。 public HelloWorld(){ System.out.println(str); } protected HelloWorld(long l){ System.out.print("Use "protected" constructor! And l is ["+l+"] "); System.out.println(str); } private HelloWorld(float f){ System.out.print("Use "private" constructor! And f is ["+f+"] "); System.out.println(str); } //声明构造方法为void类型是合法的.不过因为没有返回值,所以不能用来创建新对象. public void HelloWorld(){ System.out.println(str +" Use the void constructor!"); }public static void main(String[] args){HelloWorld hw1=new HelloWorld(); //使用无参数的构造方法 HelloWorld hw2=new HelloWorld(5); // 虽然5是int类型,但会自动提升成long类型 HelloWorld hw3=new HelloWorld(5L); HelloWorld hw5=new HelloWorld(3.14f); // 但float类型则必须指明,否则会出错hw5.HelloWorld(); // 无返回值的构造方法只能这样调用 (new HelloWorld()).HelloWorld(); //这里创建了一个匿名类对象并调用无返回值的构造方法}}总结: 请认真思考一下: (1)public、protected、private 可用来修饰哪些成员?使用这些修饰符的成员的访问控制是怎样的?没有指定访问修饰符的成员的访问控制是怎样的?* public、protected和private可以用来修饰类成员变量、方法、构造方法和内部类; public可以用来修饰顶级类,但protected和private则不行。注意事项:* 每一个java文件中可以包含多个类,但只能存在一个public顶级类,如果声明了两个顶级类的话,则会出现编译错误。二、部分其他修饰符 this:Java中定义了this关键字来访问当前对象实例内的成员。当局部变量和类实例内的类变量同名时,在这个局部变量所作用区域内类变量就被隐藏了,必须使用this来指明。 static:有时你希望定义一个类成员,使它的使用完全独立于该类的任何对象。通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它所在类使用,而不必引用所在类的实例。将类中的成员声明为static就能实现这样的效果。声明为static的变量实质就是全局变量。当声明一个对象(某个类的实例)时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。 声明为static的方法有以下三条限制: * 它们只能访问static数据 * 它们仅能调用其他的static方法 * 它们不能以任何方式引用this或super 实例分析: package Examples;public class StaticDemo{ public static void main(String[] args){ System.out.println(MyStaticClass.str); //不用创建MyStaticClass的实例就能访问它的str变量 // System.out.println(MyStaticClass.str2); 这句是错误的。MyStaticClass msc=new MyStaticClass(); //这里创建MyStaticClass的一个实例 System.out.println("After create instance:"); msc.printString(); } }class MyStaticClass{ static String str="Hello World!"; String str2; void setString(String s){ str2=s; }static void setNewString(String s){ str=s; }static void printString(){ //setString(str); 在static方法中调用非static方法是错误的 //System.out.println(str2); 也不能访问非static变量 //Java中是先检测static变量再检测static方法的 System.out.println(str); // 可以正常访问static变量 setNewString("Static method is OK!"); //正常调用static方法 System.out.println(str); } } final: 一个变量可以被声明为final,这样做的目的是阻止它的内容被修改。这意味着在声明final变量的时候,你必须初始化它。一个final变量实质上是一个常数,为final变量的所有字母选择大写是一个普遍的编码约定。声明为final的变量在实例中不占用内存。 声明成final的方法不能被重载。通常,Java在运行时动态的调用方法,这叫做后期绑定(late binding);由于被声明为final的方法不能被重载,那么对final方法的调用可以在编译时解决,这叫做早期绑定(early bingding)。 声明为final的类不能被其他类继承。声明一个final类含蓄的宣告了它的所有方法也都是final的。所以,声明一个既是abstract的,又是final的类是不合法的,因为抽象类本身是不完整的,它依靠它的子类提供完整的实现。strictfp: Java2向Java语言增加了一个新的关键字strictfp。与Java2同时产生的浮点运算计算模型很轻松的使某些处理器可以以较快速度进行浮点运算(例如奔腾处理器)。这个浮点运算计算模型在计算过程中,不需要切断某些中介值。如果用strictfp来修饰类或方法,可以确保浮点运算(以及所有切断)正如它们在早期Java版本中那样准确(即使用原始的浮点运算模型)。切断只影响某些操作的指数。当一个类被strictfp修饰,所有该类的方法都自动被strictfp修饰。坦白说,很多程序员从未用过strictfp,因为它只对非常少的问题有影响。native: 有时你希望调用不是用Java语言写的子程序,或者你希望调用一个专用的第三方的库,例如统计学包。虽然这种情况比较少,但Java提供了native关键字,该关键字用来声明本机代码方法。 为声明一个本机方法,在该方法之前用native修饰符,但是不要定义任何方法体。例如: public native int meth(); 声明本机方法后,必须编写本机方法并要执行一系列复杂的步骤使它与Java代码链接。很多本机方法是用C写的。把C代码结合到Java程序中的机制是调用Java Native Interface(JNI)。transient: 如果用transient声明一个实例变量,当对象储存时,它的值不需要维持。例如: class T{ transient int a; // will not persist int b; // will persist } 这里,如果T类的一个对象被写入一个持久的存储区域,a的内容不被保存,但b将被保存。volatile: volatile修饰符告诉编译器被volatile修饰的变量可以被程序的其他部分改变。一种 这样的情形是多线程程序。在多线程程序里,有时两个或更多的线程共享一个相同的实例变量。考虑效率的问题,每个线程可以自己保存该共享变量的私有拷贝。实际的(或主要的)变量副本在不同的时候更新,例如当进入synchronized方法时。当这种方法运行良好时,它在时间上会是低效的。在某些情况下,真正要紧的是变量主副本的值会体现当前的状态。为保证这点,仅需把变量定义成volatile型,它告诉编译器它必须总是使用volatile变量的主副本(或者至少总是保持一些私有的最新的主副本的拷贝,反之亦然),同时,对主变量的获取必须以简洁次序执行,就像执行私有拷贝一样。

java中类修饰符有哪些?

public private protected final abstract friendly

java中private声明的类的作用范围?

私有的,即本类可见

声明java+lang+Math类的修饰符关键字有哪些?

在 Java 语言中,Math 类是位于 java.lang 包下的一个数学计算类,主要提供了一些基本的数学运算方法,如三角函数、指数、对数、平方根等。对于 Math 类的声明,可以使用以下修饰符关键字:1. public:表示该类是公共类,可以被其他类访问。2. final:表示该类是最终类,不能被其他类继承。3. abstract:表示该类是抽象类,不能直接实例化,只能被继承。4. strictfp:表示该类的浮点运算采用严格的浮点计算规则,保证在不同平台上计算结果的一致性。通常情况下,Math 类的声明不需要使用修饰符关键字,因为它已经默认使用了 public 和 final 修饰符。也就是说,Math 类是一个公共且最终的类,不能被其他类继承,但可以通过该类提供的静态方法进行数学计算。例如,可以使用以下代码调用 Math 类的静态方法求正弦值:```double x = Math.sin(30);```

java中什么是严格的浮点计算?请解释下,谢谢。

所有的小数都要保留。一般用BigDecimal比较好

认识Knockout及如何使用Knockout绑定上下文_javascript技巧

Knockout介绍Knockout简称ko,是一个轻量级的javascript类库,采用MVVM设计模式(即Model、view、viewModel),简单优雅的实现了双向绑定,实时更新,帮助您使用干净的数据模型来创建丰富的、响应式的用户界面。Knockout有三大核心特性: 1.优雅的依赖跟踪(Elegant dependency tracking):任何时候数据模型的变化都会自动更新相应的UI部分; 2.声明式绑定(Declarative bindings) : 简单的将UI和你的数据模型关联起来,你就可以创建复杂的动态UI; 3.高度可扩展性(Trivially extensible) : 只需几行代码实现一个自定义的行为来作为声明式绑定;其他优点: 1.纯净的javascript代码; 2.可以随时添加到你现有的web应用中; 3.轻量级,GZIP后只有13K; 4.能够工作于几乎所有主流浏览器((IE 6+, Firefox 2+, Chrome, Safari, Edge, others);ko采用的是MVVM设计模式,即model view viewModel。简单的例子就是这么简单,你不必写代码来更新text内容,它会在数组长度改变时自动更新,与此类似,如果我们想利用数组长度控制按钮的可用性仅仅需要:下面接着给大家介绍使用Knockout绑定上下文 Binding contextbinding context是一个保存数据的对象,你可以在你的绑定中引用它。当应用绑定的时候,knockout自动创建和管理binding context的继承关系。这种层次结构的根引用你指定的viewModel参数(ko.applyBindings(viewModel))。然后每次使用一个控制流如with或者foreach 来创建一个子节点binding context引用嵌套的viewModel data。$parent$parents这是一个数组,代表了所有的父节点view models$parent[0] : 代表父节点;$parent[1] : 代表祖父节点;$parent[1] : 代表曾祖父节点;.....以此类推$root它是root context的根节点视图模型对象,一般是通过ko.applyBindings指定的,相当于$parents[$parents.length - 1]。$component如果你在一个特定的组件模板的上下文中,$component指定的是那个component,它的指定组件相当于$root,在嵌套的组件情况下,它代表了最邻近的一个组件。$data它代表了当前上下文中的viewModel对象,$data和$root是相当的。在嵌套的binding context中,这个参数将设置到当前的数据项。$data是非常有用的,例如,当你想引用viewModel本身而不是viewModel的属性的时候。它是一个在foreach绑定中的数组的从0开始的索引条目。不想其他的context属性,$index是observable的,即会随着数组item的更新而更新。$parentContext指定了父节点级别的binding context对象,与$parent不同的是,它是在父节点中指定数据而不是binding context。$rowData它是在当前上下文中,原viewModel的值,通常它相当于$data,但是,如果viewModel被ko以observable来修饰,$data是unobservable的,而$rowData是observable的。

求____Jack Johnson的中文歌词!.

我已经争取一位天使她不穿着任何的翅膀她穿着一个可以融化我自己的中心她面带一个可以使我想要唱的微笑她给我礼物藉由她的出现孤独的她给我每件事物我可以愿她在唇上给我吻正直的为回家她能制造在低气压时的短暂雷达反射我已经用我自己的眼睛见到它你开始很小心当你你已经得到好爱引起他们在低气压时的短暂雷达反射将会仅仅继续乘你是如此忙碌变更世界只是一个微笑能改变所有我的我们共享相同的灵魂哦表示惊讶表示惊讶表示惊讶表示惊讶 哦哦哦哦 我们共享相同的灵魂哦表示惊讶表示惊讶表示惊讶表示惊讶 哦哦哦哦我们共享相同的灵魂哦表示惊讶表示惊讶表示惊讶表示惊讶 哦哦哦哦哦表示惊讶表示惊讶表示惊讶表示惊讶 哦哦哦哦

Jack Johnson的《Angel》 歌词

歌曲名:Angel歌手:Jack Johnson专辑:Sleep Through The StaticJack Johnson - AngelI"ve got an angelShe doesn"t wear any wingsShe wears a heart that could melt my ownShe wears a smile that could make me want to singShe gives me presentsWith her presence aloneShe gives me everything I could wish forShe gives me kisses on the lips just for coming homeShe can make angelsI"ve seen it with my own eyesYou got to be careful when you you"ve got good loveCause them angels will just keep on multiplyingYou"re so busy changing the worldJust one smile can change all of mineWe share the same soulOh oh oh oh oh ohhhWe Share the same soulOh oh oh oh oh ohhhWe Share the same soulOh oh oh oh oh ohhhOh oh oh oh oh ohhhUmm umm umm uhhhhhhmmhttp://music.baidu.com/song/10273576

Jane的《V.I.P》 歌词

歌曲名:V.I.P歌手:Jane专辑:V.I.P.Ke$ha - V.I.P.There ain"t no scenein the V.I.P for meNo, it ain"t no scene for meNo, it ain"t no scene for me noHe"s paying for your vodkaYou"re using what you gotDoesn"t really want yaBut you don"t stop"Cause this is what you"re here forAnd everyone can see (why)This is the place to beNo, way, nah, it"s not meNot, right, I wanna get rowdy tonightAnd this, sucks, yeah, it"s fucked upYou"re making me sick, ughI hate to say it butThere ain"t no scenein the V.I.P for meSo you can take your classshake your assand drown in that martiniCause there ain"t no scenein the V.I.P for meIt"s understood that you"re all too goodthis shit is crazyV.I.P, V.I.PEverybody"s someoneno one"s got a clueFlash a couple dollarsand who are youJudge a little closerall roped up in redSurprise surpriseyou wanna get me in bed, ohNo, way, nah, it"s not meNot, right, I wanna get rowdy tonightAnd this, sucks, yeah, it"s fucked upYou"re making me sick, ughI hate to say it butThere ain"t no scenein the V.I.P for meSo you can take your classshake your assand drown in that martiniCause there ain"t no scenein the V.I.P for meIt"s understood that you"re all too goodthis shit is crazyV.I.P, V.I.PCan"t you smell the sexV.I.P, V.I.PWho you gonna getV.I.P, V.I.PAin"t no scene for meV.I.P P P, V.I.PThis shit is crazyI wanna get downdown and get dirtySick of this sceneit doesn"t deserve meUh ohthere"s gotta be somewhere else go"Cause I wanna get offget a bit trashyWanna get hot, get a bit nastyUh oh, baby let"s goThere ain"t no scenein the V.I.P for meSo you can take your classshake your assand drown in that martiniCause there ain"t no scenein the V.I.P for meIt"s understood that you"re all too goodthis shit is crazyV.I.P, V.I.PV.I.P, V.I.PV.I.P, V.I.PV.I.P, V.I.Phttp://music.baidu.com/song/2803969

javaViewer是什么意思

Ultr@VNC 结合各家所长的免费远程遥控软件, 让你能以有限的网络带宽,连接分隔两地的计算机,让你直接操控远程计算机的桌面,也可以用浏览器当成操控的接口。

保时捷 tarja 这个车叫什么(中文)?有谁能详细介绍一下?

据我所知保时捷没有tarja一车,应该是叫targa。以下是保时捷各车的中文名字:Carrera(卡雷拉)Targa(塔加;全景玻璃天窗的跑车)Turbo(涡轮增压)Cayman(卡曼)Cayenne(卡宴)Boxster(博客斯特)4-四轮驱动S-运动升级版4S-四轮驱动运动Cabriolet-敞篷版这是最基础的,下面给你翻译你问题中的字母。1、911-carrera-911卡雷拉2、911-carrera-cabriolet-911卡雷拉敞篷版3、911-targa-4-911塔加44、911-turbo-911涡轮增压版

用kotlin语法怎么写java代码中的吐司toast

kotlin中的写法如下:import mypackage.util.ContextExtensions.toastfun myFun(context: Context) { context.toast("Hello world!")}

如何丰富alt属性的显示效果_javascript技巧

IE默认会给带alt属性图片和带title的链接一个浮动显示 蓝色理想[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]很多朋友觉得不好看或者功能不丰富想改改,搜集了几种办法大家研究下.popShow{ background:#ffffcc; border:1px solid black; padding:4px;font-family:verdana; font-size:70%; width:300px;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr="#0099FF", EndColorStr="#00FFFF") } .popImg{ border:0px; cursor: hand; } var oPopup = window.createPopup(); function fnDef() { oPopup.document.body.innerHTML = ""+event.srcElement.title+""; var popupBody = oPopup.document.body; oPopup.show(0, 0, 300, 50); var realHeight = popupBody.scrollHeight; oPopup.hide(); oPopup.show(0, 15 , 300, realHeight, event.srcElement); } [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]var ns4 = document.layers; var ns6 = document.getElementById && !document.all; var ie4 = document.all; offsetX = 0; offsetY = 20; var toolTipSTYLE=""; function initToolTips() { if(ns4||ns6||ie4) { if(ns4) toolTipSTYLE = document.toolTipLayer; else if(ns6) toolTipSTYLE = document.getElementById("toolTipLayer").style; else if(ie4) toolTipSTYLE = document.all.toolTipLayer.style; if(ns4) document.captureEvents(Event.MOUSEMOVE); else { toolTipSTYLE.visibility = "visible"; toolTipSTYLE.display = "none"; } document.onmousemove = moveToMouseLoc; } } function toolTip(msg, fg, bg) { if(toolTip.arguments.length < 1) // hide { if(ns4) toolTipSTYLE.visibility = "hidden"; else toolTipSTYLE.display = "none"; } else // show { if(!fg) fg = "#777777"; if(!bg) bg = "#FFFFFF"; var content = "" + "&nbsp;" + msg + "&nbsp;"; if(ns4) { toolTipSTYLE.document.write(content); toolTipSTYLE.document.close(); toolTipSTYLE.visibility = "visible"; } if(ns6) { document.getElementById("toolTipLayer").innerHTML = content; toolTipSTYLE.display="block" } if(ie4) { document.all("toolTipLayer").innerHTML=content; toolTipSTYLE.display="block" } } } function moveToMouseLoc(e) { if(ns4||ns6) { x = e.pageX; y = e.pageY; } else { x = event.x + document.body.scrollLeft; y = event.y + document.body.scrollTop; } toolTipSTYLE.left = x + offsetX; toolTipSTYLE.top = y + offsetY; return true; } 四川辣椒的艺术 (转) [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]var tipTimer; function locateObject(n, d) { //v3.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i (document.body.clientWidth + document.body.scrollLeft)) { locateObject(object).style.left = (document.body.clientWidth + document.body.scrollLeft) - locateObject(object).clientWidth-10; } else { locateObject(object).style.left=document.body.scrollLeft+event.clientX } locateObject(object).style.visibility="visible" tipTimer=window.setTimeout("hideTooltip(""+object+"")", displaytime); return true; } else if (document.layers) { locateObject(object).document.write(""+unescape(tipContent)+"") locateObject(object).document.close() locateObject(object).top=e.y+20 if ((e.x + locateObject(object).clip.width) > (window.pageXOffset + window.innerWidth)) { locateObject(object).left = window.innerWidth - locateObject(object).clip.width-10; } else { locateObject(object).left=e.x; } locateObject(object).visibility="show" tipTimer=window.setTimeout("hideTooltip(""+object+"")", displaytime); return true; } else { return true; } } ", "#fffff2","#000000","#000000","20000")" onMouseOut="hideTooltip("dHTMLToolTip")">点这里 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行].link{font-family:verdana,arial,helvetica; font-size:8pt; color:#003399; font-weight:normal} .link:hover{font-family:verdana,arial,helvetica; font-size:8pt; color:#0099FF; font-weight:normal} .prem_hint{font-family:verdana,arial,helvetica; font-size:8pt; color:#ffffff; font-weight:normal} .header{font-family:arial,verdana,helvetica; font-size:20pt; color:#ffff00; font-weight:bold} // Location of this script: // http://www.geocities.com/e_i_search/premshree/pub/scripts/JS/link_hint_scroller.htm //********************************************* //* Link Hint Scroller 1.0 * //* This script when you move your mouse over * //* displays a scrolling hint * //* (c) Premshree Pillai, * //* http://qik.cjb.net * //* E-mail : premshree@hotmail.com * //* Use the script freely as long as this * //* message is intact * //********************************************* window.onerror = null; var bName = navigator.appName; var bVer = parseInt(navigator.appVersion); var NS4 = (bName == "Netscape" && bVer >= 4); var IE4 = (bName == "Microsoft Internet Explorer" && bVer >= 4); var NS3 = (bName == "Netscape" && bVer < 4); var IE3 = (bName == "Microsoft Internet Explorer" && bVer < 4); var scroll_length = 150; //The scroll length var time_length =50; //Scroll speed var begin_pos = 100; //Start position of scroll hint var i; var j; if (NS4 || IE4) { if (navigator.appName == "Netscape") { layerStyleRef="layer."; layerRef="document.layers"; styleSwitch=""; }else{ layerStyleRef="layer.style."; layerRef="document.all"; styleSwitch=".style"; } } //SCROLL function Scroll(layerName){ if (NS4 || IE4) { if (NS4 || IE4) { if(i

java获得鼠标相对于窗体的坐标

MouseEvent类的getX,getY,getPoint和SwingUtilities的convertPoint方法组合使用。

java中控制鼠标点击的方法

//利用 java.awt.Robot 类来自动完成一些键盘或鼠标的动作,下面是一个小例子//程序流程:模拟鼠标左键点击 开始-->运行-->CMD-->DIR-->CLS-->EXIT//模拟右键点击 移动到右下角-->右键点击-->调整日期和时间-->退出import java.awt.*;import java.awt.event.*;import javax.swing.JOptionPane;//Test.javapublic class Test {public static void main(String[] args) throws Exception {final Robot rb = new Robot();new Thread(){public void run(){rb.delay(2000);//回车rb.keyPress(KeyEvent.VK_ENTER);rb.keyRelease(KeyEvent.VK_ENTER);}}.start();JOptionPane.showMessageDialog(null,"以下程序自动执行,包括本对话框,请不必进行人为干预. 如果不能正常执行程序,请先关闭输入法");//设置开始菜单的大概位置int x = 40;int y = Toolkit.getDefaultToolkit().getScreenSize().height-10;//鼠标移动到开始菜单,rb.mouseMove(x,y);rb.delay(500);//单击三次开始菜单for(int i=0; i<3; i++)pressMouse(rb,InputEvent.BUTTON1_MASK,500);rb.delay(1000);//运行CMD命令 r cmd enterint[] ks = {KeyEvent.VK_R,KeyEvent.VK_C,KeyEvent.VK_M,KeyEvent.VK_D,KeyEvent.VK_ENTER,};pressKeys(rb,ks,500);rb.mouseMove(400,400);rb.delay(500);//运行DIR命令 dir enterks = new int[]{KeyEvent.VK_D,KeyEvent.VK_I,KeyEvent.VK_R,KeyEvent.VK_ENTER};pressKeys(rb,ks,500);rb.delay(1000);//运行CLS命令 cls enterks = new int[]{KeyEvent.VK_C,KeyEvent.VK_L,KeyEvent.VK_S,KeyEvent.VK_ENTER};pressKeys(rb,ks,500);rb.delay(1000);//运行EXIT命令 exit enterks = new int[]{KeyEvent.VK_E,KeyEvent.VK_X,KeyEvent.VK_I,KeyEvent.VK_T,KeyEvent.VK_ENTER};pressKeys(rb,ks,500);rb.delay(1000);//右键测试x=Toolkit.getDefaultToolkit().getScreenSize().width-10;rb.mouseMove(x, y);//如果是双键鼠标,请改用InputEvent.BUTTON2_MASK试试,我没有这种鼠标pressMouse(rb,InputEvent.BUTTON3_MASK,500);//显示日期调整对话框 apressKeys(rb,new int[]{KeyEvent.VK_A},1000);rb.delay(2000);pressKeys(rb,new int[]{KeyEvent.VK_ESCAPE},0);rb.delay(1000);new Thread(){public void run(){rb.delay(1000);//回车rb.keyPress(KeyEvent.VK_ENTER);rb.keyRelease(KeyEvent.VK_ENTER);}}.start();JOptionPane.showMessageDialog(null,"演示完毕!");}//鼠标单击,要双击就连续调用private static void pressMouse(Robot r,int m,int delay){r.mousePress(m);r.delay(10);r.mouseRelease(m);r.delay(delay);}//键盘输入private static void pressKeys(Robot r,int[] ks,int delay){for(int i=0; i<ks.length; i++){r.keyPress(ks[i]);r.delay(10);r.keyRelease(ks[i]);r.delay(delay);}}}

怎么用javascript进行拖拽2_javascript技巧

var iMouseDown = false; var dragObject = null; var curTarget = null; function makeDraggable(item){ if(!item) return; item.onmousedown = function(ev){ dragObject = this; mouseOffset = getMouseOffset(this, ev); return false; } } function getMouseOffset(target, ev){ ev = ev || window.event; var docPos = getPosition(target); var mousePos = mouseCoords(ev); return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y}; } function getPosition(e){ var left = 0; var top = 0; while (e.offsetParent){ left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0); top += e.offsetTop + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0); e = e.offsetParent; } left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0); top += e.offsetTop + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0); return {x:left, y:top}; } function mouseCoords(ev){ if(ev.pageX || ev.pageY){ return {x:ev.pageX, y:ev.pageY}; } return { x:ev.clientX + document.body.scrollLeft - document.body.clientLeft, y:ev.clientY + document.body.scrollTop - document.body.clientTop }; } function mouseDown(ev){ ev = ev || window.event; var target = ev.target || ev.srcElement; if(target.onmousedown || target.getAttribute("DragObj")){ return false; } } function mouseUp(ev){ dragObject = null; iMouseDown = false; } function mouseMove(ev){ ev = ev || window.event; /* We are setting target to whatever item the mouse is currently on Firefox uses event.target here, MSIE uses event.srcElement */ var target = ev.target || ev.srcElement; var mousePos = mouseCoords(ev); if(dragObject){ dragObject.style.position = "absolute"; dragObject.style.top = mousePos.y - mouseOffset.y; dragObject.style.left = mousePos.x - mouseOffset.x; } // track the current mouse state so we can compare against it next time lMouseState = iMouseDown; // this prevents items on the page from being highlighted while dragging if(curTarget || dragObject) return false; } document.onmousemove = mouseMove; document.onmousedown = mouseDown; document.onmouseup = mouseUp; window.onload = function() { makeDraggable(document.getElementById("DragImage5")); makeDraggable(document.getElementById("DragImage6")); makeDraggable(document.getElementById("DragImage7")); makeDraggable(document.getElementById("DragImage8")); } Demo - Drag any of the images [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]你会注意到这个代码几乎是前面的全集,将前面的合在一起就实现了拖拽效果了. 当我们点击一个item时,我们就获取了很多变量,如鼠标位置,鼠标位置自然就包含了那个item的坐标信息了.如果我们点击了一个20*20px图像的正中间,那么鼠标的相对坐标为{x:10,y:10}.当我们点击这个图像的左上角那么鼠标的相对坐标为{x:0,y:0}.当我们点击时,我们用这个方法取得一些鼠标与图片校对的信息.如果我们不能加载页面item,那么信息将是document信息,会忽略了点击的item信息. mouseOffset函数使用了另一个函数getPosition.getPosition的作用是返回item相对页面左上角的坐标,如果我们尝试获取item.offsetLeft或者item.style.left,那么我们将取得item相对与父级的位置,不是整个document.所有的脚本我们都是相对整个document,这样会更好一些. 为了完成getPosition任务,必须循环取得item的父级,我们将加载内容到item的左/上的位置.我们需要管理想要的top与left列表. 自从定义了mousemove这个函数,mouseMove就会一直运行.第一我们确定item的style.position为absolute,第二我们移动item到前面定义好的位置.当mouse点击被释放,dragObject被设置为null,mouseMove将不在做任何事. Dropping an Item 前面的例子目的很简单,就是拖拽item到我们希望到的地方.我们经常还有其他目的如删除item,比如我们可以将item拖到垃圾桶里,或者其他页面定义的位置. 很不幸,我们有一个很大的难题,当我们拖拽,item会在鼠标之下,比如mouseove,mousedown,mouseup或者其他mouse action.如果我们拖拽一个item到垃圾桶上,鼠标信息还在item上,不在垃圾桶上. 怎么解决这个问题呢?有几个方法可以来解决.第一,这是以前比较推荐的,我们在移动鼠标时item会跟随鼠标,并占用了mouseover/mousemove等鼠标事件,我们不这样做,只是让item跟随着鼠标,并不占用mouseover等鼠标事件,这样会解决问题,但是这样并不好看,我们还是希望item能直接跟在mouse下. 另一个选择是不做item的拖拽.你可以改变鼠标指针来显示需要拖拽的item,然后放在鼠标释放的位置.这个解决方案,也是因为美学原因不予接受. 最后的解决方案是,我们并不去除拖拽效果.这种方法比前两种繁杂许多,我们需要定义我们需要释放目标的列表,当鼠标释放时,手工去检查释放的位置是否是在目标列表位置上,如果在,说明是释放在目标位置上了. 代码如下:/* All code from the previous example is needed with the exception of the mouseUp function which is replaced below */ var dropTargets = []; function addDropTarget(dropTarget){ dropTargets.push(dropTarget); } function mouseUp(ev){ ev = ev || window.event; var mousePos = mouseCoords(ev); for(var i=0; i targPos.x) && (mousePos.x < (targPos.x + targWidth)) && (mousePos.y > targPos.y) && (mousePos.y < (targPos.y + targHeight))){ // dragObject was dropped onto curTarget! } } dragObject = null; } var iMouseDown = false; var dragObject = null; Number.prototype.NaN0=function(){return isNaN(this)?0:this;} // Demo 0 variables var DragDrops = []; var curTarget = null; var lastTarget = null; function makeDraggable(item){ if(!item) return; item.onmousedown = function(ev){ dragObject = this; mouseOffset = getMouseOffset(this, ev); return false; } } function getMouseOffset(target, ev){ ev = ev || window.event; var docPos = getPosition(target); var mousePos = mouseCoords(ev); return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y}; } function getPosition(e){ var left = 0; var top = 0; while (e.offsetParent){ left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0); top += e.offsetTop + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0); e = e.offsetParent; } left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0); top += e.offsetTop + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0); return {x:left, y:top}; } function mouseCoords(ev){ if(ev.pageX || ev.pageY){ return {x:ev.pageX, y:ev.pageY}; } return { x:ev.clientX + document.body.scrollLeft - document.body.clientLeft, y:ev.clientY + document.body.scrollTop - document.body.clientTop }; } function mouseDown(ev){ ev = ev || window.event; var target = ev.target || ev.srcElement; if(target.onmousedown || target.getAttribute("DragObj")){ return false; } } function mouseUp(ev){ //dragObject = null; if(dragObject){ ev = ev || window.event; var mousePos = mouseCoords(ev); var dT = dragObject.getAttribute("droptarget"); if(dT){ var targObj = document.getElementById(dT); var objPos = getPosition(targObj); if((mousePos.x > objPos.x) && (mousePos.y > objPos.y) && (mousePos.x=0; i--){ with(activeCont.childNodes[i]){ if(nodeName=="#text") continue; // if the current item is "After" the item being dragged if( curTarget != activeCont.childNodes[i] && ((getAttribute("startLeft") + getAttribute("startWidth")) > xPos) && ((getAttribute("startTop") + getAttribute("startHeight")) > yPos)){ beforeNode = activeCont.childNodes[i]; } } } // the item being dragged belongs before another item if(beforeNode){ if(beforeNode!=curTarget.nextSibling){ activeCont.insertBefore(curTarget, beforeNode); } // the item being dragged belongs at the end of the current container } else { if((curTarget.nextSibling) || (curTarget.parentNode!=activeCont)){ activeCont.appendChild(curTarget); } } // make our drag item visible if(curTarget.style.display!=""){ curTarget.style.display = ""; } } else { // our drag item is not in a container, so hide it. if(curTarget.style.display!="none"){ curTarget.style.display = "none"; } } } // track the current mouse state so we can compare against it next time lMouseState = iMouseDown; // mouseMove target lastTarget = target; // track the current mouse state so we can compare against it next time lMouseState = iMouseDown; // this helps prevent items on the page from being highlighted while dragging return false; } function mouseUp(ev){ if(curTarget){ // hide our helper object - it is no longer needed dragHelper.style.display = "none"; // if the drag item is invisible put it back where it was before moving it if(curTarget.style.display == "none"){ if(rootSibling){ rootParent.insertBefore(curTarget, rootSibling); } else { rootParent.appendChild(curTarget); } } // make sure the drag item is visible curTarget.style.display = ""; } curTarget = null; iMouseDown = false; } function mouseDown(){ iMouseDown = true; if(lastTarget){ return false; } } document.onmousemove = mouseMove; document.onmousedown = mouseDown; document.onmouseup = mouseUp; window.onload = function(){ // Create our helper object that will show the item while dragging dragHelper = document.createElement("DIV"); dragHelper.style.cssText = "position:absolute;display:none;"; CreateDragContainer( document.getElementById("DragContainer1"), document.getElementById("DragContainer2"), document.getElementById("DragContainer3") ); document.body.appendChild(dragHelper); } Item #1 Item #2 Item #3 Item #4 Item #5 Item #6 Item #7 Item #8 Item #9 Item #10 Item #11 Item #12 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]你现在拥有了拖拽的所有东西.下面的三个demo是记录事件历史.当你的鼠标在item上移动,将记录所生的事件,如果你不明白可以尝试一下鼠标的划过或者拖动,看有什么发生.LI { MARGIN-B

sabri jaballah造句 sabri jaballahの例文 "sabri jaballah"是什麼意思

In the 28th minute, Khaled Badra doubled the score, while Sabri Jaballah made the third point in the 67th minute. Only the minor initiative was soon lost after strikers Sabri Jaballah and Riadh Bouazizi missed their chances to steal an equapzer. Defenders : Tarek Thabet; Hatem Trabelsi; Sami Trabelsi; Khaled Badra; Farid Chouchene; Sabri Jaballah ; Mounir Bou Kadida; Jose Clayton; Hakim Nouira; Hamdi Marzouki; Tarek ben Chrouda. The squad : Hassen Bejaoui, Khaled Fadhel; Tarek Thabet, Radhi Jaidi, Khaled Badra, Walpd Azaiez, Mohamed Mkacher, Emir Mkademi, Abdessalem Arafa, Sabri Jaballah , Anis Ayari; Anis Boujelbene, Ahmed Hammi, Lassad Ouertani, Oussama Sellami, Skander Souayah, Khaled Mouelhi, Anis Ben Chouikha; Riadh Jelassi, Zied Jaziri, Imed Ben Younes, Bassem Daassi. Tunisia-Chokri el Ouaer, Imed Ben Younes ( Riahd Jlassi 61 ), Sami Trabelsi, Ferid Chouchane, Jose Clayton, Zoubeir Beya ( Faycal Ben Ahmed ( 61 ), Kaies Ghoudbhane ( Hatem Trabelsi 45, ) Adel Selpmi ( Abdelkader Bel Hassen 45 ), Sirajeddine Chihi, Skander Souayah, Khaled Badra ( Sabri Jaballah 45) Tunisia : Ap Boumnijel, Hatem Trabelsi, Farid Chouchane, Sami Trabelsi, Mounir Boukadida ( Sabri JabAllah 45 ), Jose Clayton ( Faycal Ben Ahmed 74 ), Kaeis Ghobdane, Sirajeddine Chihi, Zoubeir Baya ( Skander Souayah 45 ), Morad Malki ( Riadh Jalassi 45 ), Mahdi Ben Spmane ( Adel Selpmi, 45 ). Tunisia : Hassen Bejaoui, Khaled Bedra ( Ben Choukha, 57th ), Radhi Jaidi, Thabet Tarek ( Mohamed Mkacher, 57th ), Zied Jaziri ( Riadh Jlassi, 57th ), Riadh Bouazizi, Ahmed Hammi, Zoubeir Beya ( Sabri Jaballah , 80th ), Spm Ben Achour ( Imed Ben Younes, 84th ), Imed Mhedhebi ( Jose Clayton, 46th ). It"s difficult to find sabri jaballah in a sentence. 用 sabri jaballah 造句挺难的

JAX的故事情节

Jax是一名军官,就职于具有神秘色彩的美国特种部队。剧情中,他和Sonya供职于同一部队,是亲密的战友,彼此有着深厚的感情,有时候,Jax甚至是Sonya的直接领导。他们有着相同的使命,那就是追踪并剿灭长期危害地球安宁与和平的大型犯罪组织Black Dragon。在一次又一次的行动之中,Jax与Sonya逮捕了诸多该组织的重要头目,但同时,特种部队也付出了惨痛的代价,Jax和Sonya的很多队友也于行动中丧命。这一切的一切令Jax与Black Dragon领袖Kano彼此恨之入骨。能成为犯罪组织头目必定会有独到自处,Kano也不例外,他有着极强的反侦察能力,这使得在长期斗争中,Jax没有讨到半点便宜。可是,Jax也有他值炫耀的资本,那就是在一次行动中,Jax险些就能成功捉住Kano,最终后者死里逃生,但Kano的半边脸在与战斗中被Jax击成重伤,不得不依靠机械改造手术来维系容貌和生命,留下了不可磨灭的伤疤。在各种行动中,特种部队擒获了不少Black Dragon高层人物,其中包括No Face、Tasia、Jarek和Tremor。诸多帮手被抓令Kano在用人上感觉捉襟见肘。为了维持Black Dragon的正常运转,Kano决定对自己的战友实施营救。反侦查能力极强的Kano成功了,他在特种部队眼皮底下救走了No Face、Tasia、Jarek和Tremor等人。与此同时,Jax正在一次常规任务的返回途中,路上他遇到了自己的助手Gemini。Gemini将监牢的一片混乱及Kano同伴的成功越狱情况告知给了Jax,一颤之下,Jax意识到了事态的严重性。Gemini继续告诉Jax这些罪犯已经逃到了城东一处大仓库。Jax决定亲自前往仓库对Kano实施抓捕。出发不久Jax收到了来自探员Lieutenant Sanchez发送来的消息,原来后者已经带领小队前往仓库追捕Kano,他通知Jax尽快赶到配合行动。接到消息后,Jax加紧脚步,可是在赶到指定地点后,Jax却大惊失色,原来先前到达的Lieutenant Sanchez和他的队友已经全部遇害。根据作案手法判断,Jax认定凶手就是由Kano带领的Black Dragon成员。悲愤交加之下,Jax立誓要为死去的战友复仇。Jax愤怒的冲进了仓库内。越狱逃出的No Face突然出现并挡住了Jax的去路,显然来者不善。一场恶斗后,No Face死在了Jax拳下。再仔细搜索仓库之后,Jax断定Kano已经逃跑,而最有可能的逃生路线是仓库内的一处下水道。根据自己判断,Jax继续前进,不出他所料,追了不久他就又发现了目标,这一次被他遇到的同样是刚刚越狱成功的Black Dragon重要成员Tasia。又是一场恶斗,胜利仍旧是Jax。经过战友丧命和两场恶斗后的Jax略微失去了理智,他并没有呼叫援助而是继续孤身进入陷阱。行进途中,Gemini和Jax取得了联系。Gemini此时已经探测到了Jax的当前位置,他告知Jax下水道通往一座办公大楼,眼下大楼已经被Black Dragon所控制,成为了他们的一座指挥中心。进入Black Dragon的秘密指挥中心之后,Jax果然遇到了大批潜伏于此的Black Dragon匪徒。而在这里负责指挥的则是在Black Dragon的主要成员之一Jarek,在以前的多次行动之中,Jax和Jarek有过几次交手,双方彼此颇为熟悉又同时对对方恨之入骨。为了能够继续进行勘察工作,Jax像Jarek发起了进攻。双方的交战以Jax大获全胜的结局告终。Jax得以继续前进。仔细调查之后,Jax发现Kano及其他Black Dragon成员并不藏身于此,传送门。不惧风险的Jax穿过了传送门后发现自己置身于Outworld内荒废已久的遗忘之城Sinkiang(游戏里对这座城市的设定比较复杂,日后会另发博文详细介绍)。原来,Kano是想通过传送到Sinkiang以步入Outworld。显然,Kano不会贸然前往危机四伏的Outworld,他此来毕竟有不可告人的秘密。(本文的主人公Jax并不知晓Outworld,只是知道自己已经离开了地球,来到了一篇神秘国度)在Sinkiang调查过程中,Jax遇见了另一名Black Dragon重要成员——Jarek,后者此刻正驻守于此,眼见Jax到来,他立即发起攻击。在击败了Jarek之后,Jax感觉到此地必然隐藏的极大的秘密,和Black Dragon的新阴谋有关。果然,在经过自己搜查之后,Jax发现了一道神秘的传送门,穿过之后,他来到了Outworld。在这里Black Dragon早已布置了严密的防守,Jax在刚结束传送之后便遭到了Tremor的截击,而这次Jax再次经受住了考验,击败了Tremor,获得了继续前进的机会。沿着路一直前行(Jax并不知道Outworld,之时感觉到自己已经不在置身于地球内),Jax果然遇到了自己想要追寻的人——Kano。历尽千辛才赶到此处,Jax是不会放弃这次抓捕机会的。见到Jax到来,Kano道出了自己的阴谋,此时,他手中握有一枚红色的水晶,他向Jax介绍到,他手中的这枚水晶是一枚珍宝,名字叫做Eye of Chitian,其中蕴含强大的力量,借助这股力量不但能使拥有者获得超人的力量还可以为拥有者创造同往各处的传送门。显然,Kano是意图利用这枚宝物危害世界,Jax意识到Kano一旦成功启动宝物他不但能够随时逃走而且还将拥有自己难以匹敌的力量。情况危急,Jax顾不得搞清楚自己身处何处,立刻冲上前与Kano展开搏斗,抢夺Eye of Chitian。仇人间展开了殊死搏斗,最终技高一筹的依旧是 Jax。他成功俘虏了Kano,在仔细研究Eye of Chitian过后,他成功启动水晶,将自己传送回到地球,并将Kano带到特种部队监禁起来。就这样,他粉碎了Kano的一次阴谋,受到了特种部队上级的嘉奖。而Eye of Chitian被特种部队收走,着手对其进行研究。MK:特种部队的故事也就此高一段落。时间推移到MK1时代,被囚禁的Kano不久便利用自己娴熟的反侦察技巧成功越狱。特种部队立即对其进行抓捕,而此次负责的变为了Jax的亲密战友 Sonya。然后Sonya在一次抓捕行动中突然失去了联络,其队友也纷纷不知所踪,Jax顿时感到他们可能已陷入困境,于是当即决定前往救援。然而在赶往事发地点的途中,Jax惊讶的发现Sonya在最后一次通信时所说的Kano逃亡途中所登陆的小岛在地图上并不存在。带着疑惑,Jax逐渐接近事发地点。就在这时,他发现不远处飘着一艘小船,船上有一名男子。直觉告诉Jax这名男子可能会给自己提供自己想要的信息。接近之后,Jax认出这名男子原来就是大名鼎鼎的功夫影星Johnny Cage。Jax以特警的身份向Cage提出审问。而Cage给出的答复则让Jax摸不着头脑,他讲出的MK大赛、Outworld侵略者等消息Jax听上去感觉完全是胡话。Jax开始怀疑Cage的动机。而就在这时,Jax的对讲机突然响了,给他发来信息的正是他正在苦苦追寻的Sonya。在对讲机的另一面Sonya匆忙的讲到自己被卷入了一场比武大赛,已经和Kano一起被大赛的举办者绑架离开地球,来到了一个叫做Outworld的空间,眼下,她正在和Kano一起设法逃脱,说道这里,通话中断。事已至此,Jax终于相信了Cage的话,他想后者为自己之前的怀疑态度道了歉。Sonya 已经离开地球,且并没有有效的办法能够前往Outworld,Jax不得不暂时搁浅救援计划,返回特种部队回报消息,筹划下一步的行动。然而就在返程途中,Cage就遭到了来自Outworld侵略者的追杀(Shao Kahn筹划MK2大赛,决心铲除有实力的地球勇士),Jax出手相助。追杀Cage的正是我们非常熟悉的Kintaro,双方打得难解难分,直到 Raiden带领地球勇士感到之时,战局才发生了根本变化。Kintaro放弃追杀,通过传送门逃回Outworld,为了救Sonya,Jax又犯了莽撞的老毛病,他冲进传送门,进入到了Outworld。也就因为这样,才有了Jax参加MK2大赛的故事。在 Outworld之旅中,Jax和Raiden、Liu Kang、Kung Lao等勇士威武,参加了MK大赛,在大赛上,他见到了被俘虏的Sonya。最终,Liu Kang击败了Shao Kahn,粉碎了后者的阴谋,Jax也借机就出了Sonya,可是Kano趁乱逃脱了。尽管成功将Sonya救出,但Jax深感自己的任务远没有完成。一来成功脱逃的Kano必然会无时无刻威胁地球安危,另一方面,他也见识了自己生平所未见过的来自 Outworld的入侵者。在返回特种部队后,Jax将自己所经历和目睹的一切反映给了特种部队上级领导,可这样做的结果是上级领导完全不相信Jax口中描述的各式怪物,他们甚至将原本信赖有佳的Jax列入了怪人圈里。在反复数次解释无果后,Jax放弃了口舌之争,决心默默追随Raiden,保卫地球安危。时间推移到MK3,在获知Shao Kahn将要亲自率领部队入侵地球之后,Jax对自己的手臂实施了改造,他用一双由钢铁打造,依靠生物科技移植的臂膀代替了原本的双臂。这样做为的就是更有效的迎接外来侵略者的挑战。故事里,他追随Raiden积极抵抗入侵,最终成功粉碎了Shao Kahn的阴谋。Outworld的入侵让地球人重新认识了世界,特种部队也终于相信了Jax先前的回报,他们开始着手针对Outworld进行研究,成了Outworld研究部,Jax和Sonya被调配到新部门作为第一批探员开始工作。MK4 阶段,Jax和Sonya作为特种队员,身背一条重要使命——清剿Black Dragon最后的残党,他们的首要目标就是Jarek,他是现阶段可知的Black Dragon所剩的唯一头目。而与此同时,Edenia遭受了来自Netherrealm的入侵。作为Edenia的忠实盟友,Raiden号召地球勇士奔赴Edenia救援。Jax本打算响应Raiden,可是自己的战友Sonya在缉捕Jarek的过程中失踪了,这令Jax焦急万分。不久后Jax便接到可靠消息称Sonya已经追随Raiden去援助Edenia,原来Jarek获知Kano并没有死,眼下Kano本人正在Edenia,在追兵不断的窘迫情形下,Jarek决定前往投靠Kano,Sonya在追踪途中正好遇到了Raiden,在得知Edenia有难后便加入了Raiden组织的正义行动。Jax悬着的一颗心也终于放了下来,于是他也即可启程追随Raiden来到Edenia,一方面是要帮助Edenia对抗敌人,另一方面也是为了缉捕在逃的Jarek。到达Edenia后,Jax发现作为地球的Jarek在Edenia同样遭到了Netherrealm军队的追杀,大敌当前,Jax和Jarek暂时搁置争议,共同抵抗入侵者。在Raiden的带领下,地球勇士们奋勇的击败了Shinnok,粉碎了他吞并世界的阴谋。在Shinnok被击败后,为了防止Jarek危害社会,Jax要将其拘捕。Jarek自然不会束手就擒,他决心与Jax决议生死。最终,Jax击败Jarek,并将后者从悬崖上掷下。在完成自己的任务之后,Jax返回了地球。在此之后,特种部队Outworld研究部有了长足的发展,科学人员利用Jax夺回的Eye of Chitian之眼创造了传送门,能够供使用者自由穿梭于地球和Outworld。就此,特种部队正式踏入Outworld进行研究工作。在一次行动中,Jax和队友发现了被困于沙中的机器人Cyrax,他们将Cyrax救出并带回地球研究。很快,他们就研究透彻,通过修复将Cyrax恢复人形。就此,Cyrax加入了特种部队,成为了Jax身边的一名得力战友。故事推移到MK:死亡联盟。探员Cyrax和 Kenshi先后在进入Outworld执行任务时失去了联络,未能返回。身为长官,Jax焦急万分。令Jax没想到的是更大的麻烦接踵而至了,特种部队内部的核武器被人引爆,整个Outworld研究部被夷为平地,正在工作中的探员全部丧命,Jax因为爆炸之时恰好不在基地而幸运的活了下来。眼见自己努力创建的事业,以及朝夕相处的战友均化为南柯一梦,Jax怒不可遏,他发誓要找到作案者,让他血债血偿。在经过自己调查后,Jax认定作案凶手是Hus Hao。原来,Hsu Hao是犯罪组织Red Dragon潜藏在特种部队内部的间谍,长久以来,他潜伏工作完成的十分出色,蒙蔽了所有的眼睛。眼下,他以完成任务,成功逃回Outworld。Jax 意图立即实施追捕,可是特种部队建立的通往Outworld的传送门在爆炸中也毁于一旦。就在Jax进退两难之时,Jax接到了Raiden传来的信息,了解到了死亡联盟的相关消息,随后欣然接受了Raiden的邀请,与众人回合,一同前往Outworld讨伐死亡联盟。Jax此行的目的显然不仅仅只有这一个,他要亲手杀死Hsu Hao,为战友们报仇。来到Outworld之后,Jax获得了单独行动的机会,在精心调查之后,他找到了Red Dragon组织的基地。Jax想只要自己等在这里,就一定能够等到Hsu Hao出现。果不其然,Jax等到了返回交付任务的Hsu Hao,潜藏在暗处的Jax对后者实施了偷袭,他不仅一举打到Hsu Hao,并残忍的将Hsu Hao的机械心脏残忍的从身体了抛出,至后者于死地。彻底报了Hsu Hao假扮特种队员,破坏基地、残杀队友的恶行。了解了自己的心愿以后,Jax返回驻地,与队友们汇合,共同讨伐死亡联盟。战斗远比预期的要险恶,Tarkatan人投靠了死亡联盟,在指示下,对正义勇士进行了围剿。由于敌我差距过于悬殊,包括Jax在内的勇士们死于了战斗之中,只有Raiden获得了直面死亡联盟的机会。Onaga 重新掌控Outworld之后,施法复活了并控制在反抗死亡联盟中丧命的勇士,这其中自然包括Jax在内。Onaga利用这些人帮助自己抵抗异己,实施入侵。直到获得了Liu Kang及Ermac的救助后,Jax和其他人方才恢复了本来的意识。之后Jax与众人一道,为击败Onaga,肃清威胁而努力。Onaga 被打败以后,Jax与Sonya返回了特种部队。不久,Sonya与Jax接到了上级指派的新任务。Sektor在失去Lin Kuei大主教的地位后,逃窜到日本,组建了属于自己的杀手组织Tekunin。Tekunin完全有机器人组成,严重威胁着世界的安全,特种部队派遣 Jax和Sonya对Tekunin进行清剿。在这次行动中,Jax又犯了自己鲁莽的老毛病,孤军深入敌人巢穴,在清剿中不慎被Tekunin成员俘虏。出于对Jax机械手臂的好奇,Sektor对Jax身体内的生物电子设备进行了研究,在这一过程中,Jax身体的电子设备向外界发送了报警信号。在接收到这一信号后,Sonya惊恐万分,她隐隐的感觉到Jax在行动中一定是遇到了苦难,并有可能已经身亡,她立即带领队友出发对Jax实施救援。最终,在 Taven和Sonya的共同努力下,Jax摆脱了险境。在末日战场的末尾,Jax加入了正义盟军,与战友们一起为抢夺Blaze体内的神之力量而与邪恶盟军展开了决斗,最终,Jax于战斗中丧命。结束了自己在老MK中的故事。 在 MK9中,Jax的故事有了许多微妙的变化,其中之一就是Jax于MK1中被捕。故事设定里,Jax和Sonya一同因追捕Kano而误入了举办MK大赛的小岛,二人中,Jax被Shang Tsung的手下所捕,关入大牢。Shang Tsung以Jax生命安全为诱饵,强迫Sonya参加MK大赛,利用Sonya来对抗参加MK大赛的地球勇士。面对敌人的胁迫,Sonya不屈不挠,他努力寻找Jax下落,最终在一处隐秘的监狱内发现了被囚禁的Jax。在Sonya努力击败了看守者,突破阻挠,将 Jax成功救出。在MK1末尾Liu Kang顺利击败Goro和Shang Tsung,获得了大赛冠军,Sonya和Jax也就此摆脱了敌人纠缠,成功脱离危险,不过,同样逃走的还有Kano。为了纪念Liu Kang拯救世界的壮举,少林举办了一场庆功大会,Jax和Sonya一同出席。就在大会结束,大家意犹未尽之时,Shang Tsung带领大批Tarkatan人突袭了少林,由于寡不敌众,少林被毁于一旦。Jax在战斗中虽然拼劲全力,可还是被Tarkatan战士所淹没,战斗中被打倒并失去知觉。在醒来之后,他不幸的发现Sonya已经被Shang Tsung一伙掳走,带回了Outworld。Shang Tsung这样做是要想地球挑衅,并通知对手在Outworld将举办一场新的MK大赛,要求地球勇士们参加。由于大赛关乎着地球的安危,Raiden只得带着勇士们参加,Jax积极做出了响应,他不仅关心地球,也关心着Sonya。来到Outworld后,Jax犯了易冲动的老毛病,他先是冒失的闯入了敌人根据地引发了战斗,后是因为脾气暴躁而与Cage产生了不必要的冲突。不过,最终Jax还是顺利的从Sheeva手下救出了Sonya。Jax 依靠武力击败Sheeva救出Sonya之后,奇怪地发现自己的雷达上接收到了2个电子信号(来源于Cyrax和Sektor),对于不存在科技的 Outworld而言,这太失常了。为了一探究竟,Raiden人员分头行动,分两组分别追踪两个神秘信号,Sonya和Jax被分定为一组,追踪其中一个信号。在探寻过程中,Jax无意间惊扰了正在休养之中的Ermac,后者因此显得十分恼怒,而Jax知道 Ermac其实是Shao Kahn创造的供他驱使的灵魂战士,于是便又犯了冲动的老毛病,不假思索的就要像Eramc发动武力袭击。他的这次行动过于低估了Eramc的实力,后者利用超能力很快便将Jax支付,并继续发力,硬生生的将Jax的双臂连根扒断。剧痛之下Jax很快失去知觉,Sonya急忙冲上前替Jax止血。慌乱之间,二人已经失去了抵抗能力。幸亏此时得到了光阳的帮助,他成功击退了Ermac帮助二人避开了一场危难。由于Jax伤势过重,Sonya与Jax不得不提前结束了MK2之旅,提前通过光阳指示的传送门返回了地球,Raiden恍然间失去了两个帮手。针对Jax手臂伤势的手术随即展开,最终,特种部队将生物电子科技创造的机械手臂安装在了Jax身体之上,顶替了被Ermac摧毁的人体手臂。这一设定与老MK有很大的出入。手臂接植完成后,得益于现代医疗的高水平,Jax很快便获得了康复。故事推移到MK3,Shao Kahn复活了女王Sindel并试图带领部队直接入侵地球。Jax加入了Raiden的团队,一同保卫地球的安危。剧情中,精通电子技术的Jax为已经被Lin Kuei强制机械化的光阳实施了手术,帮助后者去除了控制思维和肢体行动的电脑芯片,令光阳恢复了本有的意识。在其后的剧情中,受到Shao Kahn黑魔法强化过的Sindel袭击了正义勇士们的秘密基地,面对Sindel,Jax奋起反抗,可不幸的是,二人实力悬殊太大,Jax最终丧命于Sindel手下,新MK9中他的故事也就此告一段落。虽然游戏里他被称为Jax,但是Jax并不是他的本名,其本本名为Jackson Briggs,是非洲裔美国人。玩家对于他最津津乐道的无疑就是他那身结实的肌肉以及铁臂。

java过滤sql关键字的正则替换掉

java过滤sql关键字的正则替换掉方法如下:可以在C#中这样做:Regexregex = newRegex(@"]*>[^");stringcleanedHtml = regex.Replace(html, "");可是我并不想再写个循环去遍历每条记录,然后保存每条记录,我想在数据库中一步到位,而sql只提供了简单的replace函数,这个函数明显不能达到咱的要求,那就去写一个自定义函数吧。函数源代码如下:CREATE functiondbo.regexReplace(@source ntext,--原字符串@regexp varchar(1000),--正则表达式@replace varchar(1000),--替换值@globalReplace bit=1,--是否是全局替换@ignoreCase bit=0 --是否忽略大小写)returnS varchar(1000)ASbegindeclare@hr integedeclare@objRegExp integerdeclare@result varchar(5000)exec@hr =sp_OACreate"VBScript.RegExp",@objRegExp OUTPUTIF@hr <>0 beginexec@hr =sp_OADestroy@objRegExpreturnnullendexec@hr =sp_OASetProperty@objRegExp,"Pattern",@regexpIF@hr <>0 beginexec@hr =sp_OADestroy@objRegExpreturnnullendexec@hr =sp_OASetProperty@objRegExp,"Global",@globalReplaceIF@hr <>0 beginexec@hr =sp_OADestroy@objRegExpreturnnullendexec@hr =sp_OASetProperty@objRegExp,"IgnoreCase",@ignoreCaseIF@hr <>0 beginexec@hr =sp_OADestroy@objRegExpreturnnullendexec@hr =sp_OAMethod@objRegExp,"Replace",@result OUTPUT,@source,@replaceIF@hr <>0 beginexec@hr =sp_OADestroy@objRegExpreturnnullendexec@hr =sp_OADestroy@objRegExpIF@hr <>0 beginreturnnullendreturn@resultend需要注意的是,即使写好了这个函数,也并不能马上使用。执行这个函数时可能会出现以下的错误:Msg 15281, Level 16, State 1, Line 1SQL Server blocked access to procedure "sys.sp_OACreate" of component "Ole Automation Procedures" because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of "Ole Automation Procedures" by using sp_configure. For more information about enabling "Ole Automation Procedures", see "Surface Area Configuration" in SQL Server Books Online.这是因为未开启Ole Automation Procedures选项,MSDN中的Ole Automation Procedures选项。执行下面的语句开启这个选项:sp_configure"show advanced options",1;GORECONFIGURE;GOsp_configure"Ole Automation Procedures",1;GORECONFIGURE;GO所有的准备工作都已经做好,那就试验一下吧。Example1:忽略大小写并替换selectdbo.regexReplace("123456","]*>[^","",1,1)Example2: 使用贪婪匹配html代码:Also Available - Smith & Hogan: Criminal Law Cases & Materials 10th edThere is, as ever, detailed analysis of the many recent case developments, in particular,a revision of the chapter dealing with secondary liability and joint enterprise.调用代码:selectdbo.regexReplace(html,"]*>(.| )*?","",1,1)Example3:去除html标签selectdbo.regexReplace("Key Contact:Mr Jack, ZhouGeneral ManagerMr Adu, HoMarketing DirectorOverseas SalesMsWinny, LuoSales ManagerOverseas Sales","]*>","",1,0)Example4:数据库字段值替换updateBooks。

Usher的《Slow Jam》 歌词

歌曲:Slow Jam歌手:Monica / Usher发行时间:1997-10-11所属专辑:《My Way》AhWhat cha doingReally?You know I"m coming over right(now baby tell me what you wanna do with me)Now you got it hot for me already babyOkayI"ll be there in about uh, give me ten minutesBe readyAyWear that little thing I like(now baby tell me what you wanna do with me)Verse 1It"s seven o"clockOn the dotI"m in my drop topCruisin the streets - oh yeahI gotta real pretty - pretty little thang that"s waiting for meI pull upAnticipated good loveDon"t keep me waitingI got plans to put my hands in placesI never seen girl you know what I mean(Hook)Let me take you to a place nice and quietThere ain"t no one there to interruptAin"t gotta rushI just want to take it nice and slow(now baby tell me what you wanna do with me)See I"ve been waiting for this for so longWe makin" love until the sun comes upBabyI just wanna take it nice and slow(now baby tell me what you wanna do with me)Verse 2Now here we areDrivin" round townContenplatin" where I"m gonna lay you downGirl you got me sayin"My, my, my, - MyWish that I - ICould pull overAnd get this thing started right nowI wanna do something freaky to you babyI don"t think they heard meI-I wanna do something freaky to you babySo call out my name(Rap)They call me US-HER-RA-YM-ONDNow baby tell me what you wanna do with meGotta a nigga fienin" like JodeciEvery time that you roll with me, holdin" meTryin to take control of meNice and Slow and you knowNever lettin" goNever messin" up the flowThis is how the hook goCome on(Hook)Let me take you to a place nice and quietThere ain"t no one there to interruptAin"t gotta rushI just want to take it nice and slow(now baby tell me what you wanna do with me)See I"ve been waiting for this for so longWe makin" love until the sun comes upBabyI just wanna take it nice and slow(now baby tell me what you wanna do with me)Now tell meDo you wanna get freakyCause I"ll freak you right I willI"ll freak you right I willI"ll freak you like no one has ever, ever made you feelI"ll freak you right I willI"ll freak you right I willI"ll freak you, freak you like no one has ever made you feel - yeah(now baby tell me what you wanna do with me)

Trojan.win32.FakeIME.d是什么病毒?为什么显示已删除,还会出现,而且还找不到这个文件?怎么样彻底清除

Trojan.win32.FakeIME.d你好朋友 这个应当是冲击波木马变种,一般杀毒软件不好清理,建议你用如下方法处理:(1)重启后,F8 进带网络安全模式(2)用360安全卫士依次进行:清除插件、清除垃圾、清除痕迹、系统修复、高级工具“开机启动项管理”一键优化、使用“木马查杀”杀木马,用360杀毒全盘杀毒。如果还没清除用下以方案:(3)重新启动,F8 进带网络安全模式(4)用360系统急救箱试一试 ,希望能帮助你

广工大《JAC》综述:比率型荧光温度计研究进展与展望

来自广东工业大学的研究人员 基于热耦合能级和非热耦合能级的比率型光学温度计的研究进行了综述 ,相关论文以题为A review and outlook of ratiometric optical thermometer based on thermally coupled levels and non-thermally coupled levels发表在Journal of Alloys and Compounds。 论文链接: https://doi.org/10.1016/j.jallcom.2021.162494 本文详细介绍了热耦合能级的基本原理,比率型光学温度计的分类以及目前所存在的问题。 根据能级对的不同分为热耦合能级(单发光中心)和非热耦合能级(单发光中心或双发光中心)比率型光学温度计。基于热耦合能级,我们系统分析了绝对灵敏度(Sa)和相对灵敏度(Sr)与温度和热耦合能极差(ΔE)之间的关系。总结每种能级对的使用温度范围,以及能级对的有效组合可以提高灵敏度和拓宽测量温度范围。 此外,分别讨论了单发光中心五种稀土离子(即Er3+,Tm3+,Ho3+, Nd3+和Eu3+)和双发光中心五种(即稀土/稀土、稀土/过渡金属、稀土/基质、多格位占据和多通道)比率型光学测温技术。其中,利用Nd3+发光中心通过基态吸收(GSA)和激发态吸收(ESA)双激发的单带发光强度比,提出了一种新型光学测温策略——单带比值法。与基于热耦合能级发光的比率型光学测温技术相比,单带比值法不再受热耦合能量差的限制,可以实现高信号分辨率。 尽管开发新型温度传感材料的策略多种多样,但仍存在一些亟待解决的问题。 首先,过渡金属(或稀土)离子在高温下会产生严重的热猝灭效应,最终导致荧光信号很难检测。因此,有必要寻找高热稳定性的新型材料。其次,尽管近年来上转换纳米粒子的光学测温技术在生物医学的各个方面都得到了广泛的报道,但这些材料在体内使用的潜在安全问题值得思考。最后,在宽温度范围内具有高灵敏度和良好信号分辨率的传感材料仍然较少。因此,需要更多研究者的共同努力。 此前,本课题组报道了一种具有稳态/瞬态荧光双模式光学测温的荧光微点阵柔性膜LiTaO3:Ti4+, Eu3+@PDMS。 基于荧光强度比IEu/ITi,这种比率型荧光温度计在303-443K温度范围内具有优异的温度灵敏度以及稳定的可重复性。其中,绝对灵敏度最大值Sa=0.671K-1、相对灵敏度最大值Sr=5.425%K-1、温度分辨率达0.14K;基于Ti4+荧光寿命对温度的依赖性,这种荧光温度计的绝对灵敏度最大值Sa=0.122K-1、相对灵敏度最大值Sr=3.637%K-1、温度分辨率最达0.027K。最后,基于该材料初步实现了稳态/瞬态荧光双模式测温和多重高安全防伪应用(Chem.Eng. J, 2019, 374, 992-1004)。 *感谢论文作者团队对本文的大力支持。

java swing初学:这段代码设置了窗体背景颜色,为什么运行的时候还是白色而不是绿色?求高人解释。

f.add(lab);这么加的话,根据JFrame的默认框架lab会被放在f的中间并铺满整个f,所以你看到的白色是lab的背景,不是f的背景。

java压缩文件的问题

这个方法是FilleUplod这个包里面的方法!就是得到文件的名字

java可以将新代码加入到正在运行的程序中吗?

你们老师一定在逗你,要么他说的是php?

Java自学先看什么书

所有语言的知识体系分为三大块:数据存储(内存,文件,数据库,分布回式,集群, 关系型 ,非关系型 。。)答业务逻辑 (业务需求,语言语法,算法,类库框架,性能优化等)信息交互(展示)(多端,app,小程序,公众号,移动端,pc端,web开发等。。)这三块知识作为学习来说,可以有侧重,但是不能有某一块完全不懂。推荐下我们自己出的书,《实战java程序开发》这是一本既注重实战,同时也注重底层“内功”(内存分析、JVM底层、数据结构)训练的书,本书能帮助初学者打通Java编程“任督二脉”。这本书集作者11年Java教学之精华,既适合初学者入门,也适合已经工作的开发者复习。同时也推荐这几本:《Java从入门到精通(第5版)》,这本书从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发需要掌握的知识。《Java编程思想(第4版)》,这本书的作者拥有多年教学经验,对c、c++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的实例解释了一个个晦涩抽象的概念。非常适合初学者阅读。另外,如果需要其他的自学资料,也可私信我获取,免费提供哦~望采纳~

java中void是什么意思

空。java中void的意思“什么都不返回”,在方法声明的时候表示该方法没有返回值。

Eclipse下Java连接oracle问题(高手指点)

看看是不是数据库名字的问题,用户名与数据库名字一样有时候会有问题的。路过~

关于java的图文混排

import java.io.File ;import java.awt.Container ;import java.awt.GridLayout ;import java.awt.event.WindowAdapter ;import java.awt.event.ItemListener ;import java.awt.event.ItemEvent ;import java.awt.event.WindowEvent ;import javax.swing.JFrame ;import javax.swing.JPanel ;import javax.swing.JRadioButton ;import javax.swing.ButtonGroup ;import javax.swing.BorderFactory ;import javax.swing.ImageIcon ;class MyRadio implements ItemListener{ private String right = "d:" + File.separator + "right.png" ; private String wrong = "d:" + File.separator + "wrong.gif" ; private JFrame frame = new JFrame("Welcome TO MLDN") ; private Container cont = frame.getContentPane() ; private JRadioButton jrb1 = new JRadioButton("男",new ImageIcon(right),true) ; private JRadioButton jrb2 = new JRadioButton("女",new ImageIcon(wrong),false) ; private JPanel pan = new JPanel() ; public MyRadio(){ pan.setBorder(BorderFactory.createTitledBorder("选择性别")) ; // 设置一个边框的显示条 pan.setLayout(new GridLayout(1,3)) ; pan.add(this.jrb1) ; pan.add(this.jrb2) ; ButtonGroup group = new ButtonGroup() ; group.add(this.jrb1) ; group.add(this.jrb2) ; jrb1.addItemListener(this) ; jrb2.addItemListener(this) ; cont.add(pan) ; this.frame.setSize(300,80) ; this.frame.setVisible(true) ; this.frame.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent obj){ System.exit(1) ; } }) ; } public void itemStateChanged(ItemEvent e){ if(e.getSource()==jrb1){ jrb1.setIcon(new ImageIcon(right)) ; jrb2.setIcon(new ImageIcon(wrong)) ; }else{ jrb1.setIcon(new ImageIcon(wrong)) ; jrb2.setIcon(new ImageIcon(right)) ; } }};public class JRadioButtonDemo03{ public static void main(String args[]){ new MyRadio() ; }

我用javaweb做一个简单的登录验证。但是很多变量都显示“拼写不正确”,运行时报错。是不是少点什么?

你Request.getParameter能拿到数据么?你上一个html页面怎么写的啊?

怎么能找到一些JAVA项目做?

同问

写一个JAVA程序,把一个TXT文件中的内容输出到文本框中

以下是你需要的代码,你可以选择任何你需要打开的文件在文本框下打开import java.io.File ;import java.io.FileInputStream ;import java.io.FileOutputStream ;import java.io.PrintStream ;import java.util.Scanner ;import java.awt.BorderLayout ;import java.awt.event.WindowAdapter ;import java.awt.event.WindowEvent ;import java.awt.event.ActionEvent ;import java.awt.event.ActionListener ;import javax.swing.JFrame ;import javax.swing.JTextArea ;import javax.swing.JLabel ;import javax.swing.JButton ;import javax.swing.JPanel ;import javax.swing.JFileChooser ;import javax.swing.JScrollPane ;class Note implements ActionListener{ private JTextArea area = new JTextArea(8,10) ; // 定义文本区 private JFrame frame = new JFrame("Welcome To MLDN") ; private JButton open = new JButton("打开文件") ; private JButton save = new JButton("保存文件") ; private JLabel label = new JLabel("现在没有打开的文件") ; private JPanel butPan = new JPanel() ; public Note(){ this.butPan.add(open) ; // 在面板中加入按钮 this.butPan.add(save) ; // 在面板中加入按钮 this.frame.setLayout(new BorderLayout(3,3)) ; this.frame.add(this.label,BorderLayout.NORTH) ; this.frame.add(this.butPan,BorderLayout.SOUTH) ; this.frame.add(new JScrollPane(this.area),BorderLayout.CENTER) ; this.frame.setSize(330,180) ; this.frame.setVisible(true) ; this.frame.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(1) ; } } ) ; this.open.addActionListener(this) ; this.save.addActionListener(this) ; } public void actionPerformed(ActionEvent e){ File file = null ; // 接收文件 int result = 0 ; // 接收操作状态 JFileChooser fileChooser = new JFileChooser() ; // 文件选择框 if(e.getSource()==this.open){ // 表示执行的是打开操作 this.area.setText("") ; // 打开将文字区域的内容清空 fileChooser.setApproveButtonText("确定") ; fileChooser.setDialogTitle("打开文件") ; result = fileChooser.showOpenDialog(this.frame) ; if(result==JFileChooser.APPROVE_OPTION){ // 选择的是确定按钮 file = fileChooser.getSelectedFile() ; // 得到选择的文件 this.label.setText("打开的文件名称为:" + file.getName()) ; }else if(result==JFileChooser.CANCEL_OPTION){ this.label.setText("没有选择任何文件") ; }else{ this.label.setText("操作出现错误") ; } if(file!=null){ try{ Scanner scan = new Scanner(new FileInputStream(file)) ; scan.useDelimiter(" ") ; while(scan.hasNext()){ this.area.append(scan.next()) ; this.area.append(" ") ; } scan.close() ; }catch(Exception e1){} } } if(e.getSource()==this.save){ // 判断是否是保存操作 result = fileChooser.showSaveDialog(this.frame) ; // 显示保存框 if(result==JFileChooser.APPROVE_OPTION){ // 选择的是确定按钮 file = fileChooser.getSelectedFile() ; // 得到选择的文件 this.label.setText("选择的存储文件名称为:" + file.getName()) ; }else if(result==JFileChooser.CANCEL_OPTION){ this.label.setText("没有选择任何文件") ; }else{ this.label.setText("操作出现错误") ; } if(file!=null){ try{ PrintStream out = new PrintStream(new FileOutputStream(file)) ; out.print(this.area.getText()) ; out.close() ; }catch(Exception e1){} } } }}public class JFileChooserDemo{ public static void main(String args[]){ new Note() ; }}

在JSP网页中怎样加入Java代码??

1.scriptlet:<% %>2.声明:<%! %>3.表达式:<%= %>例子:1。<% Date date = new Date(); String d = date.toLocalString(); %>2. <%!=new java.util.Date().toLocalString()%>3.<%! Date date = new Date();%>

javaweb xml标签之间没有内容输出

startElement 这个方法只获取attribute的属性没有获取节点的内容。

ssh架构,貌似tomcat配置数据源有错,java方面的报错,求救,急急急、、、、

把数据源贴出来啊

如何用java在指定目录下创建一个文件夹

使用File:File file = new File("地址");file.mkdirs();

用javascript实现计算日期,推算上早晚班

<script type="text/javascript"> function btnCount_Click(){ s1 = document.getElementById("zaodate").value; s2 = document.getElementById("date").value; var dd=DateDiff(s1,s2); if(dd%2==0){ alert("早班") } else{ alert("晚班") } } //计算天数差的函数,通用 function DateDiff(sDate1, sDate2){ //sDate1和sDate2是2006-12-18格式 var aDate, oDate1, oDate2, iDays aDate = sDate1.split("-") oDate1 = new Date(aDate[1] + "-" + aDate[2] + "-" + aDate[0]) //转换为12-18-2006格式 aDate = sDate2.split("-") oDate2 = new Date(aDate[1] + "-" + aDate[2] + "-" + aDate[0]) iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24) //把相差的毫秒数转换为天数 return iDays } </script><h1>输入日期的格式:YYYY-MM-DD,如:2006-12-18 </h1><br>默认以2009年8月10号是早班计算,如果想更改请修改这里:早班日期:<input name="zaodate" value="2009-8-10"><br>输入想查询的日期<input name="date" value="2009-08-11"><input name="" type="button" onclick="btnCount_Click()" value="计算" />

Java字符串清除

具体一些,是什么样的情况,字符串一般都有许多类,内置方法

cmd 运行javac出错 错误:仅当显式请求注释处理时才接受类名称

true是关键字,不能作为变量名使用

java过滤非法字符的filter

你用的是什么框架,FILTER程序是自己写的吗?代码贴过来看看

为什么Java反射对象必须有一个无参数的构造方法?

为什么Java反射对象必须有一个无参数的构造方法? 其实也可以不提供,只不过这样的话构造对象的时候一定要先拿到有参数的构造方法,然后赋予参数再构建对象。 比如 package .mldn.demo; import java.lang.reflect.Constructor; class Person { CTRL + K private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } } public class TestDemo { public static void main(String[] args) throws Exception { Class<?> cls = Class.forName(".mldn.demo.Person"); 取得Class对象 取得指定参数类型的构造方法 Constructor<?> cons = cls.getConstructor(String.class, int.class); Object obj = cons.newInstance("张三", 20); 为构造方法传递参数 System.out.println(obj); } } JAVA带参数的构造方法 第一个错误是因为在类里面用的是 getNamet()的方式的。你在主函数中却是getName(); 第二个措施是因为在类中根本就没有getAge()这个函数的。只有一个Age()函数的。。 java中 带参数的构造方法 这样写没有问题 public Student(String name,String sex,int age) { this.name=name; this.sex=sex; this.age=age; } 这样写也没有问题 public Student(String name,String sex,int age) { this(name); this.sex=sex; this.age=age; } 两个一起写一定有问题,方法签名是一样的。 java中为什么父类必须有无参构造方法才能被子类继承? 你在Xx类里定义了一个带参数的构造方法,那么这个Xx类就没有无参数的构造方法了。 子类在继承父类时,如果没有相同的带参构造方法,那么他就需要在其构造方法中明确的通过super()调用父类的带参构造方法,否则构造不出父类,从而也构造不出他自己了。 你如果在父类中写个不带参数的构造方法,就可以不用实现父类的带参构造方法了。 java 什么时候定义 带参数的构造方法 什么时候 不定义 带参数的构造方法 让其默认 这么说吧,你想创建出一个新的对象,并且在创建的时候就给里面的变量赋值,这时你就需要一个带参数的构造方法! 如果你的变量时私有的,你在用这个新的对象的时候可以直接通过get方法把值取到! 带参数的构造方法就是初始化的时候赋值! java创建带参构造方法必须创建无参构造方法吗 如果父类中已经构建过无参方法,子类不需要重新构建,也就是说必须有一个继承类中有无参构造方法。 如果父类中没有此构造方法,那么必须在子类中进行无参构造,否则子类会一直提示需要重写父类方法。 备注:这个建议根据java规范,每次创建类(需要构建)的时候就构建一个无参的构造方法,肯定不会报错。 怎样编写一个无参数的构造方法 使用类名作为方法名,参数列表为空就可以了。 例:有一个类A(class A),则其无参数构造方法为 public A(){ system.out.println("这是类A的无参数构造方法"); } 参数为对象的构造方法 这个重载的构造方法的参数是一个a类对象的实例,还是很好理解的啊。比如: a m=new a(); 这时m.x=1;m.y=2; m.x=3; 给m的两个属性赋值 m.y=4; a n=new a(m); 这时n.x=3;n.y=4; java中父类没有构造方法,只有一个不带参数的抽象方法,子类可以要怎么写构造方法?不写吗? 可以不写 但如果子类需要带参数的构造方法,就必须写一个无参的,然后super(); java中 带参数的构造方法和不带参数构造方法用法有什么不同啊?? 我举个例子: 有个Circle类如下 class Circle{ private double r=0; public Circle(){ } public Circle(double x){ r=x; } public double setR(double x){ r=x; } } 然后在main中使用该类 Circle circle=new Circle(); circle.setR(5); 这两句等价于 Circle circle=new Circle(5); 换句话说有参与无参的区别就是有参构造能够在new的时候同时给创建的对象中的数据赋值

哪里有C++,C语言,VB,JAVA语言程序设计的视频教程

其实不仅学习JAVA,无论学习什么,其实还是看个人努力程度。还有老师是不是负责,比如动力节点培训中心以王勇老师为首的全体老师,都特别有责任心学到的东西让大学熟练掌握,基本把基础学习牢固了,学起来也就很简单。有兴趣的同学可以百度搜索“动力节点”或“王勇Java”。 Y

java如何读取并修改txt文件

用 file 在jdk里面可以查到,或下载mldn(魔了Java)里面去找

我想学习java需要先学习c语言吗?因为我基本上是零基础的!

世界万物皆对象,先学哪个并不要紧…

JAVA里VOID是什么意思。

返回类型为空

struts2中导包commons-logging.jar和commons-logging-api.jar究竟应该导哪个?

我用过第一个,没试过第二个 如果要看有啥不同用个文件比较工具比一下源码就能知道吧

java.lang.NullPointerException 使用Eclipsece测试出现这个怎么回事?

空指针异常,得看代码才能知道为什么会报错。不是Eclipse的问题,是你的代码有问题。

求高手指导JAVA封装技巧,本人封装的太差了,有时自己头都昏了

总之是能用最少的代码实现功能,最好能复用,这是封装的最终目的

在JAVA中 void表示什么意思?

void是无返回值的意思void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。void几乎只有“注释”和限制程序的作用,定义一个void变量没有意义。void的作用在于对函数返回的限定以及对函数参数的限定。如果7a6431333366306535JAVA里指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值,如果p1和p2指向不同的数据类型,则必须使用强制类型转换运算符把赋值运算符右边的指针类型转换为左边指针的类型。扩展资料:void真正发挥的作用在于:(1) 对函数返回的限定;(2) 对函数参数的限定。众所周知,如果指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值;如果p1和p2指向不同的数据类型,则必须使用强制类型转换运算符把赋值运算符右边的指针类型转换为左边指针的类型。

java中图形界面ListModel的用法?方法如何调用?

AbstractListModel这个类的功能是抽象定义一个带内容的list,你程序 MyListModel类中继承并实现了这个抽象类,this.list1=new JList(new MyListModel());这几句话中的new MyListMode()不就是实例化一个对象,这个对象就是一个带内容的list,就是用这个对象的内容实例化一个JList。希望我的回答对你有帮助,并及时采纳

以下java代码中的this表示的是什么,可以用什么来替换,求解?

this可以省略....

java前辈高手请进

java桌面程序还是j2ee?完全不一样的。。。

java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver

缺少jar包。。。。

“\|”这个符号在java正则表达式中表示的是什么意思?是或吗?

info.split("\|") ;是吧字符串 info 拆分 拆分位置是在 “|” ;“\|” 这是转义的意思 " " " |" 都是特殊字符所以需要转义 第二个反斜杠 转义 |

Ajax怎么实现文件批量上传与下载

这次给大家带来Ajax怎么实现文件批量上传与下载,Ajax实现文件批量上传与下载的注意事项有哪些,下面就是实战案例,一起来看一下。今天做了文件的上传下载,小小总结一下,基本的web项目建立及SpringMVC框架搭建此处不详细写出来了。上传form:<form id="uploadfiles" enctype="multipart/form-data"> <input type="file" multiple="multiple" id="file_upload" name="file_upload" /> <input type="button" value="上传" onclick="upload()" /></form>上传Ajax:<script type="text/javascript">/* * 上传文件 */function upload(){ var formData = new FormData($( "#uploadfiles" )[0]); $.ajax({ type: "post", url: "./path/upload", dataType: "json", data: formData, /** *必须false才会自动加上正确的Content-Type */ contentType : false, /** * 必须false才会避开jQuery对 formdata 的默认处理 * XMLHttpRequest会对 formdata 进行正确的处理 */ processData : false, success: function(data){//从后端返回数据进行处理 if(data){ alert("上传成功!"); }else{ alert("上传失败!"); } }, error: function(err) {//提交出错 $("#msg").html(JSON.stringify(err));//打出响应信息 alert("服务器无响应"); } });}</script>spring.xml配置加上:<!-- 配置文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 内存中的最大值 --> <property name="maxInMemorySize" value="40960" /> </bean>controller:/* * 上传多个文件 */ @RequestMapping(value = "/upload", produces = "application/json;charset=UTF-8") public @ResponseBody boolean uploadFiles(@RequestParam("file_upload") MultipartFile [] files) { boolean result = false; String realPath; for(int i=0;i<files.length;i++){ if (!files[i].isEmpty()) { String uniqueName=files[i].getOriginalFilename();//得到文件名 realPath="E:"+File.separator+uniqueName;//文件上传的路径这里为E盘 files[i].transferTo(new File(realPath)); // 转存文件 result = true; } catch (Exception e) { e.printStackTrace(); } } } return result; }下载的jsp页面代码根据需求不同自己设计,这里给出controller代码:/* * 下载多个文件 */ @RequestMapping(value = "/download") public void downloadFiles(HttpServletResponse response) { String str= request.getParameter("rows");//下载文件信息,包括文件名、存储路径等 JSONArray path=(JSONArray) JSONArray.parse(request.getParameter("rows")); Path paths[]=new Path[path.size()]; paths = JSONArray.parseArray(str, Path.class).toArray(paths); String uri = "d:"+ File.separator + "mldn.zip";//临时文件存储路径 File zipFile = new File(uri) ; // 定义压缩文件名称 ZipOutputStream zipOut = null;// 声明压缩流对象 InputStream input = null; //将要压缩的文件加入到压缩输出流中 try { zipOut = new ZipOutputStream(new FileOutputStream(zipFile)); } catch (FileNotFoundException e) { e.printStackTrace(); } for(int i = 0;i<paths.length;i++){ File file = new File(paths[i].getUri()+File.separator+paths[i].getFilename()); try { input = new FileInputStream(file) ;// 定义文件的输入流 zipOut.putNextEntry(new ZipEntry(file.getName())) ; // 设置ZipEntry对象 } catch (Exception e) { e.printStackTrace(); } } //将文件写入到压缩文件中 int temp = 0 ; try { while((temp=input.read())!=-1){ // 读取内容 zipOut.write(temp) ; // 写到压缩文件中 } } catch (IOException e) { e.printStackTrace(); }finally{ try { input.close() ; zipOut.close() ; } catch (IOException e) { e.printStackTrace(); } } try { // 以流的形式下载文件。 BufferedInputStream fis = new BufferedInputStream(new FileInputStream(zipFile)); byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); // 清空response response.reset(); OutputStream toClient = new BufferedOutputStream(response.getOutputStream()); response.setContentType("application/x-msdownload;"); response.setHeader("Content-Disposition", "attachment;filename=" + zipFile.getName()); toClient.write(buffer); toClient.flush(); toClient.close(); zipFile.delete(); //将生成的服务器端文件删除 } catch (IOException ex) { ex.printStackTrace(); } }将多个文件打成一个压缩包下载,然后将生成的临时压缩文件删除。下载页面如果用Ajax提交请求的话要注意:ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载。但可以用js生成一个form,用这个form提交参数,并返回“流”类型的数据。例子:function download(){ var form=$("<form>");//定义一个form表单 form.attr("style","display:none"); form.attr("target",""); form.attr("method","post"); form.attr("action","./path/download");//请求url var input1=$("<input>"); input1.attr("type","hidden"); input1.attr("name","rows");//设置属性的名字 input1.attr("value",“test”);//设置属性的值 $("body").append(form);//将表单放置在web中 form.append(input1); form.submit();//表单提交 }相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!推荐阅读:实现无刷新下拉联动的Ajax+Servlet(附代码)怎样用Ajax异步检查用户名有无重复
 首页 上一页  31 32 33 34 35 36 37 38 39 40 41  下一页  尾页