数组:
栈内存
在方法中定义的一些基本类型的变量和对象的引用变量都在方法的栈内存中分配,当在一段代码中定义一个变量时,java就在栈内存中为这个变量分配内存空间,当超出变量的作用域后,java会自动释放掉为该变量所分配的内存空间。
堆内存
堆内存用来存放由new运算符创建的对象和数组,在堆中分配的内存,由java虚拟机的自动垃圾回收器来管理。在堆中创建了一个数组或对象后,同时还在栈内存中定义一个特殊的变量。让栈内存中的这个变量的取值等于数组或者对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量,引用变量实际上保存的是数组或对象在堆内存中的地址(也称为对象的句柄),以后就可以在程序中使用栈的引用变量来访问堆中的数组或对象
// [1,1,1,1,1]
相同类型的多个对象,
引用类型
所有的类
所有的接口
所有的数组
int[] ints = new int[3];
new:指的是在内存空间重新开辟一块区域
String s = "sdfgdsfgsd";
String s = new String("sdfgdsfgsd");
包装类:
JAVA是一种面向对象语言,java中的类把方法与数据连接在一起,构成了自包含式的处理单元。但在JAVA中不能定义基本类型(primitive type)对象,为了能将基本类型视为对象进行处理,并能连接相关的方法,java为每个基本类型都提供了包装类,如int型数值的包装类integer,boolean型数值的包装类boolean等,这样便可以把这些基本类型转换为对象来处理了。下面将介绍JAVA中提供的各种包装类。
Integer.parseInt();
byte---Byte
short---Short
int---Integer
long---Long
float---Float
double---Double
boolean---Boolean
char---Character
字符串之间的equals
String str = " a new world a new start ";
返回整个字符串的长度
System.out.println(str.length());
去掉字符串两边的空格
System.out.println(str.trim());
取出字符串中指定索引位置的字符
System.out.println(str.charAt(index));
判断一个字符串是否包含另一个字符串
System.out.println(str.contains(s));
判断某个字符串是否以某一个字符串开头
System.out.println(str.startsWith(prefix));
判断某个字符串是否以某一个字符串结尾
System.out.println(str.endsWith(prefix));
替换字符串中指定的字符或字符串
System.out.println(str.replace(oldChar, newChar));
用**分隔字符
String[] strs = str.split(regex);
将字符串转换成大写
System.out.println(str.toUpperCase());
将字符串转换成小写
System.out.println(str.toLowerCase());
子字符串在字符串中第一次出现的位置
System.out.println(str.indexOf(str));
子字符串在字符串中最后一次出现的位置
System.out.println(str.lastIndexOf(str));
截取字符串包含索引为*(数字)的字符
System.out.println(str.substring(*));
从第一个数字开始截取, 直到第二个数字, 但是不包含第二个数字的位置的字符
System.out.println(str.substring(a, b));
练习
用for和if循环打印空心正方形
以长宽为5的正方形为例
思路:当行数i为0和4时打印*,其余打印空格;
当列数j为0和4时打印*,其余打印空格即可。
用for循环打印一个空心菱形
思路:与空心方形类似