chenming142's Blog for github

实践|思考|总结|分享

20个非常有用的java程序片段

原文地址是:http://coolshell.cn/articles/889.html

下面是20个非常有用的Java程序片段,希望能对你有用。

1.字符串有整型的相互转换

Java Syntax MDN Documentation
1
2
     string a = String.valueOf(2);             // integer to numeric string
      int i = Integer.parseInt(a);              // numeric string to an int

2.向文件末尾添加内容

Java Syntax MDN Documentation
1
2
3
4
5
6
7
8
9
10
11
     BufferWriter out = null;
      try{
          out = new BufferWriter(new FileWriter("filename", true));
          out.write("aString");
      }catch(IOException e){
          // error processing code
      }finally{
          if(out != null){
              out.close();
          }
      }

3.得到当前方法的名称

Java Syntax MDN Documentation
1
     string methodName = Thread.currentThread().getStackTrace()[1].getMethodName();

4.转字符串到日期格式

Java Syntax MDN Documentation
1
     java.util.Date = java.text.DateFormat.getDateInstance().parse(date, String);

或者是:

Java Syntax MDN Documentation
1
2
     SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
      Date d = sdf.parse( myString );

5.使用JDBC连接Oracle

Java Syntax MDN Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
       public class OracleJDBCTest{
        String driverClass = "oracle.jdbc.driver.OracleDriver";
        Connection con;
        public void init(FileInputStream fs) throws ClassNotFoundException, SQLException,
           FileNotFoundException, IOException{
              Properties props = new Properties();
              props.load(fs);
              String url = props.getProperty("db.url");
              String username = props.getProperty("db.username");
              String password = props.getProperty("db.password");
              Class.forName(driverClass);
              con = DriverManager.getConnection(url, username, password);
          }
          public void fetch() throws SQLException, IOException{
              PreparedStatement ps = con.prePareStatement("select SYSDATE from dual");
              ResultSet rs = ps.executeQuery();
              while(rs.next()){
                  // do the things you do
              }
              rs.close();
              ps.close();
          }
          public static void main(String[] args){
              OracleJDBCTest test = new OracleJDBCTest();
              test.init();
              test.fetch();
          }
      }

Java构造时成员初始化的陷阱

原文:http://blog.csdn.net/haoel/article/details/4319793

让我们先来看两个类: BaseDerived 类.注意其中的 whenAmISet 的成员变量,和方法 preProcess().

Java Syntax Syntax MDN Documentation
1
2
3
4
5
6
7
8
9
10
11
12
 public class Base{
      Base(){
          preProcess();
      }
      void preProcess();
  }
  public class Derived extends Base{
      public String whenAmISet = "set when declared";
      @Override void preProcess(){
          whenAmISet = "set in preProcess()";
      }
  }

如果我们构造一个子类实例,那么 whenAmISet 的值会是什么呢?

Java Syntax MDN Documentation
1
2
3
4
5
6
   public class Main{
      public static void main(String[] args){
          Derived d = new Derived();
          System.out.println( d.whenAmISet );
      }
  }

再续继往下阅读之前,请先给自己一些时间想一下上面的这段程序的输出是什么?是的,这看起来的确相当简单,甚至不需要编译和运行上面的代码,我们也应该知道其答案,那么,你觉得你知道答案吗?你确定你的答案正确吗?

很多人都会觉得那段程序的输出应该是set in preProcess(),这是因为当子类Derived 的构造函数被调用时,其会隐晦地调用其基类Base的构造函数(通过super()函数),于是基类Base的构造函数会调用preProcess() 函数,因为这个类的实例是Derived的,而且在子类Derived中对这个函数使用了override关键字,所以,实际上调用到的是:Derived.preProcess(),而这个方法设置了whenAmISet 成员变量的值为:set in preProcess()

当然,上面的结论是错误的。如果你编译并运行这个程序,你会发现,程序实际输出的是set when declared。怎么为这样呢?难道是基类Base 的preProcess() 方法被调用啦?也不是!你可以在基类的preProcess中输出点什么看看,你会发现程序运行时,Base.preProcess() 并没有被调用到(不然这对于Java所有的应用程序将会是一个极具灾难性的Bug)

Hello Octopress,在windwow平台下自己动手搭建一个GitHub Blog!

github本身不仅作为代码共享仓库,并且支持github-pages功能,而octopress就是在这样的环境下诞生的博客系统.

需要安装的软件

1. git
2. ruby(或者说rubyinstaller, 版本号须 >= 1.9.2)
3. DevKit(windows平台下编译和使用本地C/C++扩展包的工具,即用来模拟Linux平台下的make,gcc,sh命令来进行编译)
4. python(支持代码高亮) 
关于 github 值得说说的事情
  1. 先注册一个github账号和创建一个repos
    创建一个新的Repository.这里必须重视,若想是博客首页是http://yourname.github.com,则Repositoty的project name就必须是yourname.github.com.
  2. 设置SH Keys 履行ssh-keygen -t rsa -C “your_email@youremail.com”,回车;然后输入两遍暗码. 到c:\Users\用户名.ssh\目次找到id_rsa.pub,并用文本软件打开复制全部(目录是隐藏的)
  3. 将SSH Key添加到GitHub 到github网站选择“Account Settings”>>“SSH Public Keys”>>“Add another public key”,将刚才复制的内容粘贴到key文本框内
  4. 测试
    为确保设置成功,现在可以测试设置成果啦。记住,”git@github.com”是默认的,无需修改
git command
1
     $ ssh -T git@github.com  (也可以用 SSH -v git@github.com 
  1. 设置个人信息
    你已经成功安装Git,并设置好SSH Keys,现在设置个人信息:
    设置用户名和电子邮件
git command
1
2
     $ git config --global user.name "Firstname Lastname"
      $ git config --global user.email "youremail@youremail.com"

如果你的~/目录下生成了 .gitconfig文件,即说明配置成功!你可以打开看看,是否是你配置的信息.OK,就说这么多了.