小->大(小类型自动提升为大类型)
int x=2; double y=1.0; System.out.print(x*y);//2.0
大->小(强制类型转换,可能会丢失精度)
double y=1.1; System.out.print((int)y);//1
String->其他数据类型
//String->int String str="1"; int x=Integer.parseInt(str); int y=Integer.valueOf(str); System.out.println(x);//1 System.out.println(y);//1 //String->char[] String str="hello world"; char []arr=new char[str.length()]; for(int i=0;i运算符 优先级运算符分类结合顺序运算符 由 高
到
低
分隔符左结合. [] ( ) ; ,一元运算符右结合! ++ -- - ~ 算术运算符
移位运算符
左结合* / % + - << >> >>>关系运算符左结合< > <= >= instanceof(Java 特有) = = != 逻辑运算符左结合! && || ~ & | ^ 三目运算符右结合布尔表达式?表达式1:表达式2 赋值运算符右结合= *= /= %= += -= <<= >>= >>>= &= *= |= 1、左移(<<)
package com.xcy; public class Test { public static void main(String[] args) { System.out.println(5<<2);//运行结果是20 } }0000 0000 0000 0000 0000 0000 0000 0101 然后左移2位后,低位补0:
0000 0000 0000 0000 0000 0000 0001 0100 换算成10进制为20
2、右移(>>)
System.out.println(5>>2);//运行结果是10000 0000 0000 0000 0000 0000 0000 0101 然后右移2位,高位补0:
0000 0000 0000 0000 0000 0000 0000 0001
3、无符号右移(>>>)
package com.xcy; public class Test { public static void main(String[] args) { System.out.println(5>>3);//结果是0 System.out.println(-5>>3);//结果是-1 System.out.println(-5>>>3);//结果是536870911 } }4、位与(&)
package com.xcy; public class Test { public static void main(String[] args) { System.out.println(5 & 3);//结果为1 } }5、位或(|)
package com.xcy; public class Test { public static void main(String[] args) { System.out.println(5 | 3);//结果为7 } }6、位异或(^)
package com.xcy; public class Test { public static void main(String[] args) { System.out.println(5 ^ 3);//结果为6 } }7、位非(~)
package com.xcy; public class Test { public static void main(String[] args) { System.out.println(~5);//结果为-6 } }static变量static变量也称为静态变量,静态变量和非静态变量的区别:
静态变量被所有对象共享,在内存中只有一个副本,在类初次加载的时候才会初始化
非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响
static块static成员变量初始化顺序按照定义的顺序来进行初始化
构造方法用于对象的初始化。静态初始化块,用于类的初始化 *** 作。
在静态初始化块中不能直接访问非staic成员。
static块的作用
静态初始化块的作用就是:提升程序性能。
命名规范类-源文件。大驼峰,第一个单词字母大写,多个单词都是首字母大写
包名-项目名:全小写,多个单词用_分隔;
变量:小驼峰-第一个单词全小写,第二个单词开始首字母大写
final 修饰的变量(常量)必须在声明时赋值int a=10;
final a;
存放在对空间中
方法 基本语法:public static 返回类型 方法名称([参数类型 变量, ......]) { 方法体代码; [return [返回值];] }注意:1、如果一个方法用void型,可以用return提前结束调用
2、java方法的参数传递只有值传递,
修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
方法的重载
返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的 *** 作,但没有返回值。在这种情况下,returnValueType 是关键字void。
方法名:是方法的实际名称。方法名和参数表共同构成方法签名。
参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
方法体:方法体包含具体的语句,定义该方法的功能如 int x=0; x=a+b;。定义::在同一个类中,定义看若干个方法名称相同,参数列表不同(参数类型或个数),与返回值无关,这样的一组方法称为重载方法。
注意事项:重载方法参数必须不同
重载只与方法名与参数类型相关与返回值无关
重载与具体的变量标识符无关
方法的递归使用场景:
1、个大问题可以拆分为多个子问题的解。
2、拆分后的子问题和原问题除了数据大小不一样,解决思路完全相同。
3、存在递归的终止条件
注意:写递归代码一定要注意方法的语义(方法的功能),不能陷入递归内部。当做调用别人写好的代码。
例:
public class TestDemo { public static void main(String[] args) { System.out.println(sum(100)); } public static int sum(int num) { if(num == 1) return 1; return num + sum(--num); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)