




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
你必须知道的261个Java语言问题内容淌盖:Java基本概念及环境配臀Java编裎荩础Java与面向对象Java流和文件操作Java GUI编程Java线程和序列化Java网络编程Java常用功能Java数据库操作Java Web程序设汁 目录第1章 Java基本概念及环境配置 .1 FAQ1.01 什么是面向对象程序设计? 1 FAQ1.02 面向对象程序设计的基本特征有哪些? 2 FAQ1.03 Java语言是如何产生和发展的? 3 FAQ1.04 Android与Java语言有什么关系? 4 FAQ1.05 Java SE. Java EE和Java ME有什么区别? 5 FAQ1.06 Java语言的运行机制如何? 6 FAQ1.07 什么是JVM?有什么作用?工作机制如何? 8 FAQ1.08 什么是JRE(或J2RE)? 9 FAQ1.09 什么是JDK? 10 FAQ1.10 JDK. JRE和JVM之间有什么区别? 11 FAQ1.11 什么是GC?GC的工作原理如何? 12 FAQ1.12 如何安装Java基本开发环境JDK? 13 FAQ1.13 为何在JDK安装路径下存在两个JRE? 16 FAQ1.14 JDK安装时设置PATH和CLASSPATH环境变量有何作用? 17 FAQ1.15 如何编译. 运行Java应用程序? 18 FAQ1.16 如何将程序中的文档注释提取出来生成说明文档? 20 FAQ1.17 怎样制作鼠标双击就可以运行的Jar文件? 23 FAQ1.18 怎样给main(String args)方法的args指定参数值? 26 第2章 Java编程基础 28 FAQ2.01 Java中的标识符如何命名?可以用中文吗? 28 FAQ2.02 Java中有哪些关键字? 29 FAQ2.03 用public. protected和private修饰方法有什么区别? 30 FAQ2.04 this关键字有什么含义?在哪些情况下应用? 31 FAQ2.05 super关键字有什么含义?在哪些情况下应用? 32 FAQ2.06 static关键字有什么含义?具体如何应用?能修饰构造方法吗? 34 FAQ2.07 final关键字有什么含义?具体如何应用? 36 FAQ2.08 instanceof关键字有什么含义?如何应用? 37 FAQ2.09 Java中有哪些数据类型? 38 FAQ2.10 如何解决double和float精度不准的问题? 40 FAQ2.11 int和Integer都可以作为整数类型, 那么它们有什么区别? 43 FAQ2.12 float f=3.4语句是否正确? 44 FAQ2.13 成员变量和局部变量有什么区别? 45 FAQ2.14 变量之间传值时可分为值传递和引用传递, 那么它们有何区别? 46 FAQ2.15 Java中有哪些运算符?优先级如何? 48 FAQ2.16 在实现x和y相加时, x+=y和x=x+y两种实现方式有区别吗? 50 FAQ2.17 在执行与运算时, 运算符&和&有什么区别? 50 FAQ2.18 在实现x递增加1操作时, x+和+x有什么区别? 52 FAQ2.19 x?y:z格式的语句表示什么意思? 53 FAQ2.20 “+”操作符在Java内部是如何实现字符串连接的? 54 FAQ2.21 =和equals()都可用于比较两个操作数是否相等, 它们有什么区别吗? 55 FAQ2.22 创建String对象时, 使用String s=new String (“abc”)和String s=“abc”语句有什么区别? 56 FAQ2.23 break和continue语句有什么区别? 56 FAQ2.24 数组如何定义和初始化? 57 FAQ2.25 如何实现一维和二维数组的遍历? 59 FAQ2.26 如何实现数组的复制? 60 FAQ2.27 数组的排序算法有哪些?如何实现? 61 FAQ2.28 如何解决ArrayIndexOutOfBounds Exception异常? 64 第3章 Java与面向对象 65 FAQ3.01 什么是类. 对象. 属性和方法? 65 FAQ3.02 什么是包?有什么好处? 67 FAQ3.03 什么是抽象类?有什么好处? 67 FAQ3.04 什么是接口?有什么好处? 69 FAQ3.05 什么是多态?有什么好处? 70 FAQ3.06 什么是内部类?有什么好处? 71 FAQ3.07 什么是匿名内部类?如何使用? 73 FAQ3.08 什么是封装类?有什么作用? 74 FAQ3.09 什么是继承?有什么好处? 75 FAQ3.10 使用new关键字创建对象时, 为什么有时候提示找不到无参的构造方法? 76 FAQ3.11 抽象类和接口都可以包含抽象方法, 那么它们有什么区别?使用时该如何选择? 76 FAQ3.12 什么是方法重写?为什么需要方法重写? 78 FAQ3.13 什么是方法重载?为什么需要方法重载? 78 FAQ3.14 构造方法是否可以被重写?能否被重载? 79 FAQ3.15 static修饰的方法能否在子类中重写? 80 FAQ3.16 在定义类时, 何时需要重写Object类中toString()方法? 81 FAQ3.17 在定义类时, 何时需要重写Object类中equals()方法? 82 FAQ3.18 为什么在重写equals()方法时, 一般都会重写HashCode()方法? 84 FAQ3.19 如何重写hashCode()方法? 85 FAQ3.20 Java中动态绑定是什么意思? 87 FAQ3.21 Java中是如何实现多态的?实现机制是什么? 88 FAQ3.22 创建类的对象时, 类中各成员的执行顺序是什么样的? 89 FAQ3.23 什么是初始化块?有什么作用? 90 FAQ3.24 静态初始化块与非静态初始化块有什么区别? 92 FAQ3.25 如何调用内部类中的方法? 93 FAQ3.26 当内部类和外部类的成员名称相同时, 如何在内部类中调用外部类的成员? 94 FAQ3.27 匿名内部类如何访问外部方法的局部变量或参数? 95 FAQ3.28 Java异常处理机制是什么样的? 96 FAQ3.29 常见的RuntimeException异常有哪些? 97 FAQ3.30 Java中异常处理的方式有哪些? 98 FAQ3.31 try-catch-finally语句块各部分的执行顺序如何? 100 FAQ3.32 为什么使用自定义异常?自定义异常如何使用? 101 第4章 Java流和文件操作 103 FAQ4.01 如何获取文件的属性信息? 103 FAQ4.02 如何判断文件是否为空? 105 FAQ4.03 如何实现文件的创建. 删除和移动? 105 FAQ4.04 如何创建和删除文件夹? 107 FAQ4.05 如何遍历目录中所有的文件? 109 FAQ4.06 如何获取文件夹大小? 110 FAQ4.07 什么是流?如何分类?具体包含哪些类? 111 FAQ4.08 如何实现字节流和字符流之间的转化? 113 FAQ4.09 如何判断要读的文件是否到达末尾? 116 FAQ4.10 如何读文件. 写文件? 117 FAQ4.11 如何以追加的方式写文件? 118 FAQ4.12 如何实现文件和文件夹的复制? 119 FAQ4.13 如何在文件的任意位置进行读写? 121 FAQ4.14 使用Buffered缓冲流写文件, 为什么内容没有写入? 122 FAQ4.15 如何实现文件的分割与合并? 123 FAQ4.16 什么是NIO?与I/O有什么区别和联系? 125 FAQ4.17 如何使用NIO读写文件? 127 FAQ4.18 什么是字符编码和解码? 129 FAQ4.19 读写文件时为什么中文字符经常产生乱码? 130 FAQ4.20 如何解决FileReader读文件乱码的问题? 131 FAQ4.21 为什么DataInputStream和DataOutputStream读写文件时乱码? 132 FAQ4.22 如何实现文件锁定功能? 134 FAQ4.23 如何实现对文件和字符串加密. 解密? 135 FAQ4.24 如何实现对文件和目录的压缩. 解压缩? 139 FAQ4.25 如何读写properties文件? 143 FAQ4.26 如何读写XML文件? 146 FAQ4.27 如何读写XML文件中的元素属性? 151 FAQ4.28 如何读写CSV格式的文件? 152 FAQ4.29 如何为图片文件生成缩略图? 154 FAQ4.30 如何操作Excel文件? 156 FAQ4.31 如何操作Word文件? 161 第5章 Java GUI编程 164 FAQ5.01 什么是Java GUI?Swing与AWT有什么关系? 164 FAQ5.02 什么是布局管理器?常用的布局管理器有哪些? 165 FAQ5.03 如何在窗体中显示一张图片? 170 FAQ5.04 如何为容器添加滚动条功能? 171 FAQ5.05 如何实现一个打开文件或者是存储文件的对话框? 173 FAQ5.06 如何实现弹出消息框的功能? 175 FAQ5.07 如何使用Dialog对话框? 177 FAQ5.08 如何为按钮添加单击事件? .178 FAQ5.09 如何为窗体添加关闭事件? 181 FAQ5.10 如何实现窗体菜单功能? 183 FAQ5.11 如何处理键盘输入事件? 185 FAQ5.12 如何处理鼠标单击事件?如何区分是左键还是右键? 186 FAQ5.13 如何实现鼠标右键弹出菜单的功能? 189 FAQ5.14 如何使用表格组件? 191 FAQ5.15 如何实现记事本功能? 193 FAQ5.16 如何实现贪吃蛇游戏? 198 第6章 Java线程和序列化 208 FAQ6.01 线程. 进程和程序有何区别和联系? 208 FAQ6.02 如何创建和启动一个线程? 209 FAQ6.03 线程的基本状态有哪些?它们之间有何关系? 211 FAQ6.04 什么是线程优先级?线程依据什么原则调度执行? 212 FAQ6.05 什么是后台线程?如何创建一个后台线程? 214 FAQ6.06 如何使正在运行的线程在指定时间内休眠? 216 FAQ6.07 如何终止一个正在运行的线程? 218 FAQ6.08 为何stop()和suspend()方法不推荐使用? 219 FAQ6.09 如何控制线程的暂停和启动? 220 FAQ6.10 如何实现多个线程同步? 225 FAQ6.11 什么是对象序列化和对象反序列化? 233 FAQ6.12 实现对象序列化的方法有哪些? 234 FAQ6.13 如何实现对象在磁盘中的存取操作? 236 FAQ6.14 使用ObjectInputStream读取对象时为什么会发生StreamCorruptedException异常? 238 FAQ6.15 对象中的成员哪些参与序列化?哪些不参与序列化? 241 FAQ6.16 如何自定义序列化和反序列化过程? 243 FAQ6.17 如何使用Externalizable接口定制序列化过程? 247 FAQ6.18 在序列化类中添加serialVersionUID属性有什么作用? 250 FAQ6.19 当序列化遭遇继承时, 如何正确处理对象序列化过程? 251 第7章 Java网络编程 256 FAQ7.01 什么是TCP/IP?什么是IP? 256 FAQ7.02 TCP和UDP有什么区别? 258 FAQ7.03 什么是HTTP?HTTP的工作原理如何? 259 FAQ7.04 在Socket通信时如何获取主机和客户机的IP地址? 261 FAQ7.05 如何利用Socket实现基于TCP的通信? 264 FAQ7.06 如何利用Socket传输中文字符? 265 FAQ7.07 如何在Socket读取数据时使用超时设置? 267 FAQ7.08 如何利用Socket传递对象信息? 268 FAQ7.09 如何利用Socket实现文件传输? 271 FAQ7.10 如何基于Socket实现聊天系统? 274 FAQ7.11 如何利用Socket实现基于UDP的通信? 278 FAQ7.12 如何利用UDP Socket技术实现IP多点传送? 280 FAQ7.13 如何获取Internet资源的大小? 285 FAQ7.14 如何实现Internet资源的单线程下载? 286 FAQ7.15 URL如何通过proxy代理访问Internet资源? 287 FAQ7.16 如何实现Internet资源下载的断点续传? 288 FAQ7.17 如何实现Internet资源的多线程下载? 290 FAQ7.18 如何解析Internet网页内容? 293 第8章 Java常用功能 296 FAQ8.01 如何使字符串中包含“”字符 296 FAQ8.02 如何实现字符串和整数之间的转化? 297 FAQ8.03 如何替换字符串中的字符或子字符串? 298 FAQ8.04 如何过滤字符串前后以及中间出现的空格? 299 FAQ8.05 如何对字符串中的子字符或子字符串进行截取? 301 FAQ8.06 如何判断一个字符串是否符合数值格式? 302 FAQ8.07 如何实现字符串的切割和查找? 303 FAQ8.08 如何实现十进制和二进制之间的相互转化? 306 FAQ8.09 如何将字节流转换为指定编码的字符串? 307 FAQ8.10 如何实现日期格式和字符串之间的转化? 308 FAQ8.11 String. StringBuffer和StringBuilder有什么区别? 310 FAQ8.12 如何获得一个随机数? 311 FAQ8.13 List. Set和Map是否继承自Collection接口?有什么区别? 312 FAQ8.14 ArrayList与LinkedList. Vector的区别是什么? 313 FAQ8.15 HashMap和Hashtable有什么区别? 314 FAQ8.16 如何遍历Map和Vector集合? 315 FAQ8.17 如何获取系统当前时间? 317 FAQ8.18 如何获得系统属性? 318 FAQ8.19 什么是反射机制?有什么作用? 319 FAQ8.20 如何读取键盘输入的信息? 322 FAQ8.21 如何获取当前工程目录? 323 FAQ8.22 如何使用Java调用系统的exe文件? 324 FAQ8.23 如何使用Java执行cmd命令? 325 FAQ8.24 如何使用Java程序打开一个Word文档? 326 FAQ8.25 如何使用MD5和SHA算法加密信息? 327 第9章 Java数据库操作 329 FAQ9.01 什么是JDBC?有什么作用? 329 FAQ9.02 Java与数据库的连接方式有哪些? 330 FAQ9.03 如何连接各种类型的数据库? 331 FAQ9.04 如何实现对数据库数据的查询? 335 FAQ9.05 如何实现对数据库数据的增加. 删除和修改? 336 FAQ9.06 如何使用PrepareStatement对数据库操作? 339 FAQ9.07 Statement和PrepareStatement有什么区别? 340 FAQ9.08 如何调用数据库中的存储过程? 341 FAQ9.09 如何通过JDBC-ODBC桥访问Access数据库? 344 FAQ9.10 连接Oracle数据库时thin和oci方式有什么区别? 346 FAQ9.11 如何判断ResultSet结果集为空? 347 FAQ9.12 如何获取ResultSet中含有的记录数量? 348 FAQ9.13 如何获取ResultSet中nm位置区间的记录? 350 FAQ9.14 如何利用ResultSet更新数据库数据? 351 FAQ9.15 如何使用LIKE关键字实现模糊查询? 352 FAQ9.16 如何实现查询的分组统计和排序? 354 FAQ9.17 如何实现多表联合查询? 355 FAQ9.18 如何使用JDBC的批处理操作? 357 FAQ9.19 如何实现Oracle字段值递增的功能? 358 FAQ9.20 如何处理数据表中Date类型的字段? 360 FAQ9.21 如何向表中插入含有特殊字符的信息? 360 FAQ9.22 如何使用BLOB类型的字段存取图片? 361 FAQ9.23 如何使用CLOB类型的字段存取字符文件? 363 FAQ9.24 如何通过程序创建和删除数据表? 365 FAQ9.25 如何获取数据表的结构信息? 367 FAQ9.26 如何获取数据库中所有表名? 369 FAQ9.27 如何用程序备份和恢复数据库? 370 FAQ9.28 什么是事务?如何使用JDBC事务控制? 372 FAQ9.29 什么是JTA?JTA事务与JDBC事务有什么区别? 373 FAQ9.30 如何使用JTA实现分布式事务控制? 374 FAQ9.31 什么是数据库连接池?工作原理如何? 376 FAQ9.32 如何提升SQL语句的查询性能? 377 FAQ9.33 如何解决MySQL数据库插入乱码的问题? 379 第10章 Java Web程序设计 381 FAQ10.01 什么是JSP?JSP的工作原理如何? 381 FAQ10.02 JSP. Java和JavaScript有什么区别和联系? 383 FAQ10.03 JSP程序开发和运行环境是什么?如何搭建? 383 FAQ10.04 如何开发一款JSP程序? 387 FAQ10.05 在JSP中有哪些注释格式?有什么作用? 390 FAQ10.06 JSP中有哪些内建对象?分别有什么作用? 391 FAQ10.07 page. request. session和application有什么区别? 395 FAQ10.08 如何解决request.getParameter()取值乱码问题? 396 FAQ10.09 JSP中forward和redirect有什么区别? 397 FAQ10.10 如何在多个JSP页面之间传递信息? 399 FAQ10.11 如何解决URL传递中文时出现乱码的问题? 400 FAQ10.12 动态include与静态include有什么区别? 401 FAQ10.13 什么是JavaBean?如何使用JavaBean? 402 FAQ10.14 什么是Session?如何使用Session? 403 FAQ10.15 如何在关闭页面时自动清除Session? 405 FAQ10.16 什么是Cookie?如何使用Cookie? 406 FAQ10.17 如何在禁用Cookie的情况下使用Session? 408 FAQ10.18 如何在JSP中避免表单的重复提交? 409 FAQ10.19 如何实现JSP数据和JavaScript数据的交互使用? 411 FAQ10.20 什么是Servlet?Servlet与JSP有什么区别? 412 FAQ10.21 Servlet容器的工作原理如何? 413 FAQ10.22 如何在Servlet中使用Session和Application? 414 FAQ10.23 如何编写多线程安全的Servlet程序? 415 FAQ10.24 如何在Servlet和JSP中获取工程文件的绝对路径? 417 FAQ10.25 如何获取客户端浏览器和操作系统信息? 417 FAQ10.26 如何在Web程序中实现定时运行的功能? 418 FAQ10.27 如何实现网站登录记忆跳转的功能? 421 FAQ10.28 如何将JSP动态页面转换为HTML静态页面? 423 FAQ10.29 如何实现数据分页显示的功能? 424 FAQ10.30 如何将JSP内容以Excel或Word格式输出? 431 FAQ10.31 如何在JSP中实现打印功能? 432 FAQ10.32 如何实现图片验证码功能? 433 FAQ10.33 如何实现饼状图. 柱状图和曲线图? 436 FAQ10.34 如何实现进度条显示功能? 443 FAQ10.35 如何实现网站计数器功能? 447 FAQ10.36 如何发送HTML格式和带附件的邮件? 448 FAQ10.37 如何实现文件的上传和下载? 453 FAQ10.38 如何禁止浏览器缓存页面内容? 457 FAQ10.39 如何在网页中在线播放音乐和视频? 458 FAQ10.40 如何处理JSP页面的错误? 460 FAQ10.41 如何利用过滤器实现权限验证功能? 462 FAQ10.42 如何实现JSP防盗链功能?464 1、Web容器所有的程序运行都需要有一个必要的运行环境。这个环境可以是软件,也可 以是硬件,或者是软件和硬件的结合。比如说Windows操作系统需要运行在硬件基础上;Office软件需要运行在操作系统上。并且程序与运行环境之间 会有一定的数据交换,比如操作系统会将运行指令传递给硬件,硬件也会将指令运行结果传递给操作系统。JavaWeb程序也需要一个运行环境才能够执行。这 种运行JavaWeb程序的环境被称为Web容器,JavaWeb程序与Web容器之间存在数据交互。目前主要存在两种类型的JavaWeb容器:一种是 独立的JavaWeb容器,在这种容器里面只能运行Web程序,这种容器一般也叫做Web服务器,如Tomcat等;另一种是与其他JavaEE容器混合 在一起的Web容器,Web容器负责运行Web程序,其他容器负责运行EJB等程序,如WebLogic等。当用户通过浏览器等 Web客户端软件向服务器发出一个请求之后,首先接收到这个请求的是Web容器,Web容器会将请求信息封装到一个HttpServletRequest 类型的Java对象中,并将对象传递给JavaWeb程序。对于每个请求,Web容器还会创建一个HttpServletResponse类型对象,该对 象的作用是用来保存需要返回到浏览器等客户端的内容。JavaWeb程序可以从HttpServletRequest提取用户发出的请求信息,进行适当的 处理之后,将处理结果放置到HttpServletResponse中,然或由Web容器解析HttpServletResponse对象内容,并将解析 结果以浏览器能够识别的HTML等格式返回给浏览器等客户端。在这个过程中,HttpServletRequest和 HttpServletResponse就如同两条渡船,负责在Web容器和JavaWeb程序之间传递信息。需要注意的是,这两个对象仅存在于Web容 器和JavaWeb程序当中,与浏览器没有关系。2、Web应用 Web应用,可以认为是Web程序的另一个名称。缺的的定义就是运行在Web容器当中的,能够完成完整功能的应用程序。JavaWeb应用由一系列编译之 后的Java类、静态图片、静态HTML文件、配置文件等构成。通过JavaWeb应用可以就收用户的输入和请求,并对请求信息进行加工处理、访问数据 库、对用户的请求给出回应。开发JavaWeb应用程序处理需要遵守Web应用的一些特殊规范要求以外,与开发其他类型的应用程序并没有本质区别。目前 Web应用主要有两种类型:一种是以展示为目的的Web应用,这种应用会以HTML等标记文本或者浏览器所能识别的媒体格式最为请求返回内容,用户可以通 过浏览器等客户端操作这类应用。另一类是以服务为目的的Web应用,这类应用不提供图形操作界面,只提供方法调用结构,比如Web服务,该类应用一般只能 被其他应用程序调用和访问。3、Web元件Web元件是构成Web 应用,能够对来自浏览器等客户端请求做出回应的基本单元。在JavaWeb应用中,所提供的Web元件有Servlet、 JavaServerPages(JSP)、JavaServerFaces(JSF)等。另外还可以使用其他类型Web应用同样使用的内容,比如 HTML文件、静态图片等。事实上JavaWeb只提供了一种Web元件元件,就是Servlet,JSP、JSF等都是基于Servlet的衍生技术。 Servlet实质就是一个有特殊继承关系要求的Java类,理解Servlet就基本上完全理解JavaWeb技术了。4、Web模块 在JavaEE技术体系中,除了JavaWeb以外,还包括EJB等其他技术。每个技术体系会运行在各自的容器当中,不同的部分组合在一起构成完整的 JavaEE应用,每个部分根据自己的特点被称为JavaWeb模块或者EJB模块。之所以把他们称为模块,是因为希望JavaEE应用不同部分能像积木 一样组合出更大、更复杂的应用出来,并且每个部分保证其独立性。不同的模块都有自己特定的目录结构要求。JavaWeb模块的目录结构要求如下:应用文档根目录。改目录是JavaWeb模块的最上层目录,组成Web模块的所有Web元件以及配置文件等都包含在该目录或者子目录下。在改目录下可以直接存放HTML文件,图片文件等。WEB-INF目录。改目录位于应用文档根目录下,用来保存那些不希望被浏览器等客户端访问的文件,比如发布描述文件、编译之后的类文件。因为这些文件是由由Web容器进行解释或者执行的。浏览器不可以直接看到这些文件,只能看到这些文件的执行结果。web.xml文件。该文件位于WEB-INF目录下,是Web应用的部署描述文件,用来与定义Web应用运行相关的信息,比如执行逻辑,Servlet等Web元件的访问路径等。改文件的格式必须符合所使用的Servlet版本的规格要求。classes目录。该目录位于WEB-INF目录下,用来保存编译之后的Java类文件,比如Servlet、辅助类、其他业务处理类等。tags目录。该目录位于WEB-INF目录下,用来保存那些标签库的标签描述文件。lib目录。该目录位于WEB-INF目录下,用来保存Web应用运行所依赖的,经过打包之后的Java类文件。打包格式一般是.jar格式。 对于JavaWeb模块目录中WEB-INF、web.xml、classes、tags、lib这些内容以外,用户可以根据自己的需要在Web应用文 档根目录下创建其他目录,比如可以为图片、不同用途的HTML或者JSP单独创建目录;还可以为不用的Java类在classes下创建包目录。如果在你 的Web应用中没有使用到Servlet、过滤器、监听器等JavaWeb元件,可以没有web.xml文件;如果没有使用到标签,则可以没有tags目 录。Web模块的发布工作,可以直接以目录的形式发布,也可以打包成jar格式文件进行发布。因为用途和内容的特殊性,打包文件 的扩展名会采用.war而不是.jar。另外如果不是发布到独立的Web服务器上,而是发布到与其他JavaEE一起使用的企业应用服务器上,还需要编写 一个与企业应用服务器相关的配置文件,这个文件对于不同的企业应用服务器也不同,比如发布到glassfish服务器上,需要编写的文件时sun- web.xml。Java的八大优势1.免费! Sun(虽然现在已被甲骨文收购但我还是喜欢说Sun)免费提供用来开发Java应用程序的一切,你不必付任何的版税。或许你会将信将疑:资本 家搞共产了?实际上,Sun在Java上的收益确实不大,远远比不过垄断Java应用服务器技术的IBM和BEA公司,似乎有替别人做嫁衣之嫌。对 此,Sun董事长、总裁兼首席执行官Scott McNealy是这样解释的:“Sun并没有用Java赚钱,这就像使用英语不用上税一样,Sun并不通过Java本身来盈利,而是把Java应用到了业 务中。”原来是放长线钓大鱼!与Java本身相比,Java API更是可贵的免费财富。想使用Socket操作网络?API中有;想连接到SQL数据库?API中有;想给应用程序一个漂亮的用户界面?API中有;想要处理数字图形、播放音乐、解析字符串或者创建数字签名?API中全都有。最后,Java发展了那么多年,优秀的Java教程、技术网站数不胜数。Bruce Eckel大师的名作Java编程思想(Thinking in java)更是不可不读的佳作,许多狂热爱好者甚至把它当做圣经一样一页一页仔细揣摩。你可到作者的主页 http:/www.BruceE免费下载此书的电子版。机械工业出版社也有引进台湾技术作家候捷的中译本,可惜不是免费。或许你会问,有了那么多优秀的教程,还要你这个Java咖啡馆干什么呢?嗯哼,虽然那些教程和技术文章是如此优秀,但并不适合初学者。Java咖啡馆目的就在于帮助你打好Java技术的基础,掌握Java技术的主要脉络,帮助你迈出进入Java世界的第一步!2.跨平台“一次编写,随处运行”,Java系统可以运行在不同的操作系统和硬件上。随着Linux的持续增长以及Mac OSX完全支持Java技术,跨平台的特性变得越来越有分量。由于Java跨平台,Java API自然也是平台统一的。对程序员而言,没有比统一的API函数能够让他们更欣慰的了已经有了圆形的轮子,何必再从头发明轮子呢?我们拿Java API与C+的类库相比便可以知道它的可贵之处。有Windows编程经验的C+程序员肯定经历过被MFC(Microsoft Foundation Classes,微软基类库)折磨的日子,学习曲线陡峭,没有若干个月根本无法开始生产,一段时间不接触遗忘率又高。据说,即使在微软公司内部,除了 MFC开发小组,谁都不乐意用它。即便你熟悉了MFC,能够顺利开发Windows应用程序,如果你要编写一个Linux应用程序,MFC又派不上用场 了,你必须学习Linux下C+开发的一套库函数。还有UNIX、FreeBSD、Mac OS你学得过来吗?反观Java API,操作系统,你爱谁是谁,只要编写一次便可随处运行!3.在学术界获得了强有力的支持由于免费、跨平台、Java语言本身技术先进,在高校中,Java 已经成为许多学科研究、课程和计算的首选语言,用Java做上机作业,一般都是鼓励的。据我所知,北大、清华许多院系的研究生入学考试都可以用Java语 言答题。实际上,用Java来完成这些工作,大多数情况下要比用C或其他语言简洁得多,你可以把注意力集中在算法等核心部分,从而获得更高分数。掌握Java技术的学生一般有更多的工作机会课余兼职,拿到更高报酬,不但减轻家里的负担,更可以让自己早日进入社会锻炼。所以,如果你还在求学,学习Java,一定没错的。4.简单与C+等语言相比较,语法上Java是简单的。谢天谢地,Java提供了垃圾回收机制。以往C+的开发中,最容易出错误的地方便是内存管理,申请的内存用完以后必须释放,否则可使用的内存 资源越来越少,直至耗尽系统资源而造成死机。而Java系统中,你可以任意申请内存,Java系统会在适当的时候自动释放无用的内存资源。这个神奇的机制 叫做“垃圾回收”,节约了许多调试错误的时间。在Java中,要写出低劣的代码也不是一件容易的事情。一方面,垃圾回收机制堵住了内存泄漏的可能性,另一方面就是异常捕捉机制,它强迫你做最 坏的打算。编写程序时,难免会遇到一些意外,比如文件无法打开、网络读取失败等特殊情况。在C+等语言中是依靠返回值来判断的,如果一句句地检查返回 值,那实在是太麻烦了。从而,程序员习惯性地忽略返回值的检查,并安慰自己一切都会好起来的。这便埋下了隐患。在Java中,Java的方法可以抛异常, 而你必须应答异常,即使你不想进行任何操作。比如编写打开文件的代码,你不得不响应异常以防意外发生,否则程序根本不能够通过编译。未雨绸缪,使得 Java系统更稳健。5.企业应用的成熟平台这是Java技术目前最活跃的两大领域之一。我们在前面Java技术介绍中已经提到了不少,这里仅关注跟我们切身相关的优势。Java技术的企业应用旨在提升企业竞争力,所以Java技术受到了企业的欣赏,市场份额是同类技术中最大的。同时,Java开放标准,所以供 应商众多。市面上有许多的应用服务器、工具与构件可以选择,从高端的BEA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓库工作总结完善计划
- 快乐启迪幼儿园学期班级工作计划
- 新产品开发与生产计划
- 人教版(新教材)高中物理选择性必修2学案:专题强化 楞次定律的应用
- 人教版(新教材)高中物理选择性必修2课时作业18:2 2 法拉第电磁感应定律
- 人教版(新教材)高中物理选择性必修2课时作业10:1 2 磁场对运动电荷的作用力
- 提升医学影像诊断质量的措施计划
- 应对竞争对手的品牌策略计划
- 工作计划中的文化建设要点
- 品牌的文化传播与本土化策略计划
- 电厂机组UPS装置安装、调试项目“三措两案”
- 2024年内蒙古通辽新正电工技术服务有限公司招聘笔试参考题库附带答案详解
- 印章可疑情况管理制度
- 基于单片机的汽车超载控制系统的设计
- 静电喷涂设备操作规程
- 4-12现场钢筋直螺纹加工质量检验记录
- 2023天地伟业安防产品技术参数和检测报告
- 火龙罐联合耳穴压豆治疗失眠个案护理
- 社会工作本科毕业论文2
- 冀教版数学四年级下册《用字母表示数》专项训练卷
- MCGS网络版访问指导书
评论
0/150
提交评论