第2章 一切都是对象2.1 用句柄操纵对象2.2 必须创建所有对象2.2.1 保存在什么地方2.2.2 特殊情况:主类型2.2.3 Java中的数组2.3 绝对不要清除对象2.3.1 作用域2.3.2 对象的作用域2.4 新建数据类型:类2.4.1 字段和方法2.5 方法、自变量和返回值2.5.1 自变量列表2.6 构建Java程序2.6.1 名字的可见性2.6.2 使用其他组件2.6.3 static关键字2.7 我们的第一个Java程序2.8 注释和嵌入文档2.8.1 注释文档2.8.2 具体语法2.8.3 嵌入HTML2.8.4 @see:引用其他类2.8.5 类文档标记2.8.6 变量文档标记2.8.7 方法文档标记2.8.8 文档示例2.9 编码样式2.10 总结2.11 练习 第3章 控制程序流程3.1 使用Java运算符3.1.1 优先级3.1.2 赋值3.1.3 算术运算符3.1.4 自动递增和递减3.1.5 关系运算符3.1.6 逻辑运算符3.1.7 按位运算符3.1.8 移位运算符3.1.9 三元if-else运算符3.1.10 逗号运算符3.1.11 字串运算符+3.1.12 运算符常规操作规则3.1.13 造型运算符3.1.14 Java没有“sizeof”3.1.15 复习计算顺序3.1.16 运算符总结3.2 执行控制3.2.1 真和假3.2.2 if-else3.2.3 反复3.2.4 do-while3.2.5 for3.2.6 中断和继续3.2.7 切换3.3 总结3.4 练习 第4章 初始化和清除4.1 由构建器保证初始化4.2 方法过载4.2.1 区分过载方法4.2.2 主类型的过载4.2.3 返回值过载4.2.4 默认构建器4.2.5 this关键字4.3 清除:收尾和垃圾收集4.3.1 finalize()用途何在4.3.2 必须执行清除4.4 成员初始化4.4.1 规定初始化4.4.2 构建器初始化4.5 数组初始化4.5.1 多维数组4.6 总结4.7 练习 第5章 隐藏实施过程5.1 包:库单元5.1.1 创建独一无二的包名5.1.2 自定义工具库5.1.3 利用导入改变行为5.1.4 包的停用5.2 Java访问指示符5.2.1 “友好的”5.2.2 public:接口访问5.2.3 private:不能接触5.2.4 protected:“友好的一种”5.3 接口与实现5.4 类访问5.5 总结5.6 练习 第6章 类再生6.1 合成的语法6.2 继承的语法6.2.1 初始化基础类6.3 合成与继承的结合6.3.1 确保正确的清除6.3.2 名字的隐藏6.4 到底选择合成还是继承6.5 protected6.6 递增开发6.7 上溯造型6.7.1 何谓“上溯造型”?6.8 final关键字6.8.1 final数据6.8.2 final方法6.8.3 final类6.8.4 final的注意事项6.9 初始化和类装载6.9.1 继承初始化6.10 总结6.11 练习 第7章 多形性7.1 上溯造型7.1.1 为什么要上溯造型7.2 深入理解7.2.1 方法调用的绑定7.2.2 产生正确的行为7.2.3 扩展性7.3 覆盖与过载7.4 抽象类和方法7.5 接口7.5.1 Java的“多重继承”7.5.2 通过继承扩展接口7.5.3 常数分组7.5.4 初始化接口中的字段7.6 内部类7.6.1 内部类和上溯造型7.6.2 方法和作用域中的内部类7.6.3 链接到外部类7.6.4 static内部类7.6.5 引用外部类对象7.6.6 从内部类继承7.6.7 内部类可以覆盖吗?7.6.8 内部类标识符7.6.9 为什么要用内部类:控制框架7.7 构建器和多形性7.7.1 构建器的调用顺序7.7.2 继承和finalize()7.7.3 构建器内部的多形性方法的行为7.8 通过继承进行设计7.8.1 纯继承与扩展7.8.2 下溯造型与运行期类型标识7.9 总结7.10 练习 第8章 对象的容纳8.1 数组8.1.1 数组和第一类对象8.1.2 数组的返回8.2 集合8.2.1 缺点:类型未知8.3 枚举器(反复器)8.4 集合的类型8.4.1 Vector8.4.2 BitSet8.4.3 Stack8.4.4 Hashtable8.4.5 再论枚举器8.5 排序8.6 通用集合库8.7 新集合8.7.1 使用Collections8.7.2 使用Lists8.7.3 使用Sets8.7.4 使用Maps8.7.5 决定实施方案8.7.6 未支持的操作8.7.7 排序和搜索8.7.8 实用工具8.8 总结8.9 练习 第9章 违例差错控制9.1 基本违例9.1.1 违例自变量9.2 违例的捕获9.2.1 try块9.2.2 违例控制器9.2.3 违例规范9.2.4 捕获所有违例9.2.5 重新“掷”出违例9.3 标准Java违例9.3.1 RuntimeException的特殊情况9.4 创建自己的违例9.5 违例的限制9.6 用finally清除9.6.1 用finally做什么9.6.2 缺点:丢失的违例9.7 构建器9.8 违例匹配9.8.1 违例准则9.9 总结9.10 练习 第10章 Java IO系统10.1 输入和输出10.1.1 InputStream的类型10.1.2 OutputStream的类型10.2 增添属性和有用的接口10.2.1 通过FilterInputStream从InputStream里读入数据10.2.2 通过FilterOutputStream向OutputStream里写入数据10.3 本身的缺陷:RandomAccessFile10.4 File类10.4.1 目录列表器10.4.2 检查与创建目录10.5 IO流的典型应用10.5.1 输入流10.5.2 输出流10.5.3 快捷文件处理10.5.4 从标准输入中读取数据10.5.5 管道数据流10.6 StreamTokenizer10.6.1 StringTokenizer10.7 Java 1.1的IO流10.7.1 数据的发起与接收10.7.2 修改数据流的行为10.7.3 未改变的类10.7.4 一个例子10.7.5 重定向标准IO10.8 压缩10.8.1 用GZIP进行简单压缩10.8.2 用Zip进行多文件保存10.8.3 Java归档(jar)实用程序10.9 对象串联10.9.1 寻找类10.9.2 序列化的控制10.9.3 利用“持久性”10.10 总结10.11 练习 第11章 运行期类型鉴定11.1 对RTTI的需要11.1.1 Class对象11.1.2 造型前的检查11.2 RTTI语法11.3 反射:运行期类信息11.3.1 一个类方法提取器11.4 总结11.5 练习 第12章 传递和返回对象12.1 传递句柄12.1.1 别名问题12.2 制作本地副本12.2.1 按值传递12.2.2 克隆对象12.2.3 使类具有克隆能力12.2.4 成功的克隆12.2.5 Object.clone()的效果12.2.6 克隆合成对象12.2.7 用Vector进行深层复制12.2.8 通过序。
HttpServletRequest request.getRemoteAddr()//获取远程IP地址 HttpServletResponse response.setContentType("text/html;charset=gbk")//设置发送方式和字符集 response.getWriter();//获取输出对象,构造PrintWriter对象 返回响应 利用: 1) PrintWriter out = response.getWriter // 用于返回文本数据给客户端 2) ServletOutputStream out = response.getOutputStream // 用于返回二进制数据给客户端 Servlet中从request获得参数的方法: String getParameter(String); 有此参数但无值返回""; 无此参数则返回:null String[] getParameterValues(String); Map getParameterMap(); Enumeration getParameterNames();获得的是参数的名字,需要用名字再去获得参数的值 1)请阐述什么是ServletContext? 一种servlet服务的上下文,每一个servlet实例都对应在一个web application中,都属于这个上下文, 即为这个servletContext. 在一个servlet服务中,通过getServletContext()方法,获得上下文;2) 如何在一个Servlet中调用另外一个Servlet;如何在两个Servlet之间传递数据 getServletContext().getRequestDispatcher("/xxxx/xxxx").forward(request,response); request.setAttribute("xxxx",xxxx);------>requeset.getAttribute("xxxx"); Servlet中的方法: init(ServletConfig);//初始化Servlet用 init中有异常则servlet直接被回收,无异常则继续调用service()方法 覆盖父类init(ServletConfig)可能会出错(因为父类函数会对config做保存处理,以便以后使用),可以调用super(config)解决 service(request,response); //具体会调用HttpServlet的doGet,doPost(程序员在具体的servlet程序中覆盖了)方法实现功能, destory();//销毁servlet实例的时候调用 Servlet生命周期: 装载,init(),service(),destory()Servlet中进行页面转发: getServletContext().getRequestDispatcher("/user/user_list.jsp").forward(request, response); 或者: response.sendRedirect(request.getContextPath() + "/find.do"); Request中getContextPath、getServletPath、getRequestURI、request.getRealPath的区别//转载假定你的web application 名称为news,你在浏览器中输入请求路径: ; charset=GBK"%>
Java 基本知识点概要1. 了解Java语言的特征,掌握JDK(Java开发工具包)的安装、目录层次、环境变量配置,Java程序的实现过程 a).J2SE 1.6( JDK1.5)的安装:(推荐路径) Jdk路径: C:\Soft\JDK1.6 Jre路径: C:\program files\Java\jre1.6.0\。
b).环境变量配置: 我的电脑--〉右击属性--〉高级--〉环境变量--〉新建 变量名 变量值Java_Home C:\Soft\JDK1.6Path %Java_Home%\binClassPath %Java_Home%\jre\lib\rt.jar;.c).编写Java源文件(Xxx.java)==>编译成字节码 (javac Xxx.java) ==>执行字节码文件 java Xxx 2.Java语言基础 a). 数据类型: 8种基本类型:byte,char,short,int,long,float,double,boolean 引用类型: 数组, 类,接口 b).结构化语句: if,if--else ,if--else if ,switch--case,while,do--while,for c).数组 int num[]={1,2,3,4,5}; <> int []num={1,2,3,4,5}; int num[]=new int[size]; int num[]=new int[]{1,2,3,4,5}; 3.面向对象的基础 a).类:具有相同属性和行为的一组对象的集合 b).对象:客观存在的或可被描述的抽象对象,具有特定属性和行为的实体。 c).类是对象的模板(原型),对象是类的具体实例 d).抽象、封装、继承,多态(重载,重写,接口多实现) e).构造方法(默认构造器/参数化构造器) f).限制访问修饰符: private,缺省(默认),protected,public g).附加修饰符:final,static,abstract h).接口 4.Java 基础包 a). java.lang : 包装类(Byte,Character,Short,Integer,Long,Float,Double,Boolean) 其它类:String,StringBuffer,Math,Class,Object b). java.util 随机类:Random 日期类:Date,Calender 集合框架体系:Collection,List,Set,ArrayList,LinkedList,Vector,HashMap c). java.io 文件类:File 字节流:FileInputStream,FileOutputStream 字符流:FileReader,FileWriter,BufferedReader,BufferedWriter 二进制流:(了解) DataInputStream,DataOutputStream 构造键盘流:BufferedReader input=new BufferedReader(new InputStreamReader(System.in)); d). java.swt /javax.swing 容器类组件:JFrame,JPanel,JScrollPane 组件: JLabel,JTextField,JPasswordField,JTextArea,JComboBox, JRadioButton,JCheckBox,JMenuBar,JMenu,JMenuItem 5.JDBC 数据库连接 数据库的连接步骤: 1). 加载数据库驱动类: Class.forName(driver) 2). 通过驱动程序管理器获取连接: DriverManager.getConnection(url,user,password) 3). 基于连接对象建立处理器对象/预处理器对象 Statement stmt=conn.createStatement(); PreparedStatement stmt=conn.prepareStatement("insert into student values(?,?,?,?,?)"); 4). 处理器执行SQL命令(Select/Insert/Update/Delete)executeQuery(Select) ==>返回查询的结果集(ResultSet, ResultSet.getXXX(列编号,从1开始)) executeUpdate(Insert/Update/Delete) ==>返回执行命令影响的记录行(int) 5). 关闭各个对象 导入java.sql包 一、加载要连接数据库的驱动程序 Class.forName(driver) 注:Class.forName()方法将给定的类加载到JVM,如果系统中不存在给定的类, 则会引发异常 二、通过驱动程序管理器得到连接实例 Connection conn=DriverManager.getConnection(url,user,pwd); 注1:DriverManager类跟踪已注册的驱动程序,通过getConnection(URL)方法, 找到一个能够连接至URL中指定的数据库驱动程序,它接收三个参数, 分别表示: 数据源的名称(类型) 、用户名(可选)、密码(可选) 注2: 1). localhost 表示本机,也可以用127.0.0.1 如果你连的不是本机,可能通过 机器名 或 IP(192.111.113.100) 来连接 2). 1433是端口号,SQL server默认是1433 , 自己可以手工的改动它 3). databasename后面跟你的数据库的名称,表示你要连接的数据库是哪个 4). 最后是用户名及密码, 当前可以访问该数据库的用户及密码 注3:基于不同连接方式和不同类型的数据源连接字符串如下: 1. Jdbc-Odbc桥 (SQLServer/Microsoft Access )数据库 1.1 加载驱动程序: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 1.2 建立数据源(控制面板中配置数据源,MyDataSource是数据源名称) conn=DriverManager.getConnection("jdbc:odbc:MyDataSource"); 2. 直连SQLServer 驱动程序: -- SQLServer 2000: 2.1 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 2.2 conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;dataBaseName=DBName","sa",""); -- SQLServer 2005: 3.1 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 3.2 conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; dataBaseName=DBName","sa",""); -- 直连Access 驱动程序: 4.1 加载驱动程序: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 4.2、不建立数据源 ,直接写连接字符串 conn=DriverManager.getConnection("jdbc:odbc:;Driver=Microsoft Access Driver (*.mdb);DBQ=Test.mdb"); 注: 1). DBQ后面指定的是要连接的Access 数据库 2). Microsoft Access driver (*.mdb) 中。
通过Java认证 SCJP 考试之精辟总结 1.switch里面只能是short,int,char,byte的. 2.if (a="a") 编译错, if(a=false)编译ok,原因是a=false的a代表了个boolean值 3.这种写法Outer.Inner i = new Outer().new Inner(); OK! 4.文件里, 8 默认是int, 8.0默认是double 5.八进制是 0开头,不是O(英文o) 6.byte -128~127 ,-128是二进制的多少? 7. -1>>32还是-1, -1>>>32为什么还是-1? 8. char c='c'; String s ="s"; s+=c;结果是 sc!!! 9. boolean b1=true; boolean b2=true; System.out.println(b1 b2); 结果是true.编译没错! 10.java的默认import包有哪些? 类和对象(Class and Object) 0.最外层的类可以声明成final:final class a{} ok!,但是不能是private和static的. 1.overload是同类里同样的方法名,override是父子的继承 2.override的返回结果必须一样,否则编译错哦 The return type of an overriding method is identical to the return type of the method it overrides. 3.super.super(),靠,错的,没这么写的 4.static和非static之间永远无法override! 5. 看程序 以下是引用片段: public class A{ void test1() throws baseEx{hi();} void hi(){System.out.println("say hi,a");} } class AA extends A{ void hi(){System.out.println("say hi,aa");} } class test{ static void main(String b[]) throws Exception{ A a = new AA(); a.test1(); } } 结果是,"say hi,aa",这说明什么?说明,方法永远跟着类的原来面目走;而,变量恰恰相反! 6.一个非抽象方法死活也别想override成一个抽象方法 7.override的子类的方法抛出的的异常只能是父类方法抛出异常的子异常类,或者无! 8.构造器不能是native,final,static,synchronized的,可以是public,private,什么都没有的,呵呵 9.构造器函数里还可以写return呢,但后面什么都不许有,甚至null(这不是废话吗,哈哈) 10.构造器不能返回值.这大家都知道,但如果有个"构造器"反值了,别紧张,它就不是构造器喽,只是个普通函数 11.super();this();这两个函数只能在构造函数里调用. 12,成员变量声明时候赋值,比构造函数还早.int i=1; ealier than Test(){} 13.方法的参数变量可以是final. 14. hashCode返回一个int 15. void wait() throws InterruptException wait扔InterruptException异常 16. java.lang.Void 是void的包装类 17. Byte,Interger,Double。
所有的跟数有关的包装类都是继承于Number 接口Interface) 1.接口的所有方法默认都是public,abstract和non-static的 2.接口的所有变量默认都是public,static,final的.所以,接口的变量不能改值,在它的实现类里. 3.接口的实现类实现的方法必须和接口的方法抛出同样的异常,不许是子类,这和override不一样!同样,如果接口方法没有抛,实现方法也不能抛 4.实现类实现的方法必须显式的声明成public,什么都不写都不行,啊!!! 5.接口不能声明成final,要不它怎么被实现呢(这好像又是废话啊 6.一个类实现两个接口,如果两个接口有相同的方法,实现类就实现这个方法,没问题的. 更多JAVA技术信息请咨询美 国硅谷SVSE徐东校区 。
java开发技术学习基本上有下边几个阶段的主要内容,大家可以参考一下:第一阶段:java基础本阶段除了JavaSE中要求大家必会的java基础知识外,重点加强了数据结构思想、集合源码分析、jdk9-11新特性的学习。
第二阶段:数据库本阶段主要学习MySQL数据库知识,通过层层递进,让大家掌握开发使用的数据是如何存储和处理的。并且逐步深入学习到索引和优化、锁机制、存储过程等。
第三阶段:web网页技术本阶段以项目案例为驱动,采用所学即所用的方式指导大家学习,在边学边练过程中,可深入掌握Web开发技术,具备与之匹配的实战能力。第四阶段:框架学习本阶段主要是学习市面上流行的框架技术来提升自己的开发能力,再辅以Linux命令以及Linux服务器的使用等内容让新手学到技术,让老手学到思想,让高手学到境界。
第五阶段:互联网高级技术主要讲解分布式管理系统、Keepalived+Nginx主备、微服务架构技术、消息中间件技术、MySQL调优、高并发技术、性能优化、内存和GC等。第六阶段:企业项目本阶段主要是通过让学员学习企业流行的项目,在动手实操的过程中加深前面知识的认识,并且增加学员企业项目开发经验。
根据大家在Java开发过程中容易混淆的知识点,下面进行一个总结。
1.Java语言的三种技术架构J2EE:企业版是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如 Servlet、Jsp等,主要针对于Web应用程序开发。
J2SE:标准版是为开发普通桌面和商务应用程序提供的解决方案。该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。
J2ME:小型版是为开发电子消费产品和嵌入式设备提供的解决方案。该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。
2.Java的跨平台性指通过Java语言编写的应用程序在不同的系统平台上都可以运行。 实现步骤只需要在运行Java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。
3.函数就是定义在类中的具有特定功能的一段独立小程序。通过定义函数可以将功能代码进行封装,提高了代码的复用性。
4.重载指在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。 5.数组:概念:同一种数据类型的集合。
好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:3.388秒