java入门学习笔记

JVM    

就是一个虚拟的用于执行bytecode字节码的“虚拟计算机

JRE

包含java虚拟机、库函数以及运行java应用程序所必须的文件

JDK

java开发工具包,包含JRE,还增加了编译器和调试器等用于程序开发的文件

java.math下的两个类:

BigInteger  实现任意精度的整数运算

BigDecimal 实现reny任意精度的浮点运算

Scanner键盘输出

import java.util.Scanner;

Scanner scanner=new Scanner(System.in);
String name=scanner.nextLine();
int age=scanner.nextInt();

重载overload

重载的方法,实际是完全不同的方法,只是名称相同而已

在形参类型,形参个数,形参顺序不同的情况下可以构成重载(可以区分就行)

单词:重载overload,重写loverride; 
形式:重载,方法名相同,参数列表不同(个数、类型、顺序);重写,方法名、返回值、参数列表都相同; 
范围:重载,是编译时的静态分派,同一个类中;重写,运行时动态分派,发生在继承的父子类中; 
权限:重载,没有权限限制;重写,子类的覆写的方法权限不能比父类的访问权限小;
 

面向过程

适合简单,不需要协作的事物,有1,2,3,4这样步骤的程序

面向对象  object

需要很多协作才能完成

宏观上使用面向对象把握,微观处理依旧是面向过程

通过抽象创建类,通过类创建对象(某个类的对象)

类方法

public static void main(String[] args) {
           Hero garen =  new Hero();
           garen.name = "盖伦";
           //必须有一个对象才能调用
           garen.die();
            
           Hero teemo =  new Hero();
           teemo.name = "提莫";
            
           //无需对象,直接通过类调用
           Hero.battleWin();
         
    }

什么是单例模式?

1. 构造方法私有化
2. 静态属性指向实例
3. public static的 getInstance方法,返回第二步的静态属性

http://how2j.cn/k/class-object/class-object-singleton/349.html

枚举enum

public enum Season {
	SPRING,SUMMER,AUTUMN,WINTER
}

复制数组

 System.arraycopy(a, 0, b, 0, 3);
//从a下标为0的位置复制3个数到b的下标为0开始的地方

finalize()

当一个对象没有任何引用指向的时候,它就满足垃圾回收的条件

当它被垃圾回收的时候,它的finalize() 方法就会被调用。

finalize() 不是开发人员主动调用的方法,而是由虚拟机JVM调用的。

抽象类和接口的区别

区别1:
子类只能继承一个抽象类,不能继承多个
子类可以实现多个接口
区别2:
抽象类可以定义
public,protected,package,private
静态和非静态属性
final和非final属性
但是接口中声明的属性,只能是
public
静态
final的
即便没有显式的声明
 

//基本类型转换成封装类型
 Integer it = new Integer(i);
         
//封装类型转换成基本类型
 int i2 = it.intValue();

数字转字符串

package digit;
 
public class TestNumber {
 
    public static void main(String[] args) {
        int i = 5;
        
        //方法1
        String str = String.valueOf(i);
        
        //方法2
        Integer it = i;
        String str2 = it.toString();
        
    }
}

字符串转数字

 int i= Integer.parseInt(str);

四舍五入, 随机数,开方,次方,π,自然常数

package digit;
 
public class TestNumber {
 
    public static void main(String[] args) {
    	float f1 = 5.4f;
    	float f2 = 5.5f;
    	//5.4四舍五入即5
    	System.out.println(Math.round(f1));
    	//5.5四舍五入即6
    	System.out.println(Math.round(f2));
    	
    	//得到一个0-1之间的随机浮点数(取不到1)
    	System.out.println(Math.random());
    	
    	//得到一个0-10之间的随机整数 (取不到10)
    	System.out.println((int)( Math.random()*10));
    	//开方
    	System.out.println(Math.sqrt(9));
    	//次方(2的4次方)
    	System.out.println(Math.pow(2,4));
    	
    	//π
    	System.out.println(Math.PI);
    	
    	//自然常数
    	System.out.println(Math.E);
    }
}

格式化输出

        //使用格式化输出
        //%s表示字符串,%d表示数字,%n表示换行
        String sentenceFormat ="%s 在进行了连续 %d 次击杀后,获得了 %s 的称号%n";
        System.out.printf(sentenceFormat,name,kill,title);

StringBuffer是可变长的字符串

append追加 
delete 删除 
insert 插入 
reverse 反转

日期格式化输出

        //调用该simpleDateFormat类 定义自己的日期输出格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh时mm分ss秒");
        //对日期按照定义格式输出
        System.out.println(sdf.format(d5));
        //output :1995中的随机日期:Sun Feb 05 00:32:28 CST 1995
        //output :1995年02月05日 12时32分28秒 

        //设置时间
        Calendar calendar = Calendar.getInstance();
        calendar.set(1995, 0, 1, 0, 0, 0);        
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" );
  
        String str = "2016/1/5 12:12:12";
          
        try {
            Date d = sdf.parse(str);
            System.out.printf("字符串 %s 通过格式  yyyy/MM/dd HH:mm:ss %n转换为日期对象: %s",str,d.toString());
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

按照日期中的时间排序(小时分钟秒钟)

        // 排序
        //定义格式
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HHmmssSSS");
        Arrays.sort(dates, (date1, date2) -> {
            String format1 = simpleDateFormat.format(date1);
            String format2 = simpleDateFormat.format(date2);
            return Integer.valueOf(format1).compareTo(Integer.valueOf(format2));
        });

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值