[core java]C3 Fundamental Programing Structure

 c3主要讲了基本类型的使用方法,包括基本类型 String 输入输出 数组

目录

基本类型:

1.基本类型

2.基本类型的精度问题

String

string的immutable特性

StringBuffer和StringBuilder

 Array

Array的复制

二维数组的遍历

扫描二维码关注公众号,回复: 3483790 查看本文章

二维数组的逻辑模型


基本类型:

1.基本类型

java中分为内置类型(包括基本类型)和jar包中的类(比如String)

在java中 基本类型的字节数不因为操作系统的位数而变化,增加了java语言的可扩展性

相反,在C中32bit和64bit的系统 int类型的字节数分别为2bytes和4bytes,其他类型也一样

同时,java中不存在unsigned类型

Math库中的函数只对基本类型进行操作

2.基本类型的精度问题

基本类型在内存当中以二进制存储,float 和 double 类型以 a*b^c形式存储,a,b,c分别用不用的bit表示

当精度有损时,要进行cast转换才能不产生complie error

比如最典型的double问题

float f = 2.0;(c error)

float f = 2.0f;

float f = (float)2.0;

下图实线表示 转换无损 虚线为转换有损

注意int -> float, long ->double均为有损转换

基本类型的加法:

String

string的immutable特性

Stirng的不可变性是设计者从字符串共享的角度出发的结果

ep:

String a = "Iphone7";

String b =  a;

String a = a.substring(0.a.length())+ "8";

如果在原地修改的话,指向String的所有引用(a,b)都会指向修改后的对象,这并不是我们想要做的结果

StringBuffer和StringBuilder

StringBuilder是StringBuffer的进化版本,效率更高但不具有线程安全性

StringBuffer支持多线程

  1. String a = ""和 String b = null的区别
  2. Code Units 和 Code Points
  3. StringBuffer和StringBuilder

 Array

Array的复制

int[] array1 = {1,2,3,4,5};

int[] array2 = array1;//1,2指向同一个数组

int[] array2 = Arrays.copyOf(array1,array1.length);//1,2分别指向两个数组

int[] array1 = Arrays.copyOf(array1,array1.length<<1)//该方法也可以用于增加原数组的长度

Array的默认初始值

基础类型(boolen)以外,0

boolen,false

对象,null

二维数组的遍历

for(double[] row:a)

    for(double value:row)

二维数组的逻辑模型

int[] a = new int[10];

int* a = new int[10];//C++

int[][] array = new array[10][10];

int** array = new int*[10];//C++ 

猜你喜欢

转载自blog.csdn.net/weixin_41985660/article/details/82561794