java学习笔记(从搭建环境到入门java)

这是我第三次学java了,第一次是课堂上,当时贪玩,没有怎么学。第二次在学长的指导下学习的,这一次主要是慕课网、极客学院的视频加书籍《java从入门到精通》自学的。

由于java博大精深,由于时间紧张,我只学习了很基础的部分,并且对java的精华理解也不够深刻,所以只写了大概,没有详细的阐述,有时间我会慢慢完善。

因为我得马上转战Android,这个学期任务太重了,大家一起加油!


一、搭建环境

如果是windows系统依次装jdk、eclipse for java。并且需要设置系统变量,至于怎么配置,详细可以百度,csdn也有很多手把手教你搭建环境的博客,本文只写重点。用Mac系统同学就方便多了,不用手动设置,直接安装eclipse即可。

我的Mac装的是eclipse java ee版本的,为了更好的适用于java学习。如果你的是其他版本不支持java的,可以装一个单独的JDT(java development tools)插件。这里我不建议在一个eclipse安装多个开发环境的插件,因为我的就是这样出问题的,然而现在也没找到解决办法。

怎样快速的装插件呢?对于eclipse装插件可help→install new software。除了去官网eclipse.org 点击projects项找我们所需要的插件,我这里推荐这个方法,http://download.eclipse.org/releases/mars (mars可以替换成我们现在正在使用的eclipse版本代号,常用的有Mars、Luna、kepler、juno,分别对应4.5-4.2的版本)。这里我需要安装java插件,搜索框输入java,找到java development tools勾选安装即可,此步骤需要耐心等待。

*还有另一种方法:help→eclipse marketplace




二、基本语法的注意项目

1)定义常量:final char SEX = '男';    //常量的变量名需要大写,用char类型的字符需要用单引号,当然数字除外,这是直接定义ASCII值

2)比较a++与++a。

例1:运行结果为:a:6  b:6

int a=5;
int b=++a;   //让a先执行自增,然后将值赋给变量b
System.out.println("a:"+a);
System.out.println("b:"+b);

例2:运行结果为:a:6  b:5

int a=5;
int b=a++;   //将a的值赋给变量b,然后再执行自增
System.out.println("a:"+a);
System.out.println("b:"+b);

3)java 支持的常用赋值运算符,如下表所示:


4)逻辑运算符主要用于进行逻辑运算。Java 中常用的逻辑运算符如下表所示:


5)条件运算符( ? : )也称为 “三元运算符”。
语法形式:布尔表达式 ? 表达式1 :表达式2
运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值

eg:运行结果为: 考试成绩如何:及格

int score=68;
String mark = (score >= 60)?"及格":"不及格";
System.out.println("考试成绩如何:"+mark);


6)表达式( 11+ 3* 8 ) / 4 % 3 的结果是(  2  )

答:第一步:计算3*8,结果为24;第二步:计算11+3*8,结果为35;第三步:计算(11 + 3 * 8) / 4,结果为8;第四步:计算(11 + 3 * 8) / 4 % 3,结果为2

/表示除法,用35去除4会默认认为是int类型的所以会是8,但是如果用35/4.0的话那么结果就是8.75


7)注意if是条件语句而非循环语句。if用来判断条件是否满足,用来跳转分支,而不是用于循环,本人理解为只执行一次。

例:为指定成绩53加分,直到分数大于等于 60 为止,输出加分前和加分后的成绩,并统计加分的次数。

错误示范:

public static void main(String[] args) {
	int score = 53; 
	int count = 0;
	System.out.println("加分前成绩:"+score);
	if(score<60){
	             score++;
	             count++;
	            }
	System.out.println("加分后的成绩:"+score);
	System.out.println("共加了"+count+"次!");
}

正确示范:(用for或者while循环语句)

public static void main(String[] args){
        int score = 53; 
        int count = 0;
        System.out.println("加分前成绩:"+score);
        for(;score<60;score++)
          {
              count++;
          }
        System.out.println("加分后成绩:"+score);
        System.out.println("共加了"+count+"次!");   
    }

8)输入方法:Scanner怎么用?

首先导入import  java.util.scanner;

Scanner input = new Scanner(System.in);

String str = input.nex();

9)定义数组,及数组长度。

int[] arr = new int[5];      

int arr[] = new int[5];

int[] arr = new int[]{1,2,3,4,5};

int[] arr = {1,2,3,4,5};

l = arr.length;   //数组arr[]的长度为5

10)import java.util.Arrarys;

Arrays.toString(数组)    //该方法的作用有当你需要遍历一个数组时可以引用它的方法

Arrays.sort(数组)          //将数组排序

11)foreach遍历数组语法结构: for(元素类型 元素变量:遍历对象){

                                                                                                                执行代码

                                                                                                            }

import java.util.Arrays;

public class HelloWorld {
    
    public static void main(String[] args) {
        
		// 定义一个整型数组,保存成绩信息
		int[] scores = { 89, 72, 64, 58, 93 };
        
		// 对Arrays类对数组进行排序
		Arrays.sort(scores);
        
		// 使用foreach遍历输出数组中的元素
		for ( int score:scores ) {
			System.out.println(score);
		}
	}
}

12)如何定义java中的方法,并实现调用
public class HelloWorld {
    
    //定义了一个方法名为 print 的方法,实现输出信息功能
    public void print() {
		System.out.println("Hello World");
	}
    
    public static void main(String[] args){
        
        //在 main 方法中调用 print 方法
        HelloWorld test=new HelloWorld();   //<span style="color:#3366ff;">好好理解这里,类与对象的关系。创建对象名为test</span>
        test.print();                       //<span style="color:#3366ff;">好好理解这里,对象调用方法。</span>
    }
}

13)在java中为什么输出结果是数字但是还要.toString?

答:toString 是将其他数据类型转换为String类型的一个方法。
在用System.out.println()时,默认调用toString方法。
例如:
int a=8;
System.out.println(a)
默认是:System.out.println(a.toString);


14)

import java.util.Arrays;

public class HelloWorld {
    public static void main(String[] args) {
    	HelloWorld hello = new HelloWorld();
	int[] scores={79,52,98,81};
        
	//调用方法,传入成绩数组,并获取成绩的个数
	hello.sort(scores);
        int count = scores.length;
	System.out.println("共有"+count+"个成绩信息!");
	}
    
	/*
	 * 功能:将考试成绩排序并输出,返回成绩的个数
	 * 定义一个包含整型数组参数的方法,传入成绩数组
	 * 使用Arrays类对成绩数组进行排序并输出
	 * 方法执行后返回数组中元素的个数
	 */
	public int sort(int[] scores){
		Arrays.sort(scores);
		System.out.println(Arrays.toString(scores));
		
        //返回数组中元素的个数
        return scores.length;
	}
}

15)Math.random()的用法。


public class HelloWorld {
    public static void main(String[] args) {
        
         // 创建对象,对象名为hello
    	HelloWorld hello = new HelloWorld();
        
        // 调用方法并将返回值保存在变量中
		int[] nums = hello.getArray(8);
        
        // 将数组转换为字符串并输出
		System.out.println(Arrays.toString(nums)); 
	}

	/*
	 * 功能:创建指定长度的int型数组,并生成100以内随机数为数组中的每个元素赋值
	 * 定义一个带参带返回值的方法,通过参数传入数组的长度,返回赋值后的数组
	 */
	public int[] getArray(int length) {
        // 定义指定长度的整型数组
		int[] nums = new int[length];
        
        // 循环遍历数组赋值
		for (int i=0;i<nums.length;i++) {
            
			// 产生一个100以内的随机数,并赋值给数组的每个成员
		nums[i] = (int)(Math.random()*100);
        
		}
		return nums; // 返回赋值后的数组
	}
}

16)如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
在普通成员方法中,则可以直接访问同类的非静态变量和静态变量。

静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。


17)类的构造方法:构造方法名称要与本类名相同。


18)定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象,即:内部类 对象名 = 外部类对象.new 内部类( );

如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字。

//外部类HelloWorld
public class HelloWorld{
    
    //外部类的私有属性name
    private String name = "imooc";
    
    //外部类的成员属性
    int age = 20;
    
	//成员内部类Inner
	public class Inner {
		String name = "爱慕课";
        //内部类中的方法
		public void show() { 
			System.out.println("外部类中的name:" +HelloWorld.this.name);     //<span style="color:#3366ff;">this关键词</span>
			System.out.println("内部类中的name:" +name);
			System.out.println("外部类中的age:" + age);
		}
	}
    
	//测试成员内部类
	public static void main(String[] args) {
        
        //创建外部类的对象
	        HelloWorld o = new HelloWorld (); 
        
        //创建内部类的对象
		Inner inn = o.new Inner();
        
        //调用内部类对象的show方法
		inn.show();
	}
}


19) 在静态类方法中不可以使用this关键字。在静态类方法中不可以直接调用非静态方法。


//外部类
public class HelloWorld {
    
    // 外部类中的静态变量score
    private static int score = 84;
    
    // 创建静态内部类
	public static class SInner {
        // 内部类中的变量score
        int score = 91;
        
		public void show() {
			System.out.println("访问外部类中的score:" + HelloWorld.score);
			System.out.println("访问内部类中的score:" + score);
		}
	}

	// 测试静态内部类
	public static void main(String[] args) {
	// 直接创建内部类的对象
        SInner si = new SInner();
        
        // 调用show方法
	si.show();
	}
}

20)instanceof

f(animal instanceof Dog){
Dog dog=(Dog)animal;    /*强制转换*/

} else{输出提示}
if(animal instanceof Cat){
Cat cat=(Cat)animal;       /*强制转换*/

} else{输出提示}


21)多态。引用的多态。方法的多态。
两个类有继承关系才能用多态


22)接口。


23)匿名内部类。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值