请教如何开始学习dp(针对java)?

我已经对java比较了解,也写过不少的程序,
现在很想学习针对java的设计模式,大家有什么好的经验可以教小弟吗?
或则介绍一些比较好的书啊。
谢谢大家。

回答: 请教如何开始学习dp(针对java)?

  1. 要分,
    我也不知道,所以才学学设计模式

请教:我想把公司目前的java开发平台集成到eclipse上,如何学习

  1. Q
    目前这个所谓的开发平台已经用了一段时间了,但是仅仅是提供了一些web的配置界面和各种配置文件。我想把它作为eclipse插件的方式进行开发,比如我增加一个功能模块,可以通过eclipse插件快速的添加,自动形成部分代码等等。
    但是我只是会用eclipse做项目开发,插件部分没有接触过,请教应该怎么学习,或者怎么入手,有没有相关书籍推荐,谢谢。
  2. A
    国内 www.eclipseworld.org/bbs/  (还凑活)

    IBM http://www.ibm.com/developerworks/cn/eclipse/ (相当好)

    官方的站点教程更新慢 而且打开很慢 不建议你去看

    IBM是最好的选择 不管你是Plugins还是RCP开发

代我妹妹向各位过来人请教:如何学习java及是否必要学习XML,理由呢?

  1. Q
    俺妹妹想学习java,由于本人对此方面一无所知,请各位过来人指点迷经!
    我想向大家请教以下问题:
    1.java的学习阶段,就像C++里有侯sir提到学习阶段;就比如就刚开始学习java,进一步学习java core,再J2EE或OOP等,我这只是个比喻,请大家能详细说明。
    2.请大家推荐每个学习阶段的学习书籍,想在初段使用什么书籍?,最好是国内有卖的,俺妹的E文一团糟。
    3.学习java,有没有必要同时学习XML?,给点理由吧!
    4.有没有必要参加JAVE认证,给点理由?,如果要,参加哪个认证?,用哪个教程?
    5.如果有必要学习XML,请推荐各个阶段的学习书籍!,学到什么程度(以找工作为基准)?

    恳求过来人引渡一下我的小妹,在这时我代表我小妹感谢大家!,谢谢!
  2. A
    同意duker()的看法,只有在不断的学习和冲刺中才能锻炼一个人学习的综合能力,学习没有捷径可言,也许现在你能为她找到捷径,但她却失去了摸索捷径的能力,再更高的竞争中丧失了战斗力,或许你的做法值得考虑,当然,只是或许......

请教,泛型DAO调试不通,提示java.lang.NullPointerException.

  1. Q
    刚刚接触学习泛型DAO,按照网上的一个例子来写,运行就提示,Exception in thread "main" java.lang.NullPointerException。开发环境是myeclipse6.5,jdk5.0,只好来这里请教,代码如下:

    文件列表1:
    文件名 说明 
    IDao.java dao的顶层抽象接口 
    AbstractDao.java IDao的实现类,实现了get/update/delete等基本操作 
    User.java USER表对应的entity定义 
    IUserDao.java USER表操作DAO接口定义 
    UserDao.java USER表操作DAO实现 
    HelloGenerics.java 测试类 
    
    IDao.java
    // super dao interface
    public interface IDao <T, PK extends Serializable> {
        public T get(PK pk);
        public List <T>getAll();
        public PK save(T entity);
        public void update(T entity);
        public void saveOrUpdate(T entity);
        public void delete(T entity);
    }
    
    AbstractDao.java
    //super abstract dao class
    public abstract class AbstractDao <T, PK extends Serializable>implements IDao<T, PK> {
        private Class clz;
        
        public AbstractDao(Class clz) {
             this.clz = clz;
         }
        
        public T get(PK pk) {
            return (T)getSession().get(clz, pk);
         }
        public List <T>getAll() {
            return getSession().createCriteria(clz).list();
         }
        public PK save(T entity) {
            return (PK)getSession().save(entity);
         }
        public void update(T entity) {
             getSession().update(entity);
         }
        public void saveOrUpdate(T entity) {
             getSession().saveOrUpdate(entity);
         }
        public void delete(T entity) {
             getSession().delete(entity);
         }
        
        private Session session;
        protected Session getSession() {
            //wrap session in a class such as HibernateUtils, then you can use   HibernateUtils.getCurrentSession() for getting a session.
            return session;
         }
    }
    
    User.java
    //persist entity
    public class User {
        private String id;
        private String name;
        
        public String getId() {
            return id;
         }
        public void setId(String id) {
             this.id = id;
         }
        public String getName() {
            return name;
         }
        public void setName(String name) {
             this.name = name;
         }
        
        //... setter/getter HERE
    }
    IUserDao.java
    //User Dao interface
    public interface IUserDao extends IDao <User, String> {
        // all are empty
    }
    
    UserDao.java
    //UserDao Implementation
    public class UserDao extends AbstractDao <User, String> implements IUserDao {
        public UserDao() {
            super(User.class);
         }
        // or use the following constructor
        //public UserDao(Class<User> type) {
        //     super(type);
        //}
    }
    
    HelloGenerics.java 
    public class HelloGenerics {
    
        public static void main(String[] args) {
             IUserDao userDao = new UserDao();
             User user = userDao.get("1");
            if (user != null) {
                 System.out.println(user.getName());
             }
            
             List<User> userList = userDao.getAll();
            for (User u:userList) {
                 System.out.println(user.getName());
             }
         }
    }
  2. A
    晕哦,当然要抛空指针异常了

    你的UserDao类的成员session都没有设置,你哪来的session

请教大家原来Sun方面的Java认证在Oracle公司的情况,特别是SCEA(Java构架师)的情况

  1. Q
    大家好! 原来Sun的Java认证中有一个最高级的SCEA(Java构架师)的认证,有谁知道现在Oracle公司对这个认证是怎么处理的,需要考试几门课程 ? 另外,如果要参加Oracle公司的Java方面的认证,需要到哪里注册和考试 ? 现在市场上大部分是Oracle数据库的认证
  2. A
    跟SCJP一样的性质吧。我觉得以考试的学习可以报考。现在也没啥考的了 无非是英语 日语  PMP MBA Oracle ocp ocm 在就是软考。  在学计算机的还能考啥。 

有没有适合学习的开源java web 项目?

  1. Q
    我想学习下架构设计,权限管理,事务处理, 分页,日志,上传下载,异常处理,和网络安全的最佳实践,现在找到两个合适的项目,都是iteye网友的:thinkgem的jeesite和jinnianshilongnian的es,大家有没有类似的推荐,希望文档齐全,项目不要太庞大,谢谢大家
  2. A
    楼主可以了解下SpringSide
    https://github.com/springside/springside4
    里面包含了不少WEB开发的最佳实践。有没有适合学习的开源java web 项目?

刚学习JSF,出现java.lang.ClassNotFoundException的异常

  1. Q

     

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>0</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.faces</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
    

     而且lib 也导入这些依赖包


    刚学习JSF,出现java.lang.ClassNotFoundException的异常

    但项目运行的时候都会出现下面的异常,包括复制别人的项目

     

    异常如下:
    java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet

      at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)

    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)

    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525)

    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507)

    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:124)

    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1136)

    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080)

    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015)

    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302)

    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:897)

    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:873)

    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)

    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1095)

    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1617)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

    at java.util.concurrent.FutureTask.run(FutureTask.java:138)

    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

    at java.lang.Thread.run(Thread.java:619)

     

  2. A
    检查一下你的jsf-api.jar有没有在服务器的classpath里,你的截图是IDE里的classpath,作不得准。

请教大家怎么学习前端的方法。我只是希望成长的一个小白

  1. Q
    大家好,我是一个前端小白,只有一些js,jquery的基础。希望在前端方面有发展,愿各位大神可以分享一下应该怎么学习成长,是看效果的源码么?逛技术blog?还是怎么样?希望能指导我这个小菜鸟怎么才可以成长。不怕苦不怕累,只怕不会~。这些天都在迷茫,都不知道怎么去学习。东抓一点看,西抓一点看。谢谢了
  2. A
    前端的核心(要工资的势力部分)是js,所以一定要学好基础原生的js,个人建议去看看妙味视频,或javascript高级程序设计,第三版(电子版)。一个主攻面试,一个主攻实践。这个组合能帮你丰富作品或简历或增涨知识扩大眼界等。
    前端辅助是:css,建议阅读 css那些事儿,精通css 第二版。
    另外:
    学习的技巧是动手,学习的灵魂是坚持。
    只要坚持,其实每天都在成长,只是你感觉不到或太着急而已。但这个月与前几月相比,已经有量的变化,量变引起质变。
    另外现在的环境与前端氛围与前几年不能比了,但是新的历史环境下有新的机遇和任务要求。简单一句,机遇与挑战并不,泪水汗水齐飞。
    别外好多人泡qq群,其实qq群不是学习的主战场,群只是学习的辅助手段,要是想安心学习就是关QQ,短网,得靠自己。


请教一段代码的解释:java 算文件的MD5值是怎么用十六进制表示的?

  1. Q
    import java.io.*;
    import java.security.*;
    
    public class HashFile {
    
    	/**
    	 * @param args
    	 */
    	public static char[] hexChar = { '0', '1', '2', '3', '4', '5', '6', '7',
    			'8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
    
    	public static void main(String[] args) {
    		String fileName = "F:\\soft\\Firefox.exe";
    		String hashType = "MD5";
    		try {
    			System.out.println(hashType + " == " + getHash(fileName, hashType));
    			
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    
    	public static String getHash(String fileName, String hashType)
    			throws Exception {
    		InputStream fis;
    		fis = new FileInputStream(fileName);
    		byte[] buffer = new byte[1024];
    		MessageDigest md5 = MessageDigest.getInstance(hashType);
    		int numRead = 0;
    		while ((numRead = fis.read(buffer)) > 0) {
    			md5.update(buffer, 0, numRead);
    		}
    		fis.close();
    		return toHexString(md5.digest());
    	}
    
    	public static String toHexString(byte[] b) {
    		StringBuilder sb = new StringBuilder(b.length * 2);
    		for (int i = 0; i < b.length; i++) {
    			sb.append(hexChar[(b[i] & 0xf0) >>> 4]);
    			sb.append(hexChar[b[i] & 0x0f]);
    		}
    		return sb.toString();
    	}
    }

    请高手解释以下toHexString(byte[] b)方法,主要是这两句:
    sb.append(hexChar[(b[i] & 0xf0) >>> 4]);
    			sb.append(hexChar[b[i] & 0x0f]);

    hexChar[(b[i] & 0xf0>>> 4,hexChar[b[i] & 0x0f]这到底是什么意识?
    谢谢!
    问题补充:
    谢谢楼上的!大致明白了,这里应该是拿字节byte和十六进制的做and的比较!但这里为什么要用0xf0呢?
  2. A
    &这个是位运算“且”

    sb.append(hexChar[(b[i] & 0xf0) >>> 4]);
    //(b[i] & 0xf0)这个意思就是取b[i]的后4位
    “>>> 无符号右移”


    sb.append(hexChar[b[i] & 0x0f]);
    //这个意思就是取b[i]的前4位

新手:刚接触vx,请教一下如何学习vx驱动开发,有没有好的书籍推荐?

  1. Q
    RT,已有workbench平台和vx工作环境。
    但对于vx内核配置、库、结构等,都不清楚,看了vx自带的一些文档,还是不太懂,生涩。
    谢谢大家,希望给个思路,推荐好的学习书籍。
  2. A
    如果是新手,建议直接学习vxbus把

    现在都用6.8以上了