码迷,mamicode.com
首页 > 其他好文 > 详细

数据类型

时间:2020-12-03 11:39:48      阅读:3      评论:0      收藏:0      [点我收藏+]

标签:java基础   span   content   turn   强制转换   结果   学java   arrays   不能   

1.计算机基础

  bit,即0或1

  byte字节,8位作为?个字节,字节是处理数据的基本单位

  1 byte = 8bits

  1KB = 1024 bytes

2.八种基本数据类型

  byte: 8位,最?127,最?-128,节省空间,占?int类型的四分之?,默认 0
  short: 16位,最?-32768,最?32767,int类型的?分之?,默认是0
  int: 32位,最?-2147483648,最? 2147483647,整数默认是int类型,默认是0
  long: 64位,最?-9223372036854774808,最?9223372036854774807,默认是0L,
  float: 浮点, 单精度32位, 默认0.0f
  double: 双精度64位, 浮点数默认位double类型,默认是0.0
  boolean: 1位,true或者false,默认是false
  char: 16位的 unicode字符,即两个字节表示?个字符 最?是 \u0000 即0,做? \ufff 即65535 例? char demo = ‘A‘
  类型转换 double > float > long > int > short > byte
    小转大可以直接转换,从大到小,需要强制转换,会有精度丢失。
  引用数据类型:Class创建的对象 或者 数组都是引?数据类型
    String :字符串对象,也是引??种数据结构,?来存储同?类型之的集合数据类型
3.数组
  数组:?种数据结构,?来存储同?类型之的集合,通过?个整形下标可以访问数组中的每?个值, 从0开始计算,记住,特别重要。内存中存储相同数据类型的连续的空间
使用数组:
  声明数组变量时,需要指出数据类型和数组变量的名字
//声明数组,但没有初始化
int [] numbers;

//使?new运算符创建数组
int [] numbers2 = new int[100];

new int[n]将会创建?个?度为n的数组

//可以使?这两种形式声明数组,推荐第?种
int [] numbers;
int numbers2 [];

数组初始化和匿名数组

//初始化,数组的??就是初始值的个数
int[] numbers = { 1,2,3,4,5,6 };
//匿名数组
new int[] { 1,2,3,4,5,6 };

注意:所有元素都初始化为0,boolean数组的元素会初始化为false。?旦创建了数组,就不能改变它的??,数组需要初始化才可以操作,不能索引越界。

一维数组

int [] numbers = {1,2,3};
String[] str=new String[2];
String[] str= {"apple", "xdclass", "cat", "dog"};

多维数组

//创建并初始化
int [][] numbers = {[1,2,3],[4,5,6],[7,8,9]}
//创建
int [][] numbers2 = new int[3][3];

数组??有很多?法,是?带的?法和属性

  获取数组?度的属性名称 length,使?就是 数组名.length

5.java内存空间堆栈

  数据类型

    基本数据类型: byte,short, int,long, float,doble,boolean,char

    引?数据类型:即除了基本的变量类型之外的所有类型

  java在内存中堆(Heap)、栈(Stack)两块存储空间

  数据类型在内存中使用

    基本的变量类型只有?块存储空间(分配在stack中),

      传递的时候直接是值传递,

      对数据进?操作,不影响原先的值

    引?类型有两块存储空间(?块在stack中,?块在heap中)

      ?个对象在内存中会请求?块空间来保存数据,访问对象的时候不会直接是访问对象在 内存中的数据,?是通过引?去访问。

    引用:也是?种数据类型,保存的是内存的地址,引?是存储在 stack栈空间??

    不同的引用可以指向同一个对象,一个对象可以有多个引用

//
int a=1;
boolean flag=false;
// s在栈中   new Student();在堆中
Student s = new Student();
Person p = new Person();

引用后修正结果

  因为字符串、数组或者对象是引?类型,所以修改后正在的数据都会发?变化

String a = "学习java";
 String b = "l love java";
 System.out.println(a);
 System.out.println(b);
 b = a ;
 System.out.println(a);
 System.out.println(b);
 a = "现在在学java基础";
 System.out.println(a);
 System.out.println(b);

数据拷贝

int [] a = {1,2,3};
 int [] b = a;
 System.out.println(Arrays.toString(a));
 System.out.println(Arrays.toString(b));
 b[0] = 0;
 System.out.println(Arrays.toString(a));
 System.out.println(Arrays.toString(b));

数组是引?类型,所有的引?都是指向这个值的, 也就是这个对象

变量类型

  类变量(静态变量):

   使?static声明的变量,可以直接使? 类名.变量名访问
   ?个类不管创建了多少个对象,类只拥有类变量的?份拷?,数值默认值是0,布尔型默认值 是false,引?类型默认值是null
    
   ?命周期:在第?次被访问时创建,在程序结束时销毁

   声明为public类型,?般这样声明 public static final

   存储在?法区,和堆栈不?样的?个空间
public class Student{
 public static final String PREFIX = "我是叫";
}

实例变量(属性)

  需要使?对象.变量名才可以访问

  对象被实例化之后,实例变量的值就跟着确定,可以是赋值,也可以是默认值

  ?命周期:在对象创建的时候创建,在对象被销毁的时候销毁

  访问修饰符可以修饰实例变量,?般是私有的,private修饰,然后通过?法来进?查看或者修改

public class Student {
 //介绍前缀
 public static final String PREFIX = "我是叫";

 //年龄
 private int age;

 //姓名
 private String name;

 public int getAge() {
 return age;
 }
 public void setAge(int age) {
 this.age = age;
 }
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
}

局部变量

  ?法中的变量

  声明在?法、构造?法、语句块、形式参数等

  ?命周期:当它们执?完成后,变量将会被销毁

  访问修饰符不能?于局部变量

  局部变量没有初始值,必须初始化后才可以被使?

public class Student {
 //介绍前缀
 public static final String PREFIX = "我是叫";

 //年龄
 private int age;

 //姓名
 private String name;

 public int getAge() {
 return age;
 }
 public void setAge(int age) {
 this.age = age;
 }
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }

 //?我介绍?法
 public String introduce(){
 String content = PREFIX + name + ",年龄是" + age;
 return content;
 }
}

数据类型

标签:java基础   span   content   turn   强制转换   结果   学java   arrays   不能   

原文地址:https://www.cnblogs.com/zrh-960906/p/14053285.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!