2016Java作业笔记

Project 1 笔记

  1. javac编译 java运行

  2. cd+源代码地址 来进入目录

  3. HelloWorld源码

     public class HelloWorld/*一个类*/ {
        public/*main方法*/ static/*main的类型*/ void/*返回类型*/ main (String args/*两个均为标识符*/[]) {
            System.out.println("Hello World!");
        }
    }
    
  4. print不换行 println会换行

  5. 字符串是常量 字符串缓冲区支持可变字符串

Project 2 笔记

  1. 正数的补码:为这个数的2进制码(原码)

  2. 负数的补码:在原码的基础上,符号位不变,其他位逐位取反,再+1

  3. 牛顿迭代法
    首先随便猜一个近似值x,然后不断令x等于x和a/x的平均数,迭代个六七次后x的值

    double sqr(double n)
    {
    double k=1.0//随便猜;
    while(abs(k*k-n)>1e-9)
    {
    k=(k+n/k)/2;
    }
    return k;//即平方根近似值
    }
    
  4. java排序函数引用

    import java.util.Arrays; Arrays.sort(a);

  5. int n=Integer.parseInt(args[0]);等同于

    import iava.util.Scanner;
    Scanner input=new Scanner(System.in);
    int n=input.nextInt();
    

    注:若输入字符串,直接next()

  6. n<<r 位左移,相当于n*2^r;

  7. ^异或运算符,0^0=0; 1^1=0; 0^1=1; 1^0=1;

  8. 注意do while

  9. 保留两位小数

    double a==3.14159;
    String b = String.format("%.2f", a);
    System.out.println(b);
    

Project 3 笔记

  1. 表示转义字符String replace("\'","\"");
  2. 命令行参数的个数 args.length

String strStringType="my string";创建一个字符串变量

`strStringType char[] chrCharArray;`创建一个字符数组 

`chrCharArray chrCharArray = strStringType.toCharArray();`将字符串变量转换为字符数组 

`strStringType= String.valueOf(chrCharArray );`将字符数组转换为字符串 

这里,关键是两个方法。
(1)String类的toCharArray()方法,将字符串转换为字符数组
(2)String类的valueOf()方法,将char类型的数组转换为字符串

  1. 不使用循环的逆序输出
import java.util.Scanner;
import java.lang.StringBuffer;
public class reverse {
  public static void main(String[] args) {
      Scanner input = new Scanner(System.in);
      String s = input.next();
      StringBuffer ss = new StringBuffer(s);
      System.out.println(ss.reverse());
  }
}
  1. 字符流与字节流的区别:字节流优先选择
    字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,
    而字符流在操作时使用了缓冲区,通过缓冲区再操作文件
  2. 获取绝对路径:file.getAbsolutePath()

获取名称: file.getName()
7. 比较String 用s1.equals(s2)
8. 字符串的长度 s.length()
数组的长度 s.length
9. 追加方式写入文件

package com.thread.test;
import java.io.FileWriter;  
import java.io.IOException;  
import java.io.RandomAccessFile;  
public class AppendToFile {  
    public static void appendMethodA(String fileName,String content){  
        try {  
            // 打开一个随机访问文件流,按读写方式  
            RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");  
            // 文件长度,字节数  
            long fileLength = randomFile.length();  
            //将写文件指针移到文件尾。  
            randomFile.seek(fileLength);  
            randomFile.writeBytes(content);  
            randomFile.close();  
        }   catch (IOException e){  
                e.printStackTrace();  
            }  
    }  
    public static void appendMethodB(String fileName, String content){
    try {
    //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件  
    FileWriter writer = new FileWriter(fileName, true);
    writer.write(content);
    writer.close();
    }   catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) {
        String fileName = "C:/t2.txt";
        String content = "new append!";
        //按方法A追加文件  
        AppendToFile.appendMethodA(fileName, content);
        AppendToFile.appendMethodA(fileName, "append end. n");
        //显示文件内容  
        ReadFromFile.readFileByLines(fileName);
        //按方法B追加文件  
        AppendToFile.appendMethodB(fileName, content);
        AppendToFile.appendMethodB(fileName, "append end. n");
        //显示文件内容  
        ReadFromFile.readFileByLines(fileName);
    }
}
  1. 获取用户当前工作目录 System.getProperty("user.dir")+"/test.jpg"

  2. floor 返回不大于的最大整数

    round则是4舍5入的计算,入的时候是到大于它的整数,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5) = 12Math.round(-11.5) = -11

    ceil则是不小于他的最小整数

Project 5 笔记

  1. 有趣的是,在类中定义了 toString()方法后,用System输出时直接填入 对象名 ,会默认调用toString()方法
  2. 单例模式(Singleton):保证程序永远能获得同一个Java对象。

示例一:称饿汉式 :开始就急着创建对象,所以称为俄汉式

class A{
    private static A a = new A();
    private A(){//使用private访问控制符来让外界不能new该对象;只能调用静态方法来获取。
    //这样方可实现外界永远获得的是同一个Java对象。
    }
    public static A getInstance(){
       return a;
    }
}

示例二:称懒汉式 :开始不创建对象,等到用的时候才创建,行为有点懒;所以称为懒汉式。

class A{
   private static A a=null;
   private A(){}
   public synchronized static A getInstance(){
       if(a == null){
           a = new A();
       }
       return a;
   }
}
posted @ 2018-02-28 15:15  4645  阅读(143)  评论(0编辑  收藏  举报