中级软件工程师的技能基本要求

这篇博客总结了中级软件工程师需要掌握的关键技能,包括Servlet生命周期、异常处理、重载与重写、抽象类与接口的区别、集合类、数据库操作、JDBC、存储过程、接口继承与抽象类特性、Spring框架的IOC和AOP、事务管理以及多种编程和设计模式。还涵盖了数据库优化、Struts2与Spring整合、Hibernate的一对多和多对多映射、Ajax、JQuery、JSON以及Linux命令等知识点。
摘要由CSDN通过智能技术生成

本人2011年9月开始从事软件工程师的工作,至今(2013-9),二年工作经年。结合今年8月份的跳槽,几家新公司面试需要掌握的技能点积累供大家分享下,如有不正确的或更好建议等需要补充的,欢迎大家回帖:

         

servlet生命周期

实例化》Servlet容器创建Servlet的实例

初始化》该容器调用init()方法

服务》如果请求Servlet,则容器调用service()方法

销毁》销毁实例之前调用destory()方法

exception5

    NullPointException

         ClassnotfoundException SqlException

IOException FileNotFoundException

ClassCastException

ArrayIndexOutOfBoundsException

NoSuchMethodException

NumberFormatException

重载和重写

         重载:是在同一个类可以写多个同方法名的方法,参数却不相同的方法,返回值随便更改。

重写:重写是子类重写父类里的方法,方法名、返回值、参数都必须一样,内容随便更改。

抽象类和接口区别

    抽象类:抽象类里的方法可以不是抽象的,但是有抽象方法的类一定是抽象类;抽象类不能实例化;抽象类的子类如果没实现父类的抽象方法,那么子类也必须定义成抽象方法。

         接口:接口里所有的方法都是抽象的,接口中的方法默认定义为public abstract.变量默认为public static final.

 

     抽象类用到的时候:可以定义一个类似模板类,众多子类继承它后,也可增添自己的方法。

     接口用到的时候:接口通常在定义很多需要实现业务操作时用,实现它的类需要必须实现它里面的所有定义的方法。

        

         一个类可以实现多个接口,但只能继承一个抽象类

集合map set list

         Listset都是单列元素的集合,都继承Collection

set里面不允许有重复的值,遍历元素时,使用Iterator接口取得所有的元素,然后再逐一遍历。

             List表示有先后顺序的集合,添加元素时按先来后到顺序排序;也可手动指定索引位置插入元素(add(index I,Object o))

         Map是双列集合,其中有putObj key,Obj val)方法,取值使用getobj key,不能存放重复键的value值,如果存放同样的键值,会被覆盖掉。

LinklistArrayList区别 HaspMap TreeMap HashSet TreeSet

 Linklist是链表,适合插入和删除

 ArrayList数组排序,适合遍历

 

 HashMap使用是hash码存储元素,所以查找快,有containsvaluecontainsKey查找方法

 TreeMap自动排序

 

  HashSet,用hash查找更快

 TreeSet自动排序

至于HashMapTreeMap,和Set的差不多,HashMap查找快,TreeMap自动排序。

声明注意

float a =2.0f;

       doubleb =2.0;

     char c =56;

 

 StringStringBufferstringbuild区别

  StringStringBuffer最明显的区别是StringBufferappend()方法,可以改变字符,效率高;

StringBuilder的实例用于多个线程是不安全的

 

Jdbc链接数据库

1.      //连接MySql数据库,用户名和密码都是root   

2.        String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk " ;    

3.       private staticfinal String username = "root" ;   

4.       private staticfinal String password = "ok" ;   

5.      private static final StringdriverClass=”com.microsoft.jdbc.sqlserver.SQLServerDriver”;

  publicstaticvoid main(String[] args) {

       Connection connection = null;

       Statement statement = null;

       ResultSet resultSet = null;

       try {

           Class.forName(driverClass);

           connection = DriverManager.getConnection(url,userName,password);

           String sql = "";

           statement = connection.createStatement();

           //PreparedStatementpreparedStatement = connection.prepareStatement(sql);

           //preparedStatement.setInt(parameterIndex,x);

           //preparedStatement.setString(parameterIndex,x);

//String callsql = "{call mystore()}";

           //CallableStatementcallableStatement = connection.prepareCall(callsql);

           resultSet = statement.executeQuery(sql);

          

       } catch (ClassNotFoundException e) {

           //TODO Auto-generated catch block

           e.printStackTrace();

       } catch (SQLException e) {

           //TODO Auto-generatedcatch block

           e.printStackTrace();

       }finally{

           try {

              if (resultSet!=null) {

                  resultSet.close();

              }

              if (statement!=null) {

                  statement.close();

              }

              if (connection!=null) {

                  connection.close();

              }

           } catch (SQLException e) {

              //TODO Auto-generated catch block

              e.printStackTrace();

           }

       }

    }

 

Jdbc调用存储过程

         public staticboolean create()

         throws Exception {

                   /*** 創建存儲過程(可以放到數據庫執行)

                    * use portal2;

                           DROP PROCEDURE IFEXISTS mystore;

                           CREATE PROCEDUREmystore()

                            begin 

                             select * from r_login_log where result ='fail' and (server_name like '%200%'

                             or server_name like '%202%');

                            end;

                   //執行命令 call mystore(); */

                   System.setProperty("jdbc.drivers","com.mysql.jdbc.Driver");

                   Connectionconn = DriverManager.getConnection(

                   "jdbc:mysql://202.101.36.206:3306/portal2","root", "noc_por!tDxcw.com");

                   String sql = "{ callmystore() }";

                   CallableStatement st =conn.prepareCall(sql);

                   boolean flag =st.execute(sql);

                   st.close();

                   conn.close();

                   return flag;

         }

接口是否可以继承?抽象类是否可实现接口?抽象类是否可继承集体类?抽象类中是否可以有静态的man方法?

抽象类和普通类的唯一区别是抽象类不能实例化和允许有abstract方法

publicclass jdbcimplementsImpl1,Impl2{}

基本数据类型:byteshort int long boolean char float double

String<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值