Java
基础中的基础
一、搭建开发环境:设置path变量 (x:...\bin;) 和 classpath变量 (.;) ,.表示当前目录。
二、第一句话:
public static void main(String args[]) {}
main()方法,即程序入口。
三、注释
//单行注释
/.../多行注释
/**...*/文档注释
变量的基本类型
一、Java的基本数据类型有4类8种
1.整数型:byte,short,int,long
2.浮点型:float,double
3.布尔型:boolean
4.字符型:char
二、byte的范围为(-128到127),int大概为正负2E10,long接近正负1E20,double范围最大,float一般也够用了。boolean只能是true或false。
三、变量的作用域只在申明了变量的那个大括号里,即见光死。
四、'\n' 换行符,'\t' 制表符
五、数据类型的自动转换,当混合数据类型做运算时,总是向数值范围大的类型自动转换。
六、强转,强制转换数据类型,在表达式前加上(数据类型),有可能会丢失精度。
局部变量 和 成员变量 的相爱相杀
局部变量 :在方法内部定义的变量称为局部变量,它只能在该方法内部使用,出了该方法就没人认识了。局部变量的修饰符只能有final,其它都是违法的。
成员变量 :在类内部定义的变量是为成员变量。
系统不会自动为局部变量赋初值,但对于成员变量,系统会自动赋初值。基本类型的值为0,复合类型的值为null。
局部变量的生存周期与方法的执行期相同。当方法执行到定义局部变量的语句时,局部变量被创建;执行到它所在的作用域的最后一条语句时,局部变量被销毁。类的成员变量,如果是实例成员变量,它和对象的生存期相同。而静态成员变量的生存期是整个程序运行期。
在不同的方法中,可以有同名的局部变量,它们互不干涉。局部变量可以和成员变量同名,且在使用时,局部变量具有更高的优先级。
内存
理解内存就理解了一切!
内存分为4个部分: code segment,data segment,stack,heap。
code segment: 存放代码。
data segment: 存放
static
关键字申明的静态变量和字符串常量。stack: 申明变量时存放指向heap中对象的地址,方法执行完后不知啥时候就被回收了哦。
heap: new出来的对象都搁这里。
一个简单的程序
public class Test { public static void main(String args[]) { int a = 99; int b = 66; System.out.println("a+b=" + (a+b)); } }
选择结构
if语句
if
if (判断条件) { 语句体; }
if (判断条件) { 语句体; } else { 语句体; }
if (判断条件) { 语句体; } else if (判断条件) { 语句体; } else if (判断条件) { 语句体; } ...... else { 语句体; }
switch 语句
switch
switch(x) { case a: 语句体;break; case b: 语句体;break; case c: 语句体;break; ...... default: 语句体; }
一般接收int类型的参数。
举个栗子,利用break做一些奇怪的事:int year=2005;
int month=3;
int day;
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: day=31; break;
case 2: day=28; break;
case 4:
case 6:
case 9:
case 11: day=30; break;
}
循环结构
for循环
for
for(表达式1;表达式2;表达式3) { 语句体 }
while循环
while
while(表达式) { 语句体 }
do while循环
do while 啥都不想,先干了再说
{语句体} while(表达式);
break & continue
break 跳出当前循环,老子不干了
continue 跳过这次循环,继续下一次
获取输入
import java.util.Scanner;
...
Scanner s = new Scanner(System.in);
int a = s.nextInt();//阻塞性语句,等待输入
s.close();//关闭s,释放资源
方法
方法即一段代码的复用,程序员都是懒的,相同的代码不写第二遍^^
类
* 声明类有两种,即 public class 类名称和 class 类名称。 * 使用 public class 声明一个类是,类名称必须与文件名称一致,否则不能编译 * 使用 class 声明类时无需与文件名一致,会生成一个.class文件 * 在一个Java文件中可以有多个class类的定义,但是只能有一个public class定义。 * 类名称必须首字母大写 * 匿名对象,用于只是用一次的对象
new 类名().方法名();
举个栗子:new Student().tell();