基础类型和语法
一、变量及其作用范围
java变量可以分为:静态变量、成员变量和局部变量3种。
静态变量指的是在类中用static修饰的变量。====》生命周期由类来决定,当类加载的时候他就生成并初始化。
成员变量是在类中没有用static修饰的变量。====》生命周期由对象来决定,当对象加载的时候他就生成并初始化。
局部变量是定义在方法里的变量、方法的参数或者代码块里定义的变量。====》作用范围用大括号{}来界定,随着方法的调用而生成,随着方法的执行而消失。
?
二、两种大的数据类型
java的变量分为基本数据类型和引用数据类型两种大的数据类型。
?
基本数据类型:byte、short、int、long、float、double、boolean和char。(8种基本数据类型)它们存储的都是数据量比较小的数据,只需要1个或少量几个字节就可以了。因此,这些数据类型的变量的二进制值就直接保存着它们的值。
?
引用数据类型是除了基本数据类型以外的数据类型,它主要用来指向某个对象,有点像C里面的指针,但是没有像指针那么灵活。对象保存的数据一般都比较大,如果传参数、赋值等工作的时候,每次都把数据完全的拷贝一次就会影响到效率。因此java就为所有操作对象的类型定义了一种引用类型的数据。
?
注意:引用数据类型的变量,在作用域上和基本数据类型是一样的,它们也有一定的生存周期,只不过它们的存值特别了一点,是一个内存地址。
?
三、java中的main()方法
main()方法是java程序的执行入口,它是一个定义在类中的、公开的、静态的、无返回值的、参数为一个字符串数组的方法,他的参数args与执行参数一一对应。例如:
public class Main{ //main()方法,程序的入口函数 public static void main(String [] args) { }}?
四、equal和==的区别
equal和==两者均为表示相等的意思,但是他们相等的含义却是有所区别。
==御用在基本数据类型的时候,通过比较他们实际的值来判定是否相同;而用于比较引用类型的时候,则是比较他们两个引用的地址是否相等,也就是是否只想同一个对象。
equal方法是java.lang.Object的方法,也就是所有的java类都会有的方法。它可以被程序员覆盖重写,通过自定义的方法来判定两个对象是否相等,对于字符串java.lang.String类来说,它的equal方法用来比较字符串的字符序列是否完全相等(也就是值是否相等)
例如:
public class EqualTest{public static void main(String[] args) {String a="1234";String b="1234";String c=new String("1234");System.out.println(a==b);System.out.println(a==c);System.out.println(a.equals(c));}}?
执行结果:

?
解析:
第二个为false的原因在于a、c指向的是不同的对象。==运用在基本数据类型的时候,通过比较它们实际的值来判定是否相同;而用于比较引用类型的时候,则是比较两个引用的地址是否相等。也就是是否指向同一个对象。通过new String()来创建的字符串会单独生成一个对象,所以a、c指向的不是同一个对象。
?
重载equal方法的例子如下:
class Student{private String name;private int age;public Student(String name,int age){this.name=name;this.age=age;}public boolean equals(Object obj){Student stu=(Student)obj;return this.name.equals(stu.name)&&this.age==stu.age;}}public class EqualTest02{public static void main(String[] args) {Student stu1=new Student("zhangsan",20);Student stu2=new Student("zhangsan",20);System.out.println(stu1.equals(stu2));}}?
?
结果如下:
?
?
如果把名字后者年龄其中一个改掉的话,就是false;
?
?
五、java的几种循环结果,以及特点。
?
java提供了3种循环结构,即:for、while、do...while语句。它们各自适用不同的情况,其中,for循环适合于能确定循环次数的循环结构。while语句则适合单条件的循环,而do...while语句在执行某段代码之后,再循环的时候更适合一些;
?
下面本别用着三种形式输出1....100:
//forfor(int i=1;i<=100;i++){System.out.println(i);}//whileint i=1;while(i<=100){System.out.println(i);i++;}//do...whileint i=1;do{System.out.println(i++);}while (i<100);?
?
六、java中的三元运算符
?
语法如下:表达式1?表达式2:表达式3
相当于if~else
在问号?之前是一个布尔表达式,它只能返回true或者false,如果表达式1返回的是true则执行表达式2,否则执行表达式3,并返回相应的值。(这样做的好处是使代码更加简洁)
?
下面给一个例子:
public class Max{public static void main(String [] args){int a=5,b=6;String result=null;System.out.println("========三目运算========");result=a>b?"a bigger than b":"b bigger than a";System.out.println(result);System.out.println("========if~else========");if(a>b){System.out.println("a bigger than b");}else{System.out.println("b bigger than a");}}}?
运行结果:

?
每天一点点希望对大家有帮助~