胖刘老师 胖刘老师
关注数: 45 粉丝数: 136 发帖数: 762 关注贴吧数: 3
《tnking in Java》前十五章的勘误 先感谢一下“白爽”这位朋友,很少有朋友能象他一样有热情去做这样一件事。 《Java编程思想》的原著《tnking in Java》是世界上最经典的Java教程,从书中读者评价中可以看到全世界的Java爱好者公认这是一本通俗易懂,讲解生动的经典书籍,可是翻译成中文后,却成了公认的天书了呢?原因就是到处是拗口难懂的句子,还有到处的错字,翻译的错误。它还能通俗易懂了吗? 答案是否定的。我痛苦的读了本书的大半,真的很痛苦,因为我仔细推敲每一处,每一句话,与英文原著对比。除了原著的极少几处错误外,都是译著的错误,如果我说本书没有经过校对过就出版了,没有人反对吧?至少书中写的专家指导委员会是虚设的,他们如果有人看过本书就不会出现这么多错误了,我把勘误发给机械工业出版社责任人,他们百般推脱,虽然承认书的错误,可是就是不肯再版时更正,也不肯发勘误,理由是“太忙了”,然后又推托说他们不懂技术,不懂技术的人负责出版Java书籍,如何保证质量?可笑啊! 本书有这么多错误会误导多少人?浪费多少人的时间呐?简直是在犯罪。为了让更多的读者能摆脱错误的误导,我把我总结的勘误发上来,希望你们能先在书中改正然后再读,这样会轻松很多,其余的勘误部分,我一时还没有时间整理,一旦完成也发上来。 我整理的非常细致,我甚至相信我勘误完成后的部分再极难发现错误了,这些都是我工作之余抽时间整理的,熬了多少个凌晨1、2点。希望更多的Java战士们能从中受益。 有分就给,没有分直接向我要即可。email联系:[email protected] (白爽的信箱) 下载地址 http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fdownload.csdn.net%2Fsource%2F1902437&urlrefer=9dc3d16702ebd923c96997309c2cf8fd
Spring学习 第三节 Spring的核心容器---续: 用ref属性指定依赖的三种方式 1:用local属性指定:local属性的值必须与被参考引用的bean的id一致,如果在同一个xml文件里没有匹配的元素,xml解析将产生一个错误 如: Hello World! 2:用bean属性指定 用ref元素中的bean属性指定被参考引用的bean是spring中最常见的形式,它允许指向的bean可以在同一xml文件中也可以不在同一个xml文件里 bean属性的值可以与被引用的bean的id相同也可以与name相同。 Hello World! 3:用parent属性指定 用ref元素中的parent属性指定被参考引用的bean时,允许引用当前BeanFactory或ApplicationContext的父BeanFactory或ApplicationContext bean属性的值可以与被引用的bean的id相同也可以与name相同。 Hello World! 用local属性指定和用bean属性指定的比较 相同:都可以使用id来参考引用,可以对同一xml文件进行参考引用 不同:bean属性的值可以与被引用的bean的id相同也可以与name相同。可以引用不在同一个xml文件里的bean ---------------------------------------------------------- bean自动装配的5种模式: 可以使用bean元素的autowire属性来指定bean的装配模式: 1:byName 2: byType 3:constructor 4:autodetect 5:no 显示的指定依赖如:property 和constructor-arg元素总会覆盖自动装配。对与大型应用不鼓励使用自动装配 -------------------------------------------------------------- bean 依赖检查的4种模式: 依赖检查能够分别对每个bean应用或取消应用,默认的是不检查依赖关系, 可以使用bean元素的dependency-check属性来指定bean的依赖检查,共有4种: 1:使用simple模式 是指对基本类型、字符串和集合进行依赖检查 如: 只会对msg进行检查 2:使用object模式 是指对对象进行依赖检查 如: 只会对date进行检查 3:使用all模式 是指对所有属性进行依赖检查 如: 会对msg进行检查和date进行检查 4:使用none模式 是指对所有属性不进行依赖检查 如: 不会对msg进行检查和date进行检查 总结:一般情况下依赖检查和自动装配结合使用,当bean属性都有默认值或不需要对bean的属性是否被设置到bean上检查时,依赖检查的作用就不大了 -----------------------------------------------------------------------集合的注入方式对于集合List Set Map Props元素则有不同的配置方式1:List public class HelloWorld{ //定义一个List变量msg List msg=null; public void setMsg(List msg){ this.msg = msg; } } xml文件: Hello World! Hello World2! 2:set public class HelloWorld{ //定义一个Set变量msg Set msg=null; public void setMsg(Set msg){ this.msg = msg; } } xml文件: Hello World! Hello World2! 3:map public class HelloWorld{ //定义一个Map变量msg Map msg=null; public void setMsg(Map msg){ this.msg = msg; } } xml文件: Hello World! Hello World2! 4:properties public class HelloWorld{ //定义一个properties变量msg Properties msg; public void setMsg(Properties msg){ this.msg = msg; } } xml文件: Hello World! Hello World2!
Spring学习 第三节 Spring的核心容器---续: 用ref属性指定依赖的三种方式 1:用local属性指定:local属性的值必须与被参考引用的bean的id一致,如果在同一个xml文件里没有匹配的元素,xml解析将产生一个错误 如: Hello World! 2:用bean属性指定 用ref元素中的bean属性指定被参考引用的bean是spring中最常见的形式,它允许指向的bean可以在同一xml文件中也可以不在同一个xml文件里 bean属性的值可以与被引用的bean的id相同也可以与name相同。 Hello World! 3:用parent属性指定 用ref元素中的parent属性指定被参考引用的bean时,允许引用当前BeanFactory或ApplicationContext的父BeanFactory或ApplicationContext bean属性的值可以与被引用的bean的id相同也可以与name相同。 Hello World! 用local属性指定和用bean属性指定的比较 相同:都可以使用id来参考引用,可以对同一xml文件进行参考引用 不同:bean属性的值可以与被引用的bean的id相同也可以与name相同。可以引用不在同一个xml文件里的bean ---------------------------------------------------------- bean自动装配的5种模式: 可以使用bean元素的autowire属性来指定bean的装配模式: 1:byName 2: byType 3:constructor 4:autodetect 5:no 显示的指定依赖如:property 和constructor-arg元素总会覆盖自动装配。对与大型应用不鼓励使用自动装配 -------------------------------------------------------------- bean 依赖检查的4种模式: 依赖检查能够分别对每个bean应用或取消应用,默认的是不检查依赖关系, 可以使用bean元素的dependency-check属性来指定bean的依赖检查,共有4种: 1:使用simple模式 是指对基本类型、字符串和集合进行依赖检查 如: 只会对msg进行检查 2:使用object模式 是指对对象进行依赖检查 如: 只会对date进行检查 3:使用all模式 是指对所有属性进行依赖检查 如: 会对msg进行检查和date进行检查 4:使用none模式 是指对所有属性不进行依赖检查 如: 不会对msg进行检查和date进行检查 总结:一般情况下依赖检查和自动装配结合使用,当bean属性都有默认值或不需要对bean的属性是否被设置到bean上检查时,依赖检查的作用就不大了 -----------------------------------------------------------------------集合的注入方式对于集合List Set Map Props元素则有不同的配置方式1:List public class HelloWorld{ //定义一个List变量msg List msg=null; public void setMsg(List msg){ this.msg = msg; } } xml文件: Hello World! Hello World2! 2:set public class HelloWorld{ //定义一个Set变量msg Set msg=null; public void setMsg(Set msg){ this.msg = msg; } } xml文件: Hello World! Hello World2! 3:map public class HelloWorld{ //定义一个Map变量msg Map msg=null; public void setMsg(Map msg){ this.msg = msg; } } xml文件: Hello World! Hello World2! 4:properties public class HelloWorld{ //定义一个properties变量msg Properties msg; public void setMsg(Properties msg){ this.msg = msg; } } xml文件: Hello World! Hello World2!
Spring学习 第一节 提前声明这是我认识的一个老师写的,我认为不错所以贴过来让大家看看springSpring 的创立者 Rod Johnson ----------------------------------------------------------spring 7大组成模块: 1:spring core:提供了spring 的核心功能,BeanFactory是spring核心容器的主要组件, 它通过Ioc把程序的配置和依赖性与实际的代码分开,是整个spring的基础 2:spring context:通过配置文件向spring提供上下文信息, 它构建在BeanFactory之上,另外增加了国际化和资源访问等功能 3:spring dao:提供了一个简单有效的JDBC应用 4:spring aop:提供了面向方面编程的功能 5:spring orm:spring除了有自己的JDBC以外还提供了对其他ORM框架的支持,如Hibernate,都可以和spring进行良好的结合 6:spring web:提供了简化的处理多部分请求以及把请求参数绑定到域的任务。 7:spring MVC:提供了MVC2模式的实现,也可以和struts良好的集成在一起。 这七大模块可以单独使用,不需要其他模块的支持 -------------------------------------------------------- spring的特点: 1:设计良好的分层结构。 2:以IOC为核心,提倡面向接口编程。 3:良好的架构设计。 4:可以代替EJB 5:实现了MVC2 6:可以和其他框架良好的结合如:Hibernate ,struts等 编写第一个HelloWorld程序: 1:interface public interface IHelloWorld { public void sayHello(); } 2:实现类: public class HelloWorld implements IHelloWorld{ private String msg; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public void sayHello(){ System.out.println(msg); } } 3:编写spring配置文件:applicationContext.xml Hello World! 4:编写测试类: public class TestHelloWorld { public static void main(String[] args) { ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml"); IHelloWorld hw= (IHelloWorld)ac.getBean("Hello"); hw.sayHello(); }}完整代码请下载---------------------------------------------------------------------依赖注入的三种方式:1:接口注入2:set注入3:构造注入spring支持set注入和构造注入把上面的HelloWorld改为构造注入: 1:实现类: public class CHelloWorld implements IHelloWorld{ public String msg; public CHelloWorld(String msg){ this.msg = msg; } public void sayHello(){ System.out.print(msg); } } 2:在spring配置文件:applicationContext.xml中: C Hello World! constructor-arg 用来表示用构造方式注入参数 index="0"表示是构造方法中的第一个参数 3:编写测试类: public class TestHelloWorld { public static void main(String[] args) { ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml"); IHelloWorld hw= (IHelloWorld)ac.getBean("CHello"); hw.sayHello(); }}
【发贴需知】【贴吧吧规】【发贴需知】【贴吧吧规】【发贴需知】【 即日起,为保证正常的网络秩序,避免像有些贴吧一样,吧务混乱、无人看管。 本吧决定对所有帖子和作者都实行严格的审查制度。 JAVA吧大原则:请使用ID发贴,使用IP发贴者原则上一律删除1. 禁止散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的文章。 2.恶意灌水者,第一次发现给予警告,第二次发现封锁ID一到十天,解封以后再次发现此ID有恶意灌水现象,ID将被永久封锁。所以请大家自觉。 3. 禁止含有虚假、有害、胁迫、侵害他人隐私、骚扰、侵害、中伤、粗俗、猥亵、或其它道德上令人反感的内容。 4.广告(包括qq空间,博客、网站等宣传),一律删除,封ID。 5.若只发一个来历不明的网址,在不加说明的情况下,一律视为散播病毒,封ID,删帖。 6.来挑衅,发现侮辱其他作者。删无赦,永久封ID。 7.无故骂人者,删帖;主动犯贱找骂者,删帖。 即日开始实施,望吧民严格遵守! 同时发贴问问题者请注意:以后发问请使用以下格式【请教】(括号内填写关键此,如:J2SE、HTML等)具体问题的简单表达例:【请教】(J2SE)实现qq聊天程序的成员列表用什么做比较好 以下求问方式,从即日起实行删除制度1 哪位帅哥帮帮小女子啊!作业不会做哦,5555555哭泣.......2 高手们,给个程进度条!3 急求记忆翻牌游戏java源代码4 帮我看看这程序,老师也回答不了我同时有两点要说明1 请尊重帮你解答问题的朋友,对他们说声谢谢2 请求助者最好能说明一下自己情况,比如你是在什么学习情况下遇到的问题,还有吧内在培训机构的学习的人也不少,我希望求助者能大度点,说出你在哪里学习,也好对看贴者有所帮助。有不妥的地方请大家多多包含(也可用消息直接和我说)
请使用ID发帖 这是转的IP:218.80.53.*的帖子 J2EE面试题J2EE面试题集锦(附答案) 一、基础问答   1.下面哪些类可以被继承?    java.lang.Thread (T)    java.lang.Number (T)    java.lang.Double (F)    java.lang.Math (F)    java.lang.Void (F) java.lang.Class (F)    java.lang.ClassLoader (T)   2.抽象类和接口的区别   (1)接口可以被多重implements,抽象类只能被单一extends   (2)接口只有定义,抽象类可以有定义和实现   (3)接口的字段定义默认为:public static final, 抽象类字段默认是"friendly"(本包可见)   3.Hashtable的原理,并说出HashMap与Hashtable的区别   HashTable的原理:通过节点的关键码确定节点的存储位置,即给定节点的关键码k,通过一定的函数关系H(散列函数),得到函数值H(k),将此值解释为该节点的存储地址. HashMap 与Hashtable很相似,但HashMap 是非同步(unsynchronizded)和可以以null为关键码的.   4.forward和redirect的区别   forward: an internal transfer in servlet   redirect: 重定向,有2次request,第2次request将丢失第一次的attributs/parameters等   5.什么是Web容器?   实现J2EE规范中web协议的应用.该协议定义了web程序的运行时环境,包括:并发性,安全性,生命周期管理等等.   6.解释下面关于J2EE的名词   (1)JNDI:Java Naming & Directory Interface,JAVA命名目录服务.主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能.   (2)JMS:Java Message Service,JAVA消息服务.主要实现各个应用程序之间的通讯.包括点对点和广播.   (3)JTA:Java Transaction API,JAVA事务服务.提供各种分布式事务服务.应用程序只需调用其提供的接口即可.   (4)JAF: Java Action FrameWork,JAVA安全认证框架.提供一些安全控制方面的框架.让开发者通过各种部署和自定义实现自己的个性安全控制策略.   (5)RMI:Remote Method Interface,远程方法调用   7.EJB是基于哪些技术实现的?并说 出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别.   EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现.   SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件.EntityBean被用来代表应用系统中用到的数据.对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑;EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体.   Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless Session Bean .这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体.Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method.换言之,很可能数个使用者在执行某个 Stateless Session Bean 的 methods 时,会是同一个 Bean 的 Instance 在执行.从内存方面来看, Stateful Session Bean 与 Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态.   8.XML的解析方法   Sax,DOM,JDOM   9.什么是Web Service?   Web Service就是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。
跟胖刘老师学习java/j2ee技术--8 跟我学JAVA----自动生成Schema import java.awt.* ;import javax.swing.* ;import java.sql.* ;import java.awt.event.*;import java.util.EventListener;import java.util.* ;import javax.swing.event.*;import java.io.* ;public class MyXSD1 extends JFrame implements ActionListener, ListSelectionListener {JComboBox c_database = new JComboBox() ;JList l_table = new JList() ;JPanel rightPanel = new JPanel() ;MyXSD1() { this.setSize(300 , 400) ; //new组件 JButton b = new JButton("生成") ; //填充c_database的内容 try { Connection cn = this.getConnection("master") ; Statement st = cn.createStatement() ; ResultSet rs = st.executeQuery("select name from sysdatabases") ; while(rs.next()){ c_database.addItem(rs.getString("name")) ; } } catch (Exception ex) { } //注册事件监听 c_database.addActionListener(this) ; l_table.addListSelectionListener(this) ; b.addActionListener(this) ; //布置左边的面板 JPanel leftPanel = new JPanel() ; leftPanel.setLayout(new BorderLayout()) ; leftPanel.add(c_database , BorderLayout.NORTH) ; leftPanel.add(l_table , BorderLayout.CENTER) ; leftPanel.add(b ,BorderLayout.SOUTH) ; //布置窗体 this.setLayout(new GridLayout(1 , 2)) ; this.add(leftPanel) ;}public Connection getConnection(String dataBaseName) { Connection cn = null ; try { Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver") ; cn = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename="+dataBaseName,"sa","1234") ; } catch (Exception ex) { } return cn ;}public static void main(String args[]){ MyXSD1 w = new MyXSD1() ; w.setVisible(true) ;}public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("comboBoxChanged")){ //获得用户选择的数据库名 String database = (String)c_database.getSelectedItem() ; try { Connection cn = this.getConnection(database) ; Statement st = cn.createStatement() ; ResultSet rs = st.executeQuery("select name from sysobjects where xtype='U' and status>0") ; //JList 接收Vector,将表名存入 Vector v_tableName = new Vector() ; while(rs.next()){ v_tableName.addElement(rs.getString("name")) ; } l_table.setListData(v_tableName) ; } catch (Exception ex) { } } if(e.getActionCommand().equals("生成")){ //生成Schema try { //获得用户选择的库名&表名 String database = (String)c_database.getSelectedItem() ; String table = (String)l_table.getSelectedValue() ; //获得指定表的列信息 Connection cn = this.getConnection(database) ; Statement st = cn.createStatement() ; ResultSet rs = st.executeQuery("select count(*) from syscolumns where id=(select id from sysobjects where name='"+table+"')") ; rs.next() ; int size = rs.getInt(1) ;
经过考察证明松迪科技是一个很不实在的培训机构,大家不要上当 松迪科技 经过考察证明是一个很不实在的培训机构,大家不要上当一 到现在一个班都没有结课,就已经在说自己学院就业怎么怎么好二 课程设置一看就是忽悠学生,大家可以看http://www.sodii.com/train/class.jsp 这个页面的课程设置如:设计模式 GOF 设计模式 J2EE 设计模式1、熟练掌握 23 种 GOF 设计模式;2、了解其它模式思想; 27 课时4天不到的时间 23 种都掌握???!!!老师是天才还是你们学生是天才???本来不想说你们的 可你们在JAVA群里广告实在发的太多了,同时你们的宣传内容太假了我实在看不下去了,大家可以看看他们的介绍:   松迪科技(北京)有限公司是一家专注于知识型人才就业培养与职业规划的高科技公司,是中国惟一一家全面提供就业培养、职业规划与职业心理咨询一条龙服务的专业公司。松迪科技不仅拥有高端技术专家团队,同时也邀请了著名职业专家和心理专家加盟公司,开展“如何释放职业压力”的专项研究。  公司总部位于北京中关村核心区,毗邻北大、清华、北航、北邮等著名高校,也为高校学生参加公司活动提供了方便。大学生从毕业开始,就可接受松迪科技提供的就业培养服务。在这里,大学生们可以学到高端IT研发技术,同时顺利就业。就业后,公司还可为在职员工提供职业规划、职业心理咨询等服务。同时公司在北京郊区拥有野外拓展训练基地,也可为员工提供团队建设和野外拓展训练等服务。  同时,由于公司具备专业技术团队和大量开发人员,因此也可为企业提供信息化、自动化建设服务。团队成员大多为Java方面的技术专家,拥有专家做事的风格,会为您提供具备专家品质的服务。 "是中国惟一一家全面提供就业培养、职业规划与职业心理咨询一条龙服务的专业公司""由于公司具备专业技术团队和大量开发人员,因此也可为企业提供信息化、自动化建设服务。团队成员大多为Java方面的技术专家,拥有专家做事的风格,会为您提供具备专家品质的服务。"好大的口气啊!!!!我帮你们说了吧 你们以前就是长城教育,长城倒闭了,自己干了是不是???? 做市场不是靠忽悠学生做的!!!!!!记住吧你
跟胖刘老师学习java/j2ee技术--2 第一天 认识JDK 现在我们来看一看JDK安装的目录,里面有一个目录叫BIN,BIN里有这么几个文件:一个是javac.exe:就是它来帮你将java程序翻译成能够执行的形式,但这个过程不是想象的那么简单,它并不是将java程序翻译成你的计算机能够认识的形式,而是翻译成中间的形式,如果要真的去运行还需要再做翻译。为什么要费两遍劲呢?因为你的计算机很有可能和别人的计算机有差别(当然有差别了,这里的差别主要是操作系统的不同),如果直接翻译成你的计算机所能接受的形式,那么在别人的计算机上就不能直接运行了,我们当然要分享我们的成果了。我们来举个例子,一个外星人要和地球人说话,他说的当然是外星的话了,所以他就需要学会一种语言来翻译自己的意思,但是这个到底应该将外星的话翻译成汉语、英语还是日语呢?翻译成那个语言都有问题,因为他只能和地球上的一部分的人讲话,所以这个外星人去学习世界语,然后由当地懂世界语的翻译在解释给当地人听,这样外星人就不用带很多的翻译了,只是每到一个地方他就要去找当地的世界语协会。外星人自己将意思翻译成世界语的过程在Java中是Javac.exe来帮我们做的。那么当地的翻译是谁呢?java.exe和javaw.exe:我们管这两个程序叫解释器,就是当地世界语协会的翻译,他把世界语解释成了当地的语言,这和javac.exe有一个区别,javac.exe是将你写在纸上的程序(还记得程序是什么吧)翻译后写在另一张纸上,我们将这个过程叫做编译。而java.exe和javaw.exe是将纸上的内容,一句一句翻译给别人听,我们将这个过程叫做解释。java.exe是DOS下的解释器,而javaw.exe是windows下的解释器。别的东西以后在说,我们先来写第一个程序。
1 下一页