zoukankan      html  css  js  c++  java
  • Java基础知识笔记

    1、class 类名必须与文件名一样
      javac Hello.java   -  javac命令,编译代码,会生成一个 jvm 运行的 class 文件
      java Hello - java命令,运行代码


    2、java运行机制 - java既有编译型特点,也有解释型特点
      高级语言分 2 种:编译型、和解释型
      编译型和解释型的区别就在于执行时机不一样。
      以一本书作比喻:比如中国人L创作了《三体》,美国人M想看,但是M不懂中文,那么M有 2 种方式去读这本书。
      第一种,《三体》直接翻译印制为美文版出书,M要看就去买翻译的美文版这本书,直接看;
      第二种,M请一个翻译官F,F边看边翻译给M。
      经过这 2 种方式,M都可以看完《三体》这本书,但是这 2 种方式各有优缺点:
      第一种方式的缺点,就是比如L修改了一部分《三体》,那么翻译的美文版,就得重新翻译印制成书,M想看就只能再次购买新出的书
      第二种方式的缺点就是M看到后面想再从前面看,那么F也得翻到前面重新翻译给M,并且F如果不翻译了,那么M也看不了了。


    3、java程序运行机制


    (1)源程序java文件 - 经过java编译器 - 编译为字节码(class文件)
      这个class文件才是真正被执行的文件,所以java程序都会经过一个预编译阶段生成class文件 - 机器语言与java源代码之间的字节码文件
    (2)class执行的时候,就会经过一系列处理,走到 JVM虚拟机,jvm虚拟机会将这个class类加入到 JVM 的类装载器 - 之后经过字节码校验器校验是否出错 - 在交给解释器解释给操作系统,解释一步执行一步
      所以Java就是既有编译型语言的特点,也有解释型语言的特点。


    4、数据类型
      强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。
      弱类型语言:如javascript
      java的数据类型分为两大类:基本类型、应用类型

      什么是字节:
      位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数
      字节(byte):是计算机 数据处理 的基本单位,用B表示
      1B(字节) = 8 bit(位)
      字符:是指计算机中使用的字母、数字、字和符号
      1bit表示1位,1Byte表示1个字节,1B=8b,1Kb =1024B
    5、数据类型问题记录
    (1)整数拓展:进制问题 - 二进制(0b开头) 十进制  八进制(0开头) 十六进制(0x开头)

    int i = 10;
    int i2 = 010;  // 八进制, 为8
    int i3 = 0x10; // 十六进制,为16

    (2)浮点数拓展:银行业务,浮点数计算怎么表示
      浮点数的加减乘除会存在问题,因为浮点数是有限的离散的,而有很多数据是无限的,浮点数都会存在舍入误差,它是接近但不等于
      最好完全不使用浮点数进行比较。
      需要使用java内置的类BigDecimal去进行浮点数的计算
    (3)字符可以强制转换为数字。
      原因:所有的字符本质还是数字
      编码问题  -  Unicode编码表(97 = a)-  2字节  - 65536


    6、数据类型转换
      强制转换:(类型)变量名   -   低  -> 高
      自动转换:高  ->  低
    注意:
    (1)不能对布尔值进行转换
    (2)不能把对象类型转为不相干的类型
    (3)在把高容量转为低容量的时候,是强制转换;把低容量转为高容量的时候,是自动转换
    (4)转换的时候可能存在内存溢出,或者精度丢失问题
    注意:
    (1)操作比较大的数的时候,注意溢出问题(JDK7新特性,数字之间可以用下划线_分割)


    7、字符串连接符的一个小细节问题
    比如:a=10,b=20
    那么:'' + a + b = '1020',但是:a + b + '' = '30'

    8、包的本质就是文件夹
    为了更好的组织类,Java提供了包机制,用于区别类名的命名空间
    一般利用公司域名倒置作为包名:com.modb.user
    为了使用包里的成员,需要先使用import语句导入该包

  • 相关阅读:
    超宽带技术的定位原理(转载)
    今日学习——2019年4月8日
    解答室内定位技术新方向:蓝牙AoA定位,值得了解 ——概念了解
    LED室内定位算法:RSS,TOA,AOA,TDOA(转载)
    关于值类型、引用类型以及“栈”跟“堆”的关系——转载自菜鸟教程
    华为liteos了解(一)
    物联网的概念
    c语言——字符串
    指针的操作 p*++
    在完成端口中使用GetAcceptExSockaddrs
  • 原文地址:https://www.cnblogs.com/goloving/p/14772655.html
Copyright © 2011-2022 走看看