我与java的同居日常(3)

大数据

BigInteger:用valueOf方法将普通数值转化为大数值,但它也无法直接使用算术运算符(如+、*),需要使用add和multiply来运算。

             BigInteger a=BigInteger.valueOf(100)

             BigInteger c=a.add(b)相当于c=a+b

             BigInteger d=c.multioly(b)相当于d=c*b

Scanner in=new Scanner(System.in);

System.out.print("How many number do you need to draw");

int k=in.nextInt();

System.out.print("What is the highest number you can draw?");

int n=in.nextInt();

BigInteger lotteryOdds=BigInteger.valueOf(1);

for(int i=1;i<=k;i++)

lotteryOdds=lotteryOdds.multiply(BigInteger.valueOf(n-i+1)).divide(BigInteger.valueOf(i));

System.out.println("Your odds are 1 in"+lotteryOdds+".Good luck!");


数组

int[] a=new int[100]

把数组控制到五十万以下。

引用类型的只记住地址。

基本类型的拷贝为深拷贝,引用类型的拷贝为浅拷贝,浅拷贝指数组用一个内存,深拷贝则是不同的内存。


面向对象程序设计(OOP)

类:对事物描述的定义

静态方法是类方法,被所有对象共享。


随机生成数字:

Scanner in=new Scanner(System.in);

  System.out.print("How many numbers do you need to draw?");

  int k=in.nextInt();

  System.out.print("What is the highest number you can draw?");

int n=in.nextInt();

int[] numbers=new int[n];

for(int i=0;i<numbers.length;i++)

numbers[i]=i+1;

int[] result=new int[k];

for(int i=0;i<result.length;i++){

 int r=(int)(Math.random()*n);

result[i]=numbers[r];

numbers[r]=numbers[n-1];

n--;

  }

 Arrays.sort(result);

System.out.println("Bet the following combination.It will make you rich!");

for(int r:result)

System.out.println(r);


显示时间

System.out.println(LocalDate.of(1999, 12, 12));

LocalDate newYearsEve=LocalDate.of(1999, 12, 12);

int year=newYearsEve.getYear();

int month=newYearsEve.getMonthValue();

int day=newYearsEve.getDayOfMonth();

System.out.println(LocalDate.now());

LocalDate aThousandDaysLater=newYearsEve.plusDays(100000);

year=aThousandDaysLater.getYear();

month=aThousandDaysLater.getMonthValue();

day=aThousandDaysLater.getDayOfMonth();

System.out.println(aThousandDaysLater);


LocalDate date=LocalDate.now();

int month=date.getMonthValue();

int today=date.getDayOfMonth();

date=date.minusDays(today-1);

DayOfWeek weekday=date.getDayOfWeek();

int value=weekday.getValue();

System.out.println("Mon Tue Wed Thu Fri Sat Sun");

for(int i=1;i<value;i++)

System.out.print("    ");

while(date.getMonthValue()==month)

{

System.out.printf("%3d",date.getDayOfMonth() );

if(date.getDayOfMonth()==today)

System.out.print("*");

else

System.out.print(" ");

date=date.plusDays(1);

if(date.getDayOfWeek().getValue()==1)

System.out.println();

}

if(date.getDayOfWeek().getValue()!=1)

System.out.println();

Mon Tue Wed Thu Fri Sat Sun

  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

29  30  31


域:field(属性)

构造方法:constructor

class Employee

{

private String name;

private double salary;

private LocalDate hireDay;


构造器与类同名

每个类默认有一个构造器

构造器没有返回值

构造器和new一起调用

构造器可以有0个、1个或多个参数

不要再构造器里定义与实例域同名的局部变量

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,458评论 0 10
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,921评论 0 2
  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 7,184评论 0 9
  • K# Java核心技术卷一 逐一声明每一个变量可以提高程序的可读性。 在Java中,变量的声明尽可能地靠近变量第一...
    兰陵忧患生阅读 459评论 0 1
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,731评论 0 3