持续更新
1 1 8 16
赋值注意
short a = 10; 10为int型。赋值成功。
若常量赋值,只要数值范围不超过,系统默认隐性强转。
int a = 10;
short b = a; 错误(虽数值范围兼容)
若变量赋值,必须数据类型范围兼容,即大 = 小;否则需强制转型。

idea快捷键

psvm 和 sout
//Ctrl+D Ctrl+Y
//Ctrl+Alt+L格式化
//Ctrl+/单行注释 Ctrl+shift+/多行注释
Alt+Insert 创建getset 构造方法等默认方法

方法重载
1、函数名一样,但是参数个数不一样。
2、参数类型不同。
3、参数多类型顺序不同。
注意:与参数名称不同,与返回类型不同都不可重载。

总结:重载的不同,只在于形参的不同
----------------------------------------------------
shift+F6 改一个变量名称,程序中所有此变量名称都会跟着更改。

静态数组初始化,不允许先定义,在赋值。
int[] Array;
Array = {10,20,30}; //错误!
动态是new的那个。

总结:数组在定义是要确定好长度。
------------------------------------------------------
直接打印数组,得到的是数组内存地址哈希值

java内存

栈 (Stack) 存放的是局部变量,方法也在此处执行。

直观上来看是{}里的,方法执行完就会出栈。

堆(Heap) 凡是new出来的都会在这里,有地址,用十六进制表示,heap默认为变量赋初值。且new出来的都会返回一个地址值。

方法区(MethodArea) 存储.class文件,

本地方法栈(NativeMethodArea):操作系统

寄存器(pc Register):CPU相关

java对象怎么赋值 java对象赋值后可以set参数吗_静态方法


arrayA.length; 数组长度

数组名称.fori 从前往后遍历数组元素

数组名称.forr 从后往前遍历数组元素

使用数组作为方法形参的时候,其实是传递的数组名称代表的地址

public static int[] calculate(int a,int b,int c)

{

int[] array = {10,20};

return array;

} //返回值为数组类型 ,返回的其实还是地址值。

面向过程:亲力亲为
面向对象:调包侠。。

面向对象语言的特征:封装性、继承和多态。

在同一个文件夹里的class,使用时不需要import语句

java对象怎么赋值 java对象赋值后可以set参数吗_字符串_02


方法要执行,肯定要进栈。执行完毕立刻要出栈。包括main方法

java对象怎么赋值 java对象赋值后可以set参数吗_字符串_03


java对象怎么赋值 java对象赋值后可以set参数吗_静态方法_04

局部变量没有默认值,使用时需要赋值处理。
成员变量有默认值。
----位置比较----
局部变量是跟着方法走的,在Stack中,所以需要赋值操作。
成员变量跟着类走的,在Heap中生成,自带默认值。
----生命周期----
局部变量:在Stack中生成,方法出栈,变量消失。
成员变量:在Heap中生成,类被垃圾回收机制回收消失。

JAVA的封装: 方法与private(超出本类,不得直接访问)
getset方法间接处理private数据,可以在方法中阻止不合理数据。

boolean型变量male的get方法要命名成isMale() 特例

只要不是基本类型,都是引用类型。

scanner.next(); 从键盘录入字符串
scanner.nextInt() 录入字符串转为int型

匿名对象只能使用一次,在使用必须再次创建一个新的。

ArrayList .add() .get() .size()

直接打印ArrayList定义的对象,可以打印出ArrayList对象中的所有成员

java对象怎么赋值 java对象赋值后可以set参数吗_java对象怎么赋值_05


java对象怎么赋值 java对象赋值后可以set参数吗_字符串_06


基本数据类型 包装类

首字母大写(Integer Character)

自动装箱,自动拆箱。字符串效果上像是char[]型数组,但实际上底层是byte数组,使用byte[]数组对String变量赋值时,byte[]={97,98,99,100}是字符的ASCII码值。

""之内的都会默认为String对象

java对象怎么赋值 java对象赋值后可以set参数吗_静态方法_07


字符串常用方法(注:"字符串"均可换成str1型变量,反之亦然)

“字符串”.equals(str1);

“字符串”.equalsIgnoreCase(str1);

“字符串”.length();

“字符串”.concat(str1);

“字符串”.charAt(数字); 获取数字位索引的字符

“字符串”.indexOf(str1); 查找字符在原字符串中第一次出现的位置。

“字符串”.substring(index);/[begin,end)

“字符串”.toCharArray(); 返回一个char型数组

“字符串”.getBytes(); 返回一个byte型数组

“字符串”.replace(tagert,replacement) 将字符串中的target替换成replacement

“字符串”.split(String regex) 按照参数的规则,将字符串切分成若干部分。

regex为正则表达式,特殊的:.不可以直接放在regex中,要用//.

一旦觉得字符串发生了变动,那一定是创建了新的字符串

一旦使用了static关键字,被修饰成员属于类自身,创建的所有对象共享一对数据。被修饰的成员方法,可以直接由类名调用而无需创建对象。(也可由对象调用,但是使用对象调用时,不能直接的表示这是一个静态方法,在javac编译时,对象.静态方法也会被编译成为类名.成员方法)
【注】在被类中,调用自己的静态方法可以不写自己的类名,编译时会自动写成本类名.静态方法。

静态方法不能直接访问普通成员,原因在于内存中静态方法先被创建,而普通成员变量在之后被创建。

静态方法中不可以使用this,因为this是给对象用的。

java对象怎么赋值 java对象赋值后可以set参数吗_字符串_08


静态代码块

static{}

静态方法总是先于成员方法执行,当第一次使用到本类的时候,静态代码块唯一一次执行,且优先于构造方法。

Arrays类的静态方法toString() 将字符数组变为字符串标准格式。 【,,】 返回类型为String

Arrays类的静态方法sort() 将字符串内容排序,升序,返回类型为void 可以排数字和字母