??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧洲国产成人精品,亚洲欧洲AV无码专区,亚洲AV永久无码区成人网站http://m.tkk7.com/tbwshc/category/51925.htmlzh-cnSat, 29 Jun 2013 23:14:29 GMTSat, 29 Jun 2013 23:14:29 GMT60Java内存理优化W记http://m.tkk7.com/tbwshc/archive/2013/06/28/401055.htmlchen11-1chen11-1Fri, 28 Jun 2013 08:59:00 GMThttp://m.tkk7.com/tbwshc/archive/2013/06/28/401055.htmlhttp://m.tkk7.com/tbwshc/comments/401055.htmlhttp://m.tkk7.com/tbwshc/archive/2013/06/28/401055.html#Feedback0http://m.tkk7.com/tbwshc/comments/commentRss/401055.htmlhttp://m.tkk7.com/tbwshc/services/trackbacks/401055.html  JVMq行环境中垃圑֯象的定义Q?br />  一个对象创建后被放|在JVM的堆内存(heap)中,当永q不再引用这个对象时Q它?yu)被JVM在堆内存(heap)中回收。被创徏的对象不能再生,同时也没法通过E序语句释放它们?br />  不可到达的对象被JVM视ؓ(f)垃圾对象QJVM给q些对象打上标记Q然后清扫回收它们,q将散碎的内存单元收集整合?br />  JVM理的两U类型的内存Q?br />  堆内?heap)Q主要存储程序在q行时创建或实例化的对象与变量?br />  栈内?stack)Q主要存储程序代码中声明为静?static)(或非静?的方法?br />  堆内?heap)通常情况下被分ؓ(f)两个区域Q新对象(new object)区域与老对?old object)区域?br />  新对象区域:(x)
  又可l分为Eden区域、From区域与To区域?br />  Eden区域保存新创建的对象。当该区域中的对象满了后QJVMpȝ做可达性测试,主要d是检有哪些对象由根集合出发是不可到辄Q这些对象就可被JVM回收Q且所有的zd对象从Eden区域拷到To区域Q此时有一些对象将发生状态交换,有的对象׃To区域被{UdFrom区域Q此时From区域有了对象?br />  该过E执行期_(d)JVM的性能非常低下Q会(x)严重影响到正在运行的应用的性能?br />  老对象区域:(x)
  在老对象区域中的对象仍有一个较长的生命周期。经q一D|间后Q被转入tb老对象区域的对象变成了垃圾对象Q此时它们被打上相应的标讎ͼJVM自动回收它们?br />  不要频繁强制pȝ做垃圑֛Ӟ因ؓ(f)JVM?x)利用有限的pȝ资源Q优先完成垃圑֛收工作,致应用无法快速响应来自用L(fng)的请求,q样?x)媄响系l的整体性能?br />  2. JVM中对象的生命周期
  对象的整个生命周期大致分?个阶D:(x)创徏(creation)、应?using)、不可视(invisible)、不可到?unreachable)、可攉(collected)、终l?finalized)、释?free)?br />  1) 创徏阶段
  pȝ通过下面步骤Q完成对象的创徏Q?br />  a) 为对象分配存储空?br />  b) 开始构造对?br />  c) 递归调用其超cȝ构造方?br />  d) q行对象实例初始化与变量初始?br />  e) 执行构造方法体
  在创建对象时的几个关键应用规则:(x)
  避免在@环体中创建对象,即该对象占用内存空间不?br />  量?qing)时使对象符合垃圑֛收标?br />  不要采用q深的承层?br />  讉K本地变量优于讉KcM的变?img src ="http://m.tkk7.com/tbwshc/aggbug/401055.html" width = "1" height = "1" />

chen11-1 2013-06-28 16:59 发表评论
]]>
java 数据库通用操作c?http://m.tkk7.com/tbwshc/archive/2013/05/27/399828.htmlchen11-1chen11-1Mon, 27 May 2013 08:55:00 GMThttp://m.tkk7.com/tbwshc/archive/2013/05/27/399828.htmlhttp://m.tkk7.com/tbwshc/comments/399828.htmlhttp://m.tkk7.com/tbwshc/archive/2013/05/27/399828.html#Feedback0http://m.tkk7.com/tbwshc/comments/commentRss/399828.htmlhttp://m.tkk7.com/tbwshc/services/trackbacks/399828.htmlpackage com.hospital.dao.tools;
 
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import org.apache.log4j.Logger;
 
/**
 * 数据库操作管理类
 * 
 * @author Harlyhood
 * 
 */
public class DBManager {
 
    // --------------------------------------------------------- Instance
    private static Logger logger = Logger.getLogger(DBManager.class);
    // --------------------------------------------------------- Methods
 
    // 数据库连接对?
    private Connection con;
    // SQL语句对象
    private Statement stmt;
    // 带参数的Sql语句对象
    private PreparedStatement pstmt;
    // 记录集对?
    private ResultSet rs;
    // 数据q接理Q连接池对象Q?
    private DBConnectionManager dcm = null;
 
    /** ***********************手动讄的连接参?******************************** */
    @SuppressWarnings("unused")
    private static String _DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    @SuppressWarnings("unused")
    private static String _URL = "jdbc:sqlserver://localhost:1433;database=Hospital_AI_DB;characterEncoding=gb2312";
    @SuppressWarnings("unused")
    private static String _USER_NA = "sa";
    @SuppressWarnings("unused")
    private static String _PASSWORD = "";
 
    /** ********************************************************************** */
 
    // 默认构?
    public DBManager() {
    }
 
    /** ****************************************************************************************** */
    /**
     * **************************************** 数据库连接初始化
     * ***********************************
     */
    /** ****************************************************************************************** */
 
    /**
     * 得到一个默认的数据库连接[?com.hospital.dao.tools.db.properties文g初始化]
     * 
     * @throws Exception
     */
    private void getConnection() {
        logger.info("###############open:::::从默认的配置文g得到一个数据库q接");
        // 获取一个连?a style="color: #000000" >tb池管理类的实?
        dcm = DBConnectionManager.getInstance();
        // 得到一个数据库q接
        con = dcm.getConnection("mysql");
 
        try {
            con.setAutoCommit(false);
        } catch (SQLException e) {
 
            e.printStackTrace();
        }
    }
 
    /**
     * 从指定参数得C个连接对?
     * 
     * @param driver
     * @param url
     * @param user_na
     * @param password
     * @throws Exception
     */
    public void getConnection(String driver, String url, String user_na,
            String password) throws Exception {
        try {
            logger.info("###############open:::::从指定配|中得到一个数据库q接");
            Class.forName(driver);
            con = DriverManager.getConnection(url, user_na, password);
        } catch (ClassNotFoundException ex) {
            logger
                    .info("###############Error[com.hospital.dao.tools.DBManager^^^Method:getConnection^^^Line:81]找不到类驱动c? "
                            + driver);
            throw ex;
        } catch (SQLException ex) {
            logger
                    .info("###############Error[com.hospital.dao.tools.DBManager^^^Method:getConnection^^^Line:81]加蝲c? "
                            + driver + " 时出?SQLException 异常");
            throw ex;
        }
    }
 
    /** ****************************************************************************************** */
    /**
     * **************************************** 数据库操作方?
     * ***********************************
     */
    /** ****************************************************************************************** */
 
    /**
     * 执行SQL语句操作(更新数据 无参?
     * 
     * @param strSql
     *            SQL语句
     * @throws Exception
     */
    public boolean executeUpdate(String strSql) throws SQLException {
        getConnection();
        // getConnection(_DRIVER,_URL,_USER_NA,_PASSWORD);
        boolean flag = false;
        stmt = con.createStatement();
        logger.info("###############::执行SQL语句操作(更新数据 无参?:" + strSql);
        try {
            if (0 < stmt.executeUpdate(strSql)) {
                close_DB_Object();
                flag = true;
                con.commit();
            }
        } catch (SQLException ex) {
            logger
                    .info("###############Error DBManager Line126::执行SQL语句操作(更新数据 无参?:"
                            + strSql + "p|!");
            flag = false;
            con.rollback();
            throw ex;
        }
        return flag;
 
    }
 
    /**
     * 执行SQL语句操作(更新数据 有参?
     * 
     * @param strSql
     *            sql指o(h)
     * @param prams
     *            参数列表
     * @return
     * @throws SQLException
     */
    public boolean executeUpdate(String strSql, HashMap<Integer, Object> prams)
            throws SQLException, ClassNotFoundException {
        getConnection();
        // getConnection(_DRIVER,_URL,_USER_NA,_PASSWORD);
        boolean flag = false;
        try {
            pstmt = con.prepareStatement(strSql);
            setParamet(pstmt, prams);
            logger.info("###############::执行SQL语句操作(更新数据 有参?:" + strSql);
 
            if (0 < pstmt.executeUpdate()) {
                close_DB_Object();
                flag = true;
                con.commit();
            }
        } catch (SQLException ex) {
            logger
                    .info("###############Error DBManager Line121::执行SQL语句操作(更新数据 无参?:"
                            + strSql + "p|!");
            flag = false;
            con.rollback();
            throw ex;
        } catch (ClassNotFoundException ex) {
            logger
                    .info("###############Error DBManager Line152::执行SQL语句操作(更新数据 无参?:"
                            + strSql + "p|! 参数讄cd错误!");
            con.rollback();
            throw ex;
        }
        return flag;
 
    }
 
    /**
     * 执行SQL语句操作(查询数据 无参?
     * 
     * @param strSql
     *            SQL语句
     * @return 数组对象列表
     * @throws Exception
     */
    public ArrayList<HashMap<Object, Object>> executeSql(String strSql)
            throws Exception {
        getConnection();
        // getConnection(_DRIVER,_URL,_USER_NA,_PASSWORD);
        stmt = con.createStatement();
        logger.info("###############::执行SQL语句操作(查询数据):" + strSql);
        rs = stmt.executeQuery(strSql);
        con.commit();
        if (null != rs) {
            return convertResultSetToArrayList(rs);
        }
        close_DB_Object();
        return null;
    }
 
    /**
     * 执行SQL语句操作(查询数据 有参?
     * 
     * @param strSql
     *            SQL语句
     * @param prams
     *            参数列表
     * @return 数组对象列表
     * @throws Exception
     */
    public ArrayList<HashMap<Object, Object>> executeSql(String strSql,
            HashMap<Integer, Object> prams) throws Exception {
        getConnection();
        // getConnection(_DRIVER,_URL,_USER_NA,_PASSWORD);
        pstmt = con.prepareStatement(strSql);
        setParamet(pstmt, prams);
        logger.info("###############::执行SQL语句操作(查询数据):" + strSql);
        rs = pstmt.executeQuery();
        con.commit();
        if (null != rs) {
            return convertResultSetToArrayList(rs);
        }
        return null;
    }
 
    /**
     * 执行存储q程(查询数据 无参?
     * 
     * @param procName
     *            存储q程名称
     * @return 数组列表对象
     * @throws Exception
     */
    public ArrayList<HashMap<Object, Object>> executeProcedureQuery(
            String procName) throws Exception {
        getConnection();// 获取q接
        String callStr = "{call " + procName + "}";// 构造执行存储过E的sql指o(h)
        CallableStatement cs = con.prepareCall(callStr);
        logger.info("###############::执行存储q程(查询数据):" + procName);
        rs = cs.executeQuery();
        con.commit();
        cs.close();
        close_DB_Object();
        return convertResultSetToArrayList(rs);
    }
 
    /**
     * 执行存储q程(查询数据,带参?q回l果集合
     * 
     * @param procName
     *            存储q程名称
     * @param parameters
     *            参数对象数组
     * @param al
     *            数组列表对象
     * @return 数组列表对象
     * @throws Exception
     */
    public ArrayList<HashMap<Object, Object>> executeProcedureQuery(
            String procName, Object[] parameters) throws Exception {
        int parameterPoint = 0;
        // 获取存储q程信息列表集合
        ArrayList<HashMap<Object, Object>> procedureInfo = getProcedureInfo(procName);
        // 获取存储q程的完全名U?
        String procedureCallName = getProcedureCallName(procName,parameters.length);
        // 获取q接对象
        getConnection();
        // 初始?存储q程 执行对象
        CallableStatement cs = con.prepareCall(procedureCallName);
        // 参数下标变量
        int index = 0;
        // 获取 存储q程信息列表集合?q代?对象
        Iterator<HashMap<Object, Object>> iter = procedureInfo.iterator();
        // 遍历存储q程信息列表集合
        while (iter.hasNext()) {
            HashMap<Object, Object> hm = iter.next();
 
            parameterPoint++;
            // 如果参数是输入参?way = 0
            if (hm.get("WAY").equals("0")) {
                // 讄参数到cs
                cs.setObject(parameterPoint, parameters[index]);
                // 参数下标+1
                index++;
            }
        }
        // 释放q个对象,做ؓ(f)W二ơ?
        procedureInfo = null;
        logger.info("###############::执行存储q程(查询数据):::::" + procedureCallName);
        rs = cs.executeQuery();
        con.commit();
        procedureInfo = convertResultSetToArrayList(rs);
        cs.close();
        close_DB_Object();
        return procedureInfo;
 
    }
 
    /**
     * 执行存储q程(更新Q查询数据[单查询、非U录集]Q返回输出参数[非纪录集])
     * 
     * @param procName
     *            存储q程名称
     * @param parameters
     *            参数对象数组
     * @param os
     *            输出参数对象数组
     * @return 输出参数对象数组
     * @throws Exception
     */
    public Object[] executeProcedureUpdate(String procName, Object[] parameters)
            throws Exception {
        logger.info("------------------------------------------------------------------------------------------------------");
        logger.info(" Run --> executeProcedureUpdate ##############   正在执行 存储q程: " + procName +"   ##############");
        CallableStatement cs = null;
        Object []returnVal = null;
        try {
        // 获取 存储q程 调用全名
        String fullPCallName = getProcedureCallName(procName,parameters.length);
        logger.info(" Run --> executeProcedureUpdate #   存储q程命o(h): " + fullPCallName +"   #");
        //获取存储q程参数信息
        ArrayList<HashMap<Object, Object>> p_Call_Info_List = getProcedureInfo(procName);
        //获取q接
        getConnection();
        //创徏 存储q程 执行对象
        cs = con.prepareCall(fullPCallName);
        //数组下标
        int index = 1;
        //输出参数下标 U录
        ArrayList<Integer> outPutIndexList = new ArrayList<Integer>();
        logger.info(" Run --> executeProcedureUpdate #   参数个数? " + parameters.length +"   #");
        for(HashMap<Object,Object> tempHash:p_Call_Info_List)
        {
            if("0".equals(tempHash.get("WAY")))
            {
                //讄输入参数
                cs.setObject(index, parameters[index-1]);
                logger.info(" Run --> executeProcedureUpdate #   输入 Input: ~号:" + index +" ? "+parameters[index-1]+" cd: "+parameters[index-1].getClass()+"   #");
            }
            else
            {
                //注册输出参数
                cs.registerOutParameter(index, getDataType(tempHash.get("TYPENAME").toString()));
                //U录输出参数的下?
                outPutIndexList.add(index);
                logger.info(" Run --> executeProcedureUpdate #   输出 OutPut: ~号:" + index +" ? "+parameters[index-1]+" cd: "+parameters[index-1].getClass()+"   #");
            }
            index++;
        }
        logger.info(" Run --> executeProcedureUpdate #   参数讄完毕,正在执行?nbsp; :   #");
         
        //-------------------- 执行 -----------------
        if(!cs.execute())
        {
            returnVal = new Object[outPutIndexList.size()];
            logger.info(" Run --> executeProcedureUpdate #   执行成功! :   #");
            //取输 出参数的 q回?
            for(int i = 0 ;i<outPutIndexList.size();i++)
            {
                returnVal[i] = cs.getObject(outPutIndexList.get(i));
                logger.info(" Run --> executeProcedureUpdate #   q回?"+(i+1)+" "+returnVal[i]+"   #");
            }
            con.commit();//提交
        }
        } catch (Exception e) {
            logger.info(" Run --> executeProcedureUpdate #   执行p|!事务回滚?:   #");
            con.rollback();
            throw e;
        } 
        logger.info("------------------------------------------------------------------------------------------------------");
        return returnVal;
    }
 
    /** ****************************************************************************************** */
    /**
     * ********************************* 工?
     * ************************************************
     */
    /** ****************************************************************************************** */
 
    /**
     * 关闭数据对象
     */
    public void close_DB_Object() {
        logger.info("###############close:::::关闭q接对象Q语句对象,记录集对?);
        if (null != rs) {
            try {
                rs.close();
            } catch (SQLException ex) {
                rs = null;
            }
        }
        if (null != stmt) {
            try {
                stmt.close();
            } catch (SQLException ex) {
                stmt = null;
            }
        }
        if (null != pstmt) {
            try {
                pstmt.close();
            } catch (SQLException ex) {
                pstmt = null;
            }
        }
        if (con != null) {
            dcm.freeConnection("mysql", con);
        }
    }
 
 
    /**
     * 讄Sql 指o(h)参数
     * 
     * @param p_stmt
     *            PreparedStatement
     * @param pramets
     *            HashMap
     */
    private PreparedStatement setParamet(PreparedStatement p_stmt,
            HashMap<Integer, Object> pramets) throws ClassNotFoundException,
            SQLException {
        // 如果参数为空
        if (null != pramets) {
            // 如果参数个数?
            if (0 <= pramets.size()) {
                for (int i = 1; i <= pramets.size(); i++) {
                    try {
                        // 字符cd String
                        if (pramets.get(i).getClass() == Class
                                .forName("java.lang.String")) {
                            p_stmt.setString(i, pramets.get(i).toString());
                        }
                        // 日期cd Date
                        if (pramets.get(i).getClass() == Class
                                .forName("java.sql.Date")) {
                            p_stmt.setDate(i, java.sql.Date.valueOf(pramets
                                    .get(i).toString()));
                        }
                        // 布尔cd Boolean
                        if (pramets.get(i).getClass() == Class
                                .forName("java.lang.Boolean")) {
                            p_stmt.setBoolean(i, (Boolean) (pramets.get(i)));
                        }
                        // 整型 int
                        if (pramets.get(i).getClass() == Class
                                .forName("java.lang.Integer")) {
                            p_stmt.setInt(i, (Integer) pramets.get(i));
                        }
                        // 点 float
                        if (pramets.get(i).getClass() == Class
                                .forName("java.lang.Float")) {
                            p_stmt.setFloat(i, (Float) pramets.get(i));
                        }
                        // 双精度型 double
                        if (pramets.get(i).getClass() == Class
                                .forName("java.lang.Double")) {
                            p_stmt.setDouble(i, (Double) pramets.get(i));
                        }
 
                    } catch (ClassNotFoundException ex) {
                        throw ex;
                    } catch (SQLException ex) {
                        throw ex;
                    }
                }
            }
        }
        return p_stmt;
    }
 
    /**
     * 转换记录集对象ؓ(f)数组列表对象
     * 
     * @param rs
     *            U录集合对象
     * @return 数组列表对象
     * @throws Exception
     */
    private ArrayList<HashMap<Object, Object>> convertResultSetToArrayList(
            ResultSet rs) throws Exception {
        logger.info("###############::转换记录集对象ؓ(f)数组列表对象");
        // 获取rs 集合信息对象
        ResultSetMetaData rsmd = rs.getMetaData();
        // 创徏数组列表集合对象
        ArrayList<HashMap<Object, Object>> tempList = new ArrayList<HashMap<Object, Object>>();
        HashMap<Object, Object> tempHash = null;
        // 填充数组列表集合
        while (rs.next()) {
            // 创徏键值对集合对象
            tempHash = new HashMap<Object, Object>();
            for (int i = 0; i < rsmd.getColumnCount(); i++) {
                // 遍历每列数据Q以键值Ş式存在对象tempHash?
                tempHash.put(rsmd.getColumnName(i + 1).toUpperCase(), rs
                        .getString(rsmd.getColumnName(i + 1)));
            }
            // W一个键值对Q存储在tempList列表集合对象?
            tempList.add(tempHash);
        }
        close_DB_Object();// 关闭相关链接
        return tempList;// q回填充完毕的数l列表集合对?
    }
 
    /**
     * 从数据库得到tb存储q程信息
     * 
     * @param procName
     *            存储q程名称
     * @return 数组列表对象
     * @throws Exception
     */
    private ArrayList<HashMap<Object, Object>> getProcedureInfo(String procName)
            throws Exception {
        return this.executeSql("select Syscolumns.isoutparam as Way,systypes.name as TypeName from sysobjects,syscolumns,systypes where systypes.xtype=syscolumns.xtype and syscolumns.id=sysobjects.id and sysobjects.name='"
                + procName + "' order by Syscolumns.isoutparam");
    }
 
    /**
     * 从数据库得到存储q程参数个数
     * 
     * @param procName
     *            存储q程名称
     * @return 数组列表对象
     * @throws Exception
     */
    @SuppressWarnings("unused")
    private int getParametersCount(String procName) throws Exception {
        int returnVal = 0;
        for (HashMap<Object, Object> tempHas : this
                .executeSql("select count(*) as RowsCount from sysobjects,syscolumns,systypes where systypes.xtype=syscolumns.xtype and syscolumns.id=sysobjects.id and sysobjects.name='"
                        + procName + "'")) {
            returnVal = Integer.parseInt(tempHas.get("ROWSCOUNT").toString());
        }
        return returnVal;
    }
 
    /**
     * 得到调用存储q程的全?
     * 
     * @param procName
     *            存储q程名称
     * @return 调用存储q程的全?
     * @throws Exception
     */
    private String getProcedureCallName(String procName, int prametCount)
            throws Exception {
        String procedureCallName = "{call " + procName;
        for (int i = 0; i < prametCount; i++) {
            if (0 == i) {
                procedureCallName = procedureCallName + "(?";
            }
            if (0 != i) {
                procedureCallName = procedureCallName + ",?";
            }
        }
        procedureCallName = procedureCallName + ")}";
        return procedureCallName;
    }
 
    /**
     * 得到数据cd的整型?
     * 
     * @param typeName
     *            cd名称
     * @return 数据cd的整型?
     */
    private int getDataType(String typeName) {
        if (typeName.equals("varchar"))
            return Types.VARCHAR;
        if (typeName.equals("int"))
            return Types.INTEGER;
        if (typeName.equals("bit"))
            return Types.BIT;
        if (typeName.equals("float"))
            return Types.FLOAT;
        return 0;
    }
 
    // 讄驱动路径
    @SuppressWarnings("static-access")
    public void set_DRIVER(String _DRIVER) {
        this._DRIVER = _DRIVER;
    }
 
    // 讄数据库密?
    @SuppressWarnings("static-access")
    public void set_PASSWORD(String _PASSWORD) {
        this._PASSWORD = _PASSWORD;
    }
 
    // 讄数据库连接字W串
    @SuppressWarnings("static-access")
    public void set_URL(String _URL) {
        this._URL = _URL;
    }
 
    // 讄数据库用户名
    @SuppressWarnings("static-access")
    public void set_USER_NA(String _USER_NA) {
        this._USER_NA = _USER_NA;
    }
 
}

 



chen11-1 2013-05-27 16:55 发表评论
]]>
Java目l验——程序员成长的关?/title><link>http://m.tkk7.com/tbwshc/archive/2012/06/21/381270.html</link><dc:creator>chen11-1</dc:creator><author>chen11-1</author><pubDate>Thu, 21 Jun 2012 08:23:00 GMT</pubDate><guid>http://m.tkk7.com/tbwshc/archive/2012/06/21/381270.html</guid><wfw:comment>http://m.tkk7.com/tbwshc/comments/381270.html</wfw:comment><comments>http://m.tkk7.com/tbwshc/archive/2012/06/21/381270.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://m.tkk7.com/tbwshc/comments/commentRss/381270.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/tbwshc/services/trackbacks/381270.html</trackback:ping><description><![CDATA[<p .="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(85, 85, 85); font-family: verdana, 'ms song', 宋体, Arial, 微Y雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 24px; text-align: left; background-color: rgb(245, 248, 250); "><strong .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Java是用来做项目的</strong>QJava的主要应用领域就是企业的项目开发!要想从事企业U的目开发,你必L握如下要点:(x)<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />1、掌握项目开发的基本步骤<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />2、具备极强的面向对象的分析与设计技?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />3、掌握用例驱动、以架构为核心的L开发方?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />没有人愿意自׃辈子满于掌握了一些代码实现的技巧,别h告诉你要实现什么,你就用代码堆砌来实现别h的要求!你必d?x)从整个目的角度去思考!你必d?x)假如你是项目经理,你该如何思考!你必d?x)假如你是架构师Q你该如何思考!你必L握针Ҏ(gu)个特定问题领域的分析Ҏ(gu)Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><strong .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">关于基础<a ><span style="color: #000000"><strong>tb</strong></span></a>知识</strong>Q你可以看看q些名词或知识点Q看是否能说Z一二三四来?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />JavaSE<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />----基本语法、数据类型、操作符{:(x)int、long、Integer、Long、if、else、for、while<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />----面向对象QclassQ类Q、ObjectQ对象)、instanceQ实例)、stateQ状态)、behaviorQ行为)、field、method、new、可见性(讉K控制Q、attribute、property、package、import、static variable、class variable、instance variable、heap、method area、stack、GCQ垃圑֛Ӟ、override、overload、对象{?casting)、多态、this、super<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />----异常处理Q理解编译期错误和运行期错误的区别、Exception、RuntimeException、checked exception、unchecked exception、try、catch、finally、throw new XXXException、throws XXXException、异常处理的基本原则<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />----数组与集合:(x)数组的定义和使用Ҏ(gu)、Collection、List、Set、Map、ArrayList、HashSet、HashMap、Iterator、equals、hashCode、Comparable、Comparator<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />----常用c:(x)String、intern、常量池、StringBuffer、java.util.Date、SimpleDateFormat、RegexQ正则表辑ּQ?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />----反射机制QClass、Method、Field、invoke、newInstance、BeanUtilsQapache-commonsQ、PropertyUtilsQapache-commonsQ?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />----输入输出:(x)InputStream、OutputStream、Reader、Writer、Adapter设计模式与原始流cRDecorator设计模式与包装流cR对象序列化和反序列?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />----多线E:(x)Thread、Runnable、sleep、wait、notify、synchronized、lock<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />Servlet和JSP<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />----HttpServlet、doGet、doPost、HttpServletRequest、HttpServletResponse、request.getParameter()、request.setAttribute()、request.getAttribute()、request.getSession()、ServletContext、Filter、web.xml、tomcat、forward与redirect、http协议的无状态性、cookie、JSP Scope Object?lt;c:out …/>?lt;c:forEach …><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />HTML与JavaScript<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />----你需要能够理解常见的|页标签、理解在|页中引入JavaScript的方法、以?qing)JavaScript的基本语法与使用Ҏ(gu)<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />以上Q就是你q一步学?fn)Java所必备的基本知识。特别是一些个专业术语和名词,看到q些名词Q如果你像看C爹一样亲切,那么说明你对Java的基知识很熟?zhn)了?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><strong .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">接下来是SSH</strong>Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />对于初学者来_(d)q三大框架被赋予了太多神U的色彩Q似乎它们是重中之重的知识!但是对于拥有多年Java开发经验的专业技术h员来_(d)对于那些Java牛h来说Q却对这三大框架不太感冒Q难道它们不重要吗?<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />现在很多企业都在用这三大框架Q所以很多企业也把掌握这三大框架作ؓ(f)招聘的必备条件。不可否认的是,也有很多大型企业没有用这三大框架Q这些企业经q多q发展,自n已经有一定的技术积累,也Ş成了自己独特的技术框架体pR这三大框架既可以说很重要,也可以说不重要?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />说重要的原因在于Q这三大框架对JavaEE开发中所存在的普遍的问题Q提供了优美的解x案,它们蕴含了这个行业中最NB的开发h员的努力和想法,所以,学习(fn)q三大框Ӟ你就可以H探到这些处于技术巅峰的牛h们究竟对一个问题是怎么想的Q通过一U什么样的设计思\去解决问题的。所以,对于你来_(d)你没有太多项目开发的l验Q经验是什么?l验是你知道可能会(x)遇到哪些问题Q针对哪个问题可以有哪些解决Ҏ(gu)Q在某个情景下,哪种解决Ҏ(gu)是较好的Q哪U方法不太好{等Q如果你没做q什么项目,你根本就不会(x)L识到你可能会(x)遇到哪些问题Q而这些问题往往又是非常关键的!解决得不好,?x)媄响到你的E序的稳定性、可扩展性等{!三大框架q初学者提供了了解你以后可能会(x)遇到哪些问题Q以?qing)针对这些问题的解决?gu)Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />当你了解了这三大框架Z么是重要的,那么你也p理解Qؓ(f)什么这三大框架也可以说是不重要的。如果你曄开发过很多目Q你到了各U各L(fng)问题Q凭着你的技术功底,逐个ȝ了这些问题,在这些h眼里Q三大框Ӟ是不是还有N个框Ӟ呵呵Q都是Q云!<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />你属于哪一Uh呢?如果你没有太多项目开发经验,那么三大框架对于你来说就是非帔R要的Q而且Q由此你也知道了该怎么dq三大框架。对于三大框架的学习(fn)而言Q着力点在于l你展示问题Qƈ触发你自׃动的思考,我们鼓励你提qxQ也怽的想法很白痴Q但那毕竟是你自qxQ如果你不知道牛人的xQ那你怎么知道自己的想法是很白痴的呢?在这U思想的碰撞过E中Q你׃(x)逐渐提高自己Q所以,三大框架学完之后Q你不应该只是看C大堆配置文gQ你不应该只是看C一些ActionQ一些ServiceQ一些映文Ӟ你不应该只知道session.save/update/deleteQ你不应该只是知道struts2中有一堆interceptorQ你不应该只是看C堆jar?#8230;…<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />如果你只是知道拷贝一堆jar包,定义一pd配置文g之后QSSH三大框架p够运行v来了Q也可以l你q活了,那么Q很(zhn)哀的是Q你仍然没有掌握三大框架的精_!请你回答以下问题Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />Struts2Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />Z么每ơ请求都要创Z个Action对象Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />ModelDriven拦截器的配置中refreshModelBeforeResult解决了什么问题?<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />Z么在web.xml中配|的StrutsPrepareAndExecuteFilter要过滤所有的hQ?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />请你l我谈谈ValueStackQ?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />Struts2是如何实现MVC设计模式的?<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />SpringQ?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />你ؓ(f)什么要用SpringQ?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />请你聊一聊IOC/DIQ?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />什么是声明式的事务理Qؓ(f)什么要使用声明式的事务理QSpring如何实现声明式的事务理Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />把spring和hibernate集成Q定义事务管理特性的时候,Z要将除了d、删除、更新操作之外的Ҏ(gu)Q即主要执行查询d的方法定义ؓ(f)read-onlyQ?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />HibernateQ?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />请你谈谈你对OR映射的理解?<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />很多Hibernate不适合大项目,性能有问题,你是如何理解的?<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />HibernateZ么一定要定义一个数据库标识Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />Z么Hibernate你的实体cd现hashCode和equalsҎ(gu)Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />谈谈你对Hibernate实体cM的数据库标识与数据库主键之间关系的认识?<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />谈谈你对Hibernate兌映射与数据库外键之间关系的认识?<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />调用session.save()Ҏ(gu)Qhibernate一定会(x)发出insert语句吗?谈谈你的理解<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />调用session.update()Ҏ(gu)Qhibernate一定会(x)发出update语句吗?谈谈你的理解<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />请你聊一下以下名词、概忉|用法Qlazy、lazy=”extra”、inverse、fetch、fetch=”join”、fetch=”subselect”、batch-size<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />配置了lazy=”true”一定会(x)实现懒加载吗Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />请你谈谈Hibernate中的“N+1”问题<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />请你谈谈Hibernate有哪些最?jng)_践?<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />以上qSSH中全部重点的问题Q但它们能考察你能否灵z运用SSH框架Q如果你能深ȝ解这些问题,再配以合适的实战目训练Q你也会(x)逐渐成ؓ(f)牛hQ?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><strong .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">最后是目开发能?/strong>Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />不管你是学Javaq是别的技术,你的Ҏ(gu)目的在于l客户创造h(hun)|否则Q你下大力气学习(fn)的东西,随着技术的q步和更斎ͼ很快׃(x)q时Q所以,技术的核心在于用技术创造有价值的成果Q也是_(d)客户需要什么,你就要用技术把客户需要的东西l他造出来!一个公怹所以要用各U福利条件极力挽留你Q是因ؓ(f)你能够给公司带来极高的利益!那么Q你有什么可以给公司利用的呢Q公司最看重你的哪方面的能力呢?<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />做项目需要的能力很多Q其中最核心最基础的就?strong .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">建模能力</strong>Q现在最L的就是面向对象徏模!Q。什么是建模能力呢?<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />我给大家一个面试题Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />一个保险公司的保险卡管理模块:(x)销售h员领取保险卡信息Q保险卡数量、卡受领取日期)Q然后直接销售给客户Q销售完毕后Q将保险卡信息录入保险公司系l内部(销售h员信息、购Ch信息、购买的保险卡数量、卡L(fng)Q,客户d保险公司|站ȀzM险卡Q需要填写(保险卡卡受激zd码、被保险Z息、受益h信息Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />要求是Q如果这个模块交l你来做Q你要怎么做?你要解决哪些问题Q你可否M图,l我描述一下你的想法是什么吗Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />q只是一个面试题而已Q因为只有简单几句话Q所以我把它攑ֈq里Q让大家感受一下所谓徏模要解决什么问题。而业务领域的问题实在是太多了Q也怸个几十上N的需求文档才能把某个业务领域的问题描q清楚,而你的职责就是要把它们实现出来!<br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />某个公司要开发一个考勤理pȝQ要求与现有的h力资源系l对接,你是主要的技术负责hQ那么,你要做哪些工作呢Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />某ERP目要实C个排班管理模块,交给你去完成Q你如何d成呢Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />不要抱怨项目经理给你的信息太少Q只有几句话Q,不要抱怨客h有描q清楚他们的需?#8230;…<strong .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">你的价值就在于理顺所有的问题<a ><span style="color: #000000">tb</span></a>Q用各种手段获得你想要的信息Q按照一定的思\汇总,q在特定的时间里逐个解决?/strong>Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />你应该意识到学Java不是一个坦克大战、一个网l飞车、一个CMS、一个DRP、一个OA那么单,你不要沉q于那些技术细节(虽然也是有必要的Q但不要转牛角尖Q,不要满于实CCRUD式的目需求(虽然q是基础中的基础Q,在你的前方,永远有一个目标在那里Q需要你d力追Ӟ  <br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />今后你将面对更加J杂的需求,你学?fn)项目的唯一目的Q就是:(x)学习(fn)如何需求{化ؓ(f)实现Q如何对需求进行分析,如何建立概念模型Q如何理各U概念之间的关系Q如何进行设计,如何选择合适的技术来实现你的设计Ҏ(gu)Q如何对你的实现q行试Q如何解决你所遇到的Ş形色色的问题Q性能、需求变更等Q。当你真正到公司里面从事了几q开发之后,你就?x)同意我的说法?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />利用Java扑ַ作,需要的是目l验Q?strong .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">目l验是理解目开发的基本q程Q理解项目的分析Ҏ(gu)Q理解项目的设计思\Q理解项目的实现技巧,理解目的测试方法,理解目中各U问题的解决Ҏ(gu)</strong>Q!Q?br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /><br .="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " />所以,你该清楚你的目标了!</p><img src ="http://m.tkk7.com/tbwshc/aggbug/381270.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/tbwshc/" target="_blank">chen11-1</a> 2012-06-21 16:23 <a href="http://m.tkk7.com/tbwshc/archive/2012/06/21/381270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IT“茫一代”:(x)35岁成生死U?无处安放未来(新浪)----------?/title><link>http://m.tkk7.com/tbwshc/archive/2012/06/10/380439.html</link><dc:creator>chen11-1</dc:creator><author>chen11-1</author><pubDate>Sun, 10 Jun 2012 03:31:00 GMT</pubDate><guid>http://m.tkk7.com/tbwshc/archive/2012/06/10/380439.html</guid><wfw:comment>http://m.tkk7.com/tbwshc/comments/380439.html</wfw:comment><comments>http://m.tkk7.com/tbwshc/archive/2012/06/10/380439.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/tbwshc/comments/commentRss/380439.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/tbwshc/services/trackbacks/380439.html</trackback:ping><description><![CDATA[<p>一q半的时间里Q曾亮两上八宝山?/p> <p>  送走的第一位好友,是某著名互联|公司女性频道的ȝQ突发脑溢血Q去世时q仅37岁。新q送走的是《健康与容》杂志的ȝ孟玲和,48岁,开?x)时H发脑溢血Q去世前几天曑ְ亮还曾与其彻夜长聊?/p> <p>  从八宝山回来的\上,曑ְ亮一个h沿着长安街走了好久。这位酒出版h助理、情感职Z栏作家、L为别?#8220;心灵鸡汤”的hQ在那一刻,竟然抑制不住心生强烈的灭感?/p> <p>  他忽焉觉得Q金钱、地位、名利都不再那么重要Q生命、健康与爱,q些我们人生中更h本源意义Q但是长久被忽视的东西,慢慢清晰地Q现出来?/p> <p>  q是“压力山大”的一代h。严重透支w体Q恨不能每周7*24时地工作,在跻w上层、功成名q路上狂奔。他们的不安全感、焦虑感从某U程度上q远过了父辈?/p> <p>  他们几乎完整地经历了中国C会(x)l济快速发展的三十q_(d)从物质胦富的极度匮乏到迅速富裕;同时也见证了恢复高考、计划生肌Ӏ打破大锅饭、企业改制、取消福利分ѝ中国加入WTO{种U既有秩序的被打破?/p> <p>  当秩序被打破ӞM(x)有h为此付出代h(hun)。这一代hw上深深烙上了中国社?x)经发展代际变q的印记?/p> <p>  35岁老了Q?/p> <p>  提前来(f)的焦虑、无措、迷?/p> <p>  U锐国际人力资源公司业务ȝ刘峰前一阵子刚刚接触了一家叫“豆瓣”的互联网公司。让他这个做了十几年人力资源工作的?#8220;猎头”有些意外的是Q豆瓣公司员工的q_q龄非常,大概?5岁左叟?/p> <p>  大约三年前,刘峰和腾讯的HR有次聊天Q让他印象深ȝ是腾讯的“特色”之一“很年?#8221;?/p> <p>  q十q里Q国内一些新晋大公司的出玎ͼ像百度、腾讯、阿里巴巴等互联|巨头的崛vQ带动了一个大产业Q很多q轻人年U轻d获得了意想不到的成功?/p> <p>  而且Q互联网{新产业的勃_(d)正加速着C会(x)对h才的需求和优胜劣汰Q也正拉低着职场人群的^均年龄?/p> <p>  互联|领域里“q轻?#8221;的公司正日益多v来。比如中国第一家女性团购网?#8220;聚美优品”Q三个联合创始h都是80后,一些中层管理者甚x1989q生人,今年29岁的CEO陈欧一直有个想法,在自?0岁以前把聚美优品做上市。他甚至坦言Q在事业快速发展的q几q_(d)他暂时不?x)因为结婚这c?#8220;家事”把自己限制住?/p> <p>  35岁在某种E度上就意味着职场“生死U?#8221;Q对许多IT人来_(d)35岁甚x味着技术生涯的l束?/p> <p>  现在Q对来多在职场和事业上打拼的80后来_(d)29岁就已经临近“q期”Q青春的有效?9岁截止,一?0岁,׃(x)被打?#8220;Timeout”(q期)的印记?/p> <p>  对于那些最早一批进入外资企?#8220;吃螃?#8221;的h来说Q现在已qhCq_(d)更是处境?yu)尬?/p> <p>  一斚w׃q龄的原因,不少外企白领在公司的发展遭遇瓉Q?#8220;在我q个q龄和职位,l箋待在外企的话后面的\已经很清楚,升职上遭遇玻璃天花板Q年龄上l不起高强度的工?#8221;?/p> <p>  另一斚wQ不h׃产业大环境的变化Q?#8220;金饭?#8221;的含金量正在加速褪厅R?/p> <p>  U锐国际早期的客h100%都是外资企业Q公司成立五六年Ӟ2000q左叻IU锐国际开始与包括华ؓ(f)、李宁等在内的本土企业有初步接触Q到2004q?005q时Q公司明将发展内资企业客户作ؓ(f)重点Q彼时内资企业所占科锐国际客h的比例还很低Q从2008q?009q以后,内资企业的业务能占到U锐国际M务的癑ֈ之二三十?#8220;在高U技、互联网q些行业Q外资客户与内资客户的比重甚x四六开?#8221;</p> <p>  刘峰认识很多外资企业的高层或者中层以上的l理Q在90q代末或?000q左叻I他们的职业很让h艳MQ?a ><span style="color: #000000">tb</span></a>现在职业?#8220;含金?#8221;已经大不如以前?#8220;那时候的外企中高层,C套房子很正常Q但是你今天q到外企Q即使给你八千、一万块钱月薪,你什么时候才能买个房子呢Q同h薪水Q含义已l发生了深刻的变化?#8221;</p> <p>  C会(x)l济的快速发展也让职场危机提前而至Q在发达国家Q焦虑、无措、迷茫等中年职场危机的表现通常发生?5?5岁,但是在中国却提前了近10q?/p> <p>  q是“压力山大”的一代h。严重透支w体Q恨不能每周7x24时地工作,在跻w上层、功成名q路上狂奔。他们的不安全感、焦虑感从某U程度上q远过了父辈?/p> <p><br />退休或重返职场Q?/p> <p>  参数未知的将?/p> <p>  “退?#8221;Q对当下q个人群来说Q几乎是一U奢望?/p> <p>  李强是一家私企的老板Q早q做生意赚了几百万后觉得_来生活了,便结束了生意Q开始安享生zR可是不到十q_(d)他发现生zȝ发展完全q了他预设的轨道?#8220;十年前几百万_一个h安安E稳q完一辈子Q可是我没有惛_q几q房仗物价会(x)涨成q样Q现在几百万q算个啥?#8221;“安n”计划泡汤的李Z得不重整旗鼓Q再ơ创业?/p> <p>  刘峰w边也有朋友有过和李强类?#8220;提前退?#8221;的经历。这位朋友ؓ(f)了移民加拿大Q在事业发展最风水的时候,提前l束在中国国内的工作Q在加拿大当地随便找了个工作。待到移民必ȝ居住旉期满后,q位朋友惛_回中国来发展Q却发现已经错失了事业发展的最好机?x)?/p> <p>  对于臛_q有?#8220;家底?#8221;的李强等人来说未来虽然艰难,但还不至于毫无保障,对于更多的中q职场工作者而言未来生活的参C概未知,q种不确定性和不安全感更加重了q一体的焦虑。到底有多少资未来才可以安枕无忧?没h可以l出一个确切的{案?/p> <p>  20多年前,大学每年的学费只?00元,现在有些专业已经冲上万元Q增长了U?0倍。中国青q报C会(x)调查中心曾有一?625人参与的调查l计Uͼ管78.8%的h认ؓ(f)和十q前相比收入增加了,但是85.3%的h感觉自己的生z负担比十年前更重了。有Z了q四十年来中国hl婚的成本:(x)70q代末是600元,80q代?000元,90q代?.3万,21世纪?6.6万,来贵的中国式婚姻。显而易见的是,中国C会(x)l济获得了前所未有的快速发展,但h们的收入增长速度却远没有跑过物h(hun)上涨的速度?/p> <p>  “在过d十年的发展过E中Q一个不可回避的问题是国家对中层h,其实没有好的政策来扶植他们?#8221;刘峰感慨Q中层的赋税很高Q高到很吓h的程度,而另一斚wQ国家给予这一阶层的福利几乎是零?#8220;比如说我每月交那么多qE,H然有一天失业了Q却发现我什么都没有Q真的是什么都没有?#8221;</p> <p>  对于q一现状Q资׃业经学家白益民认ؓ(f)Q日本企业的员工对于未来的焦虑感要比中国低得多,“日本有约定俗成的ln雇䄦制以?qing)与其相配合的年功序列制、企业工?x)。这是日本的三大器?#8221;白益民介l,在日本的企业中,企业不会(x)L裁员Q年功序列制是指工资待遇按员工的资历慢慢增长Q所以一旦进入一个企业,你就可以知道自己未来在这家公司大概n有的工资待遇水准?/p> <p>  长期以来Q对于中国是否应该采用终w雇佣制的争Z直存在,白益民的看法是一些特定的企业可以试q种制度Q这对于企业人才的积累、技术的传承以及(qing)员工对生zȝ安全感都会(x)有很大的帮助?/p> <p>  异化的h?/p> <p>  “被高?#8221;的一?/p> <p>  曑ְ亮认为,整个C会(x)在追求经高速发展的时候,同时D了h性的异化。因Zh不可能变成一个经动物,人有内在的自、自我,有对q福感的q逐,l济q不能满h们更q快乐?#8220;很多人在有了基本的物质保证之后,׃(x)发现自己开始寻找新的幸之道?#8221;</p> <p>  “你会(x)发现Zq种心理状态的变化和经发展有一脉相承的地方Q特别是在经高速发展的时候?#8221;曑ְ亮注意到Q中q阶层的q种集体性焦虑和qQ曾l出现在国的上世纪七八十年代,中国台湾的九(ji)十年代?/p> <p>  在中国,一斚w是高速发展的l济环境让管理h才的职业晋升速度过了心智成熟度的提升,另一斚w是中国长期以来的应试教育q分注重分数Q而忽视了心灵的成长,此外对经发展的q度q求Q也让这一体~Z对生zȝ整体观?/p> <p>  “升迁官能?#8221;在中层h中q当普遍?#8220;或是没有做好准备Q或者是能力不够、提拔太快,被提拔上M后,?x)发现很多事情自己没有能力驾驭了?#8221;曑ְ亮认为,因ؓ(f)心智的成熟速度赶不上社?x)角色的提升速度Q很多中层h在职场角色擢升后就?x)出现各U问题?#8220;跟同事的关系、家庭的问题Q突然就?x)觉得自己扛不住了。我曄在专栏中提到q,在这个状态下要学?x)用一些方法去调试Q这涉?qing)到很多大的N了。我觉得q跟人才的储备也有关p,l济发展太快Qh才储备不够?#8221;</p> <p>  q种对周遭事物掌控能力的Ơ缺也极大地加剧了这一人群的焦虑感?/p> <p>  一直以来,中国都推崇GDP增长的神话,认ؓ(f)面(f)的首要问题是快地发展生产力Q提高经水qI解除贫困状态,增强l合国力。在q种背景下,“GDP崇拜”成ؓ(f)一U普遍情l,唯效率主义或独尊l济指数的发展成Z要甚x一的取向。片面追求经增长也D了诸多不良的后果Q国民教肌Ӏ就业保障、社?x)福利、医疗卫生、文化徏讄与h民生z质量密切相关的C会(x)领域的发展就被不同程度的牺牲掉了Q当|nl济发展大潮的主阶层h士行至中q才发现自己忽略了n体,忽视了家庭,却ƈ没有从过快发展的l济中获得多幸感Q甚至于找不到自q未来?/p> <p>  q年来,国、英国等发达国家来重?#8220;q福指数”q一软指标,国联邦政府和英国内阁甚x巨资成立专门的研I机构,聘请?dng)经学奖得M尔·卡内曼等专家坐镇Q设立衡量h们幸感的指标,使它与GDP一h量一个国家发展水q的标准?/p> <p>  “q福l济”来成Zh们热议的话题。曾有h发问Q如果GDP的增长不能让Z更幸,政府Z么还要致力于GDP的增长呢Q当?#8220;茫一?#8221;既是推动中国C会(x)l济高速发展的蚂蚁雄兵Q也是被l济高速发?#8220;副作?#8221;所中伤的一代,他们是否q福、如何才能幸,是中国社?x)经代际变q的注脚?br /></p><img src ="http://m.tkk7.com/tbwshc/aggbug/380439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/tbwshc/" target="_blank">chen11-1</a> 2012-06-10 11:31 <a href="http://m.tkk7.com/tbwshc/archive/2012/06/10/380439.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>|上传的Y件测试工E师U别http://m.tkk7.com/tbwshc/archive/2012/06/10/TEST.htmlchen11-1chen11-1Sun, 10 Jun 2012 03:28:00 GMThttp://m.tkk7.com/tbwshc/archive/2012/06/10/TEST.htmlhttp://m.tkk7.com/tbwshc/comments/380437.htmlhttp://m.tkk7.com/tbwshc/archive/2012/06/10/TEST.html#Feedback0http://m.tkk7.com/tbwshc/comments/commentRss/380437.htmlhttp://m.tkk7.com/tbwshc/services/trackbacks/380437.html初񔋹试工程?Q年薪约?-4万左叟뀂他们的工作通常是按照测试方案和程对品进行功能测试,查品是否有~陷?h一些手工测试经验,开发测试脚本ƈ开始熟(zhn)测试生存周期和试技术;

中񔋹试工程?Q年薪在5-6万左叟뀂他们要能够~写试文案Q测试文档,与项目组一起制定测试阶D늚工作计划。能够在目中合理利用测试工h完成试d。能够独立编写自动测试脚本程序ƈ担Q试~程初期的领导工作,q一步拓展编E语a、操作系l、网l与数据库方面的技能;

高񔋹试工程?Q年?-10万左叟뀂他们不但需要掌握测试与开发技术,而且Ҏ(gu)试软g对口的行业非怺解,能够Ҏ(gu)试方案可能出现的问题q行分析和评估。帮助开发或l护试或编E标准与q程Q负责同U的评审Qƈ能够指导初的测试工E师Q?/p>

Team LeaderQ测试主) Q年?-15wQ一般至具?q的工作l验Q负责管理一个小团队。负责进度安排、工作规?成本估算、按q度表和预算目标交付产品Q负责开发项目的技术方法,能够为用h供支持和演示Q?/p>

试l理 Q年薪在12-20wQ能够担当测试领域内的整个开发生存周期业务,能够为用h供交互和大量演示Q负责项目成本、进度安排、计划和人员分工Q?/p>

计划l理Q或者说试ȝQ?Q年?0-30wQ具有多q纯熟的开发与支持Q测?质量保证Q活动方面的l验Q管理从事若q项目的人员以及(qing)整个开发生存周期,负责把握目方向和盈亏责仅R?/p>

----------------------------------------------------------------------------------
0U:(x)
不了解测试方法;
没有试计划和测试样例,漫无目的试Q靠q气找BUGQ?br />tb提交BUG的时候描q非怸清楚Q?br />


1U:(x)
了解一些测试方法;
有一定的逻辑思考能力;
知道试重点Q了解测试覆盖率Q会(x)设计试样例Q?br />提交BUG的时候描q非常清楚,有详l的BUG重现步骤Q?br />


2U:(x)
知道常用试Ҏ(gu)和测试技巧;
有较强逻辑思考能力;
?x)用一些自动化试工具Q?br />有明的试计划和测试重点,设计的测试样例覆盖率较高?br />提交BUG的时候描q非常清楚,有详l的重现步骤Q规律性以?qing)解决的?br />

3U:(x)
熟?zhn)常用试?gu)和测试技巧;
不定期学?fn)新的测试方法和试技巧;
有很强逻辑思考能力;
?x)用一些自动化试工具Q?br />l常上一些测试论坛和同行交流Q?br />?x)一U编E语aQ特别是shellQpython{脚本语aQ;
有明的试计划和测试重点,设计的测试样例覆盖率非常高?br />提交BUG的时候描q非常清楚,有详l的重现步骤Q规律性以?qing)解决的?/p>

 



chen11-1 2012-06-10 11:28 发表评论
]]>
վ֩ģ壺 91鶹ƷԲ߹ۿ | þavСݲ| ޾Ʒר| պAVһ| ĻСۺ| ѹۿ| ҹƷӰ߹ۿ| 69ӰԺ߹ۿ| Avһ| ĻþþƷA| ƷۺϾþ| AVһԧӰԺ| ޹˾þۺ| ɫַ| ˿Ƶ| ˳ɻҳ߹ۿձ| ĻƵ| ƷAVר| ɫվַ| ˬָ߳Ƶ| aaƵ| ձ޹һ| þþþþþþ| ŷձ߹ۿ| jlzzjlzzjzjzjz| ˳ɫ99999߹ۿ| Ƶվѿ| AëƬѹۿվ| ٸ̫ˬ߹ۿƵ| ŷɫƵ߹ۿ| jyzzjyzzƵ| ޾Ʒ˳3d| AVպAV߳ר| ĻۺСۺ | ޹˾žۺ| ձһ߲Ͷ | Ůƨվ| avѸ߳ˮ| 91Ʒ| Ʒȫѹۿ| ۺ|