Java学习笔记(2015.7.6~10)Java学习笔记(2015.7.6~10)

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();