1月3日java基础

/*面试点 String和StringBuilder 和StringBuffer的区别?
1.StringBuilder和StringBuffer比string快,后者是前者的安全版本,多线程下是安全的
单线程下StringBuilder速度是最快的
String不可变,StringBuilder和StringBuffer可变

2.case 标签可以是:
类型为 char、byte、 short 或 int 的常量表达式。
枚举常量。
从 Java SE 7开始, case 标签还可以是字符串字面量

java中只有值传递   没有引用传递,值传递就是它本身记录的值
------------------------------------------------------------------------------
3.7.1输入和输出
import java.util.*;  这是引入所有要用到的类接口
记住这两个int 类型         int flag = scanner.nextInt();
String类型    String name = in.nextLine();
*/

 /*import java.util.*;
public class aa{
    public static void main(String[] args){
        System.out.println("欢迎使用计算器,请选择计算类型");
        System.out.println("1.加法 2.减法 3.乘法 4.除法  请输入数字类型");
        Scanner scanner = new Scanner(System.in);
        int flag = scanner.nextInt();
        switch(flag){
        case 1:
        System.out.println("您选择的是加法运算");
        break;
        case 2:
        System.out.println("您选择的是减法运算");  
        break;
        case 3:
        System.out.println("您选择的是乘法运算");  
        break;
        case 4:
        System.out.println("您选择的是除法运算");  
        default:
        System.out.println("计算类型错误"); 
        return;
       }
      System.out.println("请输入要计算的两个数字");
      Scanner scanner1 = new Scanner(System.in)
      Scanner scanner2 = new Scanner(System.in)
      int x1 = scanner1.nextInt();
      int x2 = scanner2.nextInt();
              switch(flag){
        case 1:
        System.out.println("计算结果: "+ (a+b));
        break;
        case 2:
        System.out.println("计算结果: "+ (a-b));  
        break;
        case 3:
        System.out.println("计算结果: "+ (a*b));  
        break;
        case 4:
        System.out.println("计算结果: "+ (a/b));  
        default:
        System.out.println("计算类型错误"); 
        return;
       }
   }
}
 */


 /*  
import java.util.*;
public class InputTest{
    public static void main(String[] args){
    Scanner in = new Scanner(System.in);
    //get first input
    System.out.println("What is your name?");
    String name = in.nextLine();
    //get second input
    System.out.println("How old are you?");
    int age = in.nextInt();
   //display output on console
   System.out.println("Hello, " + name +".Next year,you will be" +(age+1));

}
}
*/

//格式化输出   按照格式输出
//System.out.printf("#####%s#####%d#####%s#####","哈哈哈",35,"我好");
//文件的输入和输出  3.7.3     记String dir = System.getProperty("user.dir");
//块作用域
//变量在哪个块中声明的,出了这个块就没作用了

/*while循环

import java.util.*;

public class Retirement
{
    public static void main(String[] args){
       Scanner in = new Scanner(System.in);
       
       System.out.print("How much will you contribute to retire?");
       double goal = in.nextDouble();
       
        System.out.println("How much money will you contribute every year?");
        double payment = in.nextDouble();

        System.out.println("Interest rate in %: ");
        double interestRate = in.nextDouble();
     
        double balance = 0;
        int years = 0;
      
        while(balance < goal){
             balance +=payment;
             double interest = balance *interestRate / 100;
             balance +=interest; 
             years++;
        


        }
        System.out.println("You can retire in " + years + "years") ;
    }
}
*/

/*  break 终止全部循环
continue终止此次循环

*/

// 大数值 精准计算整数用BigInteger  小数用BigDecimal
/*import java.util.*;
import java.math.*;
public class Test2{
    public static void main(String[] args){
    
    BigInteger aa = new BigInteger("2500000000000000000000000000000000000000");
    BigInteger bb = new BigInteger("4000000000000000000000000000000000000000");
    BigInteger cc = aa.add(bb);
    BigInteger dd = aa.subtract(bb);
    BigInteger ee = aa.multiply(bb);
    BigInteger ff = aa.divide(bb);
    BigInteger gg = aa.mod(bb);
    System.out.println(cc);
    System.out.println(dd);
    System.out.println(ee);
    System.out.println(ff);
    System.out.println(gg);
    }
}
*/

//类和对象
/*public class Test2{
    public static void main(String[] args){    
    Person.eyesnum = 9;    //定义的静态方法或属性会在static中创建内存
    Person.m2();
    Person a = new Person();
    Person b = new Person();
    a.name = "小红";
    a.age = 12;
    a.height = 155;
    b.name = "小明";
    b.age = 13;
    b.height = 167;
    }
}
*/
//任何程序的运行都要在内存中 
//操作系统中单个进程所占据的空间叫做块
//static方法或属性属于类,它在创建时只有一份属于类,创建类的对象不会再新建static属性或方法
//不属于对象  创建类的对象时非静态的属性和方法对象都有
//方法的执行在栈中,复制方法到栈中申请的小栈  一个小栈就是一个线程   
//栈的功能控制方法的执行顺序和变量的定义域
//程序计数器配合栈工作,用来控制入栈和出栈的时间
//面向对象缩写oop
//4.1类的几个特性?封装 继承 多态 抽象                            属性就是实例域
/*对象的实例化
Date deadline = new Date();
有两个部分。表达式 new Date() 构造了一个 Date 类型的对象, 并且它的值是对新创建对象的
引用。这个引用存储在变量 deadline 中
private是私有的,只能是该类自己对变量进行操作
访问器和更改器 可以使private修饰的属性可读可写
因为private修饰的属性不可以直接被对象调用,利用访问器和更改器两个方法进行修改此对象对应的属性
*/

//多线程
//cpu快速切换执行线程   线程执行顺序可能不同   线程优先级越高被优先执行率越大
//start表示线程进入就绪状态,等待cpu选中执行
/*public class Test2{
    public static void main(String[] args){
    
     Thread t1 = new Thread(){
         @Override
         public void run(){
             System.out.println("大家好,我是1");
         }
      };
      Thread t2 = new Thread(){
         @Override
         public void run(){
             System.out.println("大家好,我是2");
         }
      };
         t1.start();
         t2.start();
         System.out.println("大家好,我是3");

  }

}
*/

//通过访问器来保证多线程的安全性
public class Person{
        public String[] names = {"aa","bb","cc","dd"};
        public String[] getNames(){
                String[] n = new String[names.length];
                for(int  i = 0;i < names.length;i++){
                     n[i] = names[i];  
        }
        return n; 
         }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值