标签: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