当前位置:   article > 正文

拼图小游戏

拼图小游戏

GUI(指采用图形化的方式显示操作界面)

AWT包  Swing包(常用)

事件

事件源:按钮 图片 窗体...

事件:某些操作

           如:鼠标单击,鼠标划入...

绑定监听:当事件源上发生了某个事件,则执行某段代码

KeyListener  MouseListener  ActionListener

Math

常用方法:

       

  1. public static int abs(int a);//求绝对值
  2. public static double ceil(double a);//向上取整
  3. public static double floor(double a);//向下取整
  4. public static int round(float a);//四舍五入
  5. public static int max(int a,int b);
  6. public static double pow(double a,double b);//返回a的b次幂的值
  7. public static double random();//返回值为double的随机值,范围为[0,1)
  1. package mathdemo1;
  2. public class Mathdemo1 {
  3. public static void main(String[] args) {
  4. //int -2147483648 ~ 2147483647
  5. System.out.println(Math.abs(-8));
  6. System.out.println(Math.abs(-2147483648));
  7. System.out.println(Math.abs(-2147483647));
  8. // Math.absExact(-2147483648);
  9. //进一法 ceil 向正无穷大方向获取最大值
  10. System.out.println(Math.ceil(12.34));
  11. System.out.println(Math.ceil(12.54));
  12. System.out.println(Math.ceil(-12.34));
  13. System.out.println(Math.ceil(-12.54));
  14. //进一法 floor 向负无穷大方向获取最大值
  15. System.out.println(Math.floor(12.34));
  16. System.out.println(Math.floor(12.54));
  17. System.out.println(Math.floor(-12.34));
  18. System.out.println(Math.floor(-12.54));
  19. //四舍五入
  20. System.out.println(Math.round(12.34));
  21. System.out.println(Math.round(12.54));
  22. System.out.println(Math.round(-12.34));
  23. System.out.println(Math.round(-12.54));
  24. //max
  25. System.out.println(Math.max(12,13));
  26. System.out.println(Math.min(12,13));
  27. //
  28. System.out.println(Math.pow(2,3));
  29. System.out.println(Math.pow(4,0.5));
  30. System.out.println(Math.pow(4,-2));
  31. System.out.println(Math.sqrt(4));
  32. System.out.println(Math.cbrt(9));
  33. System.out.println("-------------------");
  34. for (int i = 0; i < 10; i++) {
  35. System.out.println(Math.floor(Math.random() * 100) + 1);
  36. }
  37. }
  38. }

 输出:

 判断一个数是不是质数?

  1. public static boolean isPrime(int n) {
  2. int count = 0;
  3. for (int i = 2; i < Math.sqrt(n); i++) {
  4. count++;
  5. if (n % i == 0) {
  6. return false;
  7. }
  8. }
  9. System.out.println(count);
  10. return true;
  11. }

System

        

  1. public static void exit(int status);//终止当前运行的Java虚拟机
  2. public static long currentTimeMillis();//返回系统当前时间毫秒值形式
  3. public static void arraycopy(数据源数组,起始索引,目的地数组,起始索引,拷贝个数);//数组拷贝
  1. int[] a = {1,2,3,4,5};
  2. int[] b = new int[a.length];
  3. // System.arraycopy(a,0,b,2,a.length);
  4. System.arraycopy(a,0,b,2,3);
  5. for (int i=0;i<b.length;i++){
  6. System.out.print(b[i] + " ");
  7. }

如 数据源数组和目的地数组都是基本数据类型,那么两者的类型必须保持一致,否则会报错;

在拷贝的时候,需要考虑数组的程度,若超出数组长度,则报错

 数据源数组和目的地数组都是引用数据类型,那么子类类型可以赋值给父类类型

时间原点:1970年1月1日

Runtime

        表示当前虚拟机的运行环境

        

  1. public static Runtime getRuntime();//当前系统的运行环境对象
  2. public void exit(int status); //停止虚拟机
  3. public int availableProcessors();//获得CPU的线程数
  4. public long maxMemory();//JVM能从系统中获取总内存大小(byte)
  5. public long totalMemory();//JVM已经从系统中获取总内存大小(byte)
  6. public long freeMemory();//JVM剩余内存大小(byte)
  7. public Process exec(String command);//运行cmd命令

Object

       作用:object是Java中的顶级父类,所有的类都直接或间接的继承于Object类。

         Object类中的方法可以被所有子类访问

        构造方法:public Object() 只有空参构造

        成员方法:

                public String toString();//返回对象的字符串表示形式

                若打印一个对象,想看到属性值时,需要重写toString方法,在重写的方法中,把对象的属性值拼接

                public boolean equals(Object obj);//比较两个对象是否相等

                若没有重写equals方法,那么默认使用Object中的方法进行比较,比较的是地址值是否相等

                

  1. public class ObjectDemo1 {
  2. public static void main(String[] args) {
  3. Object object = new Object();
  4. String str = object.toString();
  5. System.out.println(str);
  6. String s = "abc";
  7. StringBuilder sb = new StringBuilder("abc");
  8. System.out.println(s.equals(sb));
  9. //equals方法是被s调用的,而s是字符串,
  10. //所以equals要看String类中的字符串equals方法,该方法先判断参数是否为字符串
  11. //若是则比较内部属性,否则直接返回false
  12. System.out.println(sb.equals(s));
  13. //equals方法是被sb调用的,而sb是StringBuilder,
  14. //所以equals要看StringBuilder类中的字符串equals方法,该方法没有重写equals方法
  15. //因此使用的是Object中的,而Object中默认使用==号比较两个对象的地址值
  16. //而这里的s和sb记录 的地址值是不一样的,所以结果返回false
  17. }
  18. }

                protected object clone(int a);//对象克隆

                定义:

                        把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象复制

                细节:

                        方法在底层会帮我们创建一个对象,并把原对象中的数据拷贝过去

                        需重写Object中的clone方法

                        让javabean类实现Cloneable接口

                        创建原对象并调用clone方法即可

                        浅克隆:

                        

                图来自黑马程序员网课

                深拷贝

                

浅克隆:不管对象内部的属性是基本数据类型还是引用数据类型,都完全拷贝过来

深克隆:基本数据类型拷贝值,字符串复用,引用数据类型会重新创建新的

Object中的克隆是浅克隆

Objects

        Objects是一个工具类,提供了一些方法区完成一些功能

        

       源码:

         

输出:

isNull源码:

BigInteger

        在Java中,整数有四种类型:byte,short,int,long

        在底层占用字节个数:byte1个字节,short2个字节,int4个字节,long8个字节

        构造方法:

        

        图来自黑马程序员网课

        小结:若BigInteger表示的数字没有超出long的范围,可以用静态方法获取

                   若超出,则用构造方法获取

                    对象一旦创建,BigInteger内部记录的值不能发生改变,只要进行计算都产生一个新的BigInteger对象

        

  1. public class Test {
  2. public static void main(String[] args) {
  3. BigInteger bd1 = new BigInteger(4,new Random());
  4. //0 ~ 2^4 - 1
  5. System.out.println(bd1);
  6. BigInteger bd2 = new BigInteger("10000000000000000000000000");
  7. System.out.println(bd2);
  8. // BigInteger bd3 = new BigInteger("1.1");
  9. // System.out.println(bd3);
  10. BigInteger bd4 = new BigInteger("100",10);
  11. System.out.println(bd4);
  12. BigInteger bd5 = new BigInteger("100",2);
  13. System.out.println(bd5);
  14. //字符串的数字必须是整数
  15. //字符串中的数字必须要跟进制吻合
  16. //能表示的范围比较小 long
  17. //在内部对常用的数字:-16 ~ 16进行了优化
  18. //提前把-16 ~ 16 的每一个数字先创建好BIgInteter对象,如果多次获取不会重新创建新的
  19. System.out.println(Long.MAX_VALUE);
  20. System.out.println(BigInteger.valueOf(1000));
  21. System.out.println(BigInteger.valueOf(9223372036854775807L));
  22. BigInteger bd6 = BigInteger.valueOf(16);
  23. BigInteger bd7 = BigInteger.valueOf(16);
  24. System.out.println(bd6 == bd7);
  25. BigInteger res = bd7.add(bd6);
  26. System.out.println(res);
  27. //此时不会修改参与计算的对象的值,而是产生了一个新的BigInteger对象记录
  28. System.out.println(res == bd7);
  29. System.out.println(res == bd6);
  30. }
  31. }

正则表达式 

  作用:

        校验字符串是否满足规则以及查询满足要求的数据

  使用:

                图来自黑马程序员网课 

                转义字符:\ 例如:\\ 前面的\是一个转义字符,改变了后面\的原本含义,将其变为一个普通的\

身份证号正则表达式:

String regex8 = "[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]";

                          图来自黑马程序员  

                        

                  图来自黑马程序员  

                分组 :

                        规则:从1开始,连续不间断;以左括号为基准,最左边的是第一组,其次为第二组

                捕获分组:

                        后续还要继续使用本组数据,正则内部使用:\\组号  正则外部使用:$组号

                非捕获分组:分组之后不需要再用本组数据,仅仅是把数据括起来。

                        

        图来自黑马程序员 

  1. package regex;
  2. public class Demo3 {
  3. public static void main(String[] args) {
  4. // \\组号:表示把第X组的内容再拿出来用一次
  5. String regex1 = "(.).+\\1";
  6. System.out.println("hjdsksjds".matches(regex1));
  7. String regex2 = "(.+).+\\1";
  8. System.out.println("hjdsksjhj".matches(regex2));
  9. //(.)把首字母看做一组
  10. // \\1 把首字母
  11. String regex3 = "((.)\\2*).+\\1";
  12. System.out.println("aaa632873aab".matches(regex3));
  13. String regex4 = "(.)\\1+";
  14. String str = "hhh jskjdi jewi ej jje wjwiww";
  15. System.out.println(str.replaceAll(regex4,"$1"));
  16. //非捕获分组
  17. String regex5 = "[1-9]\\d{16}(?:\\d|X|x)\\1";
  18. System.out.println("37827372738462734X".matches(regex5));
  19. }
  20. }

 

        

        

         

        

                

        

        

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/680560
推荐阅读
相关标签
  

闽ICP备14008679号