Mosh_Java笔记 P1-2

  • 基本数据类型(8个)
    byte boolean short long float double char int
    几个注意
    float = 3.14F;后面要加F
    long int = 4324132412L后面要加L
  • 引用类型
    除了基本数据类型都是引用类型
    eg:Date now = new Date();
    //引用类型需要使用new操作符来分配该对象的内存

基本类型没有任何成员
而引用类型可以通过.操作符调用对象所属类的成员方法等

基本数据类型与引用类型的内存管理

String

  1. String类型的初始化可以不用new,可以直接String message = "Hello World!"

  2. String类型的一些方法

  • 返回boolean值
    endwith("!!") 是否以两个!!结尾,同理有startwith();
  • message.length(),返回字符串长度
  • message.indexOf("He")检查一个字符串中是否有某些字符或字串,返回起始下标
  • message.repalce("!","")将字符串中的!替换为
  • parameters are the holes that we define in our methods
  • arguments are the actual values that we pass 传递的实际值
    例如

    target和replacement是parageters,即形参
    而!和*是arguments,即实参
    ***注意,替换后的字符串是一个新的字符串,原来的字符串没有改变,这是因为字符串是不可变的,任何对字符串的修改都会返回一个新的字符串对象
  • message.toLowerCase();将字符串全部小写,toUpperCase();同理
  • message.trim();修剪掉字符串开头和结尾的多余空格
  1. 转义字符(常用4个)
  • \n换行
  • \t 插入一个tab
  • \一个反斜杠,比如"Mosh"\ 输出的是“Mosh”
  • \两个反斜杠,比如"c:\windows\...",输出的是c:\windows...

Array

  • 如果定义一个数组nums -> int [] nums = new int[5]
    给其前两个位置赋值 nums[0] = 1;nums[1] = 2;

  • 倘若要输出该数组,print(nums)打印出来的并不是数组的值,而是这一串连续地址空间的首地址值,当然首先可以想到通过遍历数组来输出数组的值,for掉num[i],因为num对象被创建时,经类加载和对象初始化后,成员变量被重新赋值,访问num[0]时是从堆内存中访问的,所以输出的不是地址值而是值。

  • 另一 种方法是利用Arrays.toString()方法返回该数组,可用Arrays.sort为数组排序

多维数组
定义int [][] nums1 = new int[2][3]
初始化赋值nums1[0][0] = 1
二维数组赋值
int[][] nums = {{1,2,3},{4,5,6}};
多维数组的输出需要用到deepToString即Arrays.deepToString(nums1);

常量
用final修饰

算数表达式

  • 整数除整数的结果是整数

  • x++和++x在单独的情况是相等的
    如果有变量赋值才会有区别
    y=x++,先将x值赋给y,再增加
    y=++x是x先自增1,再赋值给y

  • 强制转换
    自动转换(不会有精度的丢失byte->short->int ->long ->float ->double)
    隐式强制转换(不会丢失数据和精度)
    显式强制转换(比如double x = 1.1,显式转换为int,会有数据和精度的丢失)
    简而言之,在类型兼容的前提下(比如int和double等兼容,而int和string不兼容)
    如果不会有数据和精度的丢失,则会发生自动转换,而如果会发生精度减小的转化则需要用到显式转换。

  • 字符串和数字的转换 可以用到包裹类型的parseInt(String)方法
    如Integer.parseInt(x);

  • Math类

    • Math.round - 返回一个四舍五入值
    • Math.ceil - 返回一个大于该数的最小整数
      -Math.max(a,b) - 返回两个数里大的一个数
      -Math.min(a,b) - 返回两个数里小的一个数
      -Math.random() - 返回一个(0,1)的随机数
      int result = Math.round(Math.round(Math.random));
      生成一个(1,100)的随机数字
  • 格式化数字
    NumberFormat()是一个抽象函数
    但可以通过获取实例化方法来,
    例如NumberFormat currency = NumberFormat.getCurrencyInstance();方法中,=右边的就是获取货币实例化的方法,返回的结果是一个数字格式的对象。我们不能通过new来实例化,但可以通过这样的方法来获取对象,其中蕴含的设计模式是工厂模式

shift+f6重命名变量

method chaining
***********NumberFormat.getCurrencyInstance().format(x);

-读写
Scanner scanner. = new Scanner (System.in);

String name = scanner.nextLine().trim;//可以对这一行输入的字符进行操作

posted @ 2022-03-20 01:21  全辣柯基  阅读(49)  评论(0编辑  收藏  举报