天天看点

命名规则-类型转换-数组-jvm内存划分-抽象类

 jre system library

2:包名都习惯用公司的反域名

  Com.zhiyou.demo

  Com.baidu.map.demo

  反域名为了排序

3:scanner  扫描器,主要用于键盘的输入

  Nextint  :是scanner扫描到输入的是数字的时候,获取到这个数字。

Nextline:总是以enter为结束。

next()一定要读取到有效字符后才可以结束输入

之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉

就输入的内容而言:只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符

next方法不能得到带空格的字符串

nextLine()方法的结束符只是Enter键

返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的

问题:nextLine()自动读取了被next()去掉的Enter作为他的结束符

解决:在每一个 next()、nextDouble() 、 nextFloat()、nextInt() 等语句之后加一个nextLine()语句,将被next()去掉的Enter结束符过滤掉。

4:判断两个字符串是否相等用equals

忽略两个字符串大小写用:equalsignorecase

1:system.out

    System.in

2:random

    Random.nextint(100)+1

3:for

4:while

5:char类型可以使用++--运算,是因为使用的字符的ascii值来计算的

6:int 大范围赋值给byte小范围,需要强制转换

    格式:(要转换的类型)需要类型转换的变量名

    Int 默认整数类型

    Double 默认小数类型

    Double d=1.123

    Float f=1.123f

7:类型转换

    整型,浮点型,字符型 可以类型转换,但是不能与引用类型进行类型转换,比如int转换string

  • 隐世转换 对于不同类型而言,大范围能容纳小范围。比如:byte类型的变量赋值给int类型的变量  long>int>short>byte
  • 显氏转换(强制类型转换)
  • 对于同类型而言,小范围不得已容纳大范围,比如int类型的变量要赋值给byte类型的变量    int a=1; byte b=(byte)a
  • 对于不同类型,当然要进行类型的强制转换
  • Float a=1.321f;int b=(int)a;

8:数组

  • 静态数组方式:Int[]array={1,2,3};
  • Int []array=new array[10];
  • 数据类型 [] 数组名=new 数据类型[数据长度];
  • 取  通过索引  index
  • Intarr[0] 代表取数组中第一个元素
  • Intarr.Length()

9:jvm的内存划分

  • 程序计数器:CPU与内存的通信
  • 本地方法栈(stack):jvm调用系统的方法    比如copy
  • 方法栈:执行方法,保存局部变量
  • 方法区:存储类的信息(比如累的名字等等),静态变量,常量以及编译器编译后的代码等等
  • 堆(heap):存放对象  以及数组
    命名规则-类型转换-数组-jvm内存划分-抽象类
  • 二维数组
  • Int[][]intarr=new int[2][3]
  • Int[][]intarr={{1,2},{2,3},{4,5,6}}
  • Arrarys.tostring(arr)

类:

  • 属性
  • 方法
  • 继承
  • 封装
  • 多态

{

属性

构造方法

Setter,getter方法

Override重写方法

普通方法

}

1:抽象类  &  接口

    接口文档

    Server后端工程师与client 前端工程师的一个桥梁。

1.1:抽象类abstract

1.2抽象类可以有抽象方法也可以有非抽象方法

1.3抽象类无法实例化,抽象类不能创建对象,只能使用其子类(如果子类不是抽象类)

1.4:子类使用父类的抽象方法

1.5:抽象类也是类,仍然可以有自己的属性方法

抽象类的子类也可以是抽象类

总结:1:抽象类是类

       2:抽象类都会涉及到继承

3:抽象类存在的方法不需要有任何实现,所以不需要使用。