zoukankan      html  css  js  c++  java
  • 2015-04-11一些知识点

      1、一个小程序,关于Java值传递和引用传递的:

    package com.lk.B;
    
    public class Test1 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Test1 t = new Test1();
            t.first();
        }
        public void first(){
            int i = 5;
            Value v = new Value();
            v.i = 25;
            second(v,i);
            System.out.println(v.i);
        }
        public void second(Value v , int i){
            i = 0;
            v.i = 20;
            Value val = new Value();
            v = val;
            System.out.println(v.i+" "+i);
        }
    }
    
    class Value{
        public int i = 15;
    }

      2、RandomAccellFile是比较不寻常的类,它直接继承与Object,它并不属于Streams结构的一部分。

      3、Java编程思想里面有个关于值传递和引用传递的经典的解释:如果Java是传值,那么传递的是值的副本;如果Java是传引用,那么传递时引用的副本。

          即不管Java参数的类型是什么,一律传递参数的副本。

          下面有三个例子:

    package com.lk.B;
    
    public class Test2 {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            boolean test = true;
            System.out.println(test);
            test(test);
            System.out.println(test);
        }
        public static void test(boolean test){
            test = !test;
            System.out.println(test);
        }
    
    }
    true
    false
    true
    package com.lk.B;
    
    public class Test2 {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            StringBuffer sb = new StringBuffer("Hello");
            System.out.println(sb);
            test(sb);
            System.out.println(sb);
        }
        public static void test(StringBuffer sb){
            sb.append(",World!");
        }
    
    }
    Hello
    Hello,World!
    package com.lk.B;
    
    public class Test2 {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String s = "Hello";
            System.out.println(s);
            test(s);
            System.out.println(s);
        }
        public static void test(String s){
            s = "World";
        }
    
    }
    Hello
    Hello

      对于String类型,String类是final的,因此,不能继承和修改这个类。是s = “World”是隐含地让Java生成一个新的String对象。既然对象都是新的,那就和原来的“Hello”没有任何关系。当函数结束,s作用消失,原来的内存地址上的内容未加改变,所以打印的结果仍然是Hello。

      4、当读取的问价是一个比较大的文本文件(很多字节数的文本文件),那么就要考虑到BufferedReader这个类。

           new BufferedReader(new InputStreamReader(new FileInputStream("file.name")));

      5、一个字符串写入文件的例子:

    package com.lk.B;
    
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class Test2 {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            FileOutputStream fos = null;
            try {
                fos = new FileOutputStream("FileName.txt");
                fos.write("字符串写入文件".getBytes());
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally{
                try {
                    fos.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }

      6、看到一个判断是一个数是不是2的阶次方数。

          一个非常机智的算法:如果一个数是2的阶次方数,那么它的二进制数的首位一般是1,后面接若干个0.比如8就是1000,64就是1000000.如果将这个数减1,再与该数做和(&)运算,则应该全为0.(例如:8与7,一个二进制数是1000,一个二进制数是111,它们做和运算后全为0)。所以((d-1)&d)==0。

    package com.lk.B;
    
    public class Test3 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int a = 256;//2,4,8,16,32,64,128,256...
            System.out.println((a-1)&a);//输出0
        }
    
    }
  • 相关阅读:
    MySQL主从复制-指定数据库复制
    linux下如何添加一个用户并且让用户获得root权限
    vim加密文件
    nginx_upstream_check_module-master对nginx的后端机器进行健康状态检查报403错误【转】
    Nginx配置SSL证书部署HTTPS网站
    MySQL数据备份之mysqldump使用
    nginx location语法使用说明
    Linux 使用 iptables屏蔽IP段
    nginx中获取真实ip
    在nginx中配置如何防止直接用ip访问服务器web server及server_name特性讲解
  • 原文地址:https://www.cnblogs.com/luankun0214/p/4416198.html
Copyright © 2011-2022 走看看