2. Java 基本语法

2018-12-15  本文已影响0人  Lynn_4f26

1. 变量/数据类型[1]

1.1. 基本数据类型

1.2. 定义变量

1.3. 初始化变量

1.4.变量赋值

1.5. 基本数据类型转换


2. 运算符

2.1. 算术运算符

int a=56;
int b=a++;//b=a;a=a+1;
System.out.println(b);//输出56
System.out.println(a);//输出57

int a=56;
int b=++a;//a=a+1; b=a;
System.out.println(b);//输出57
System.out.println(a)=//输出57

2.2. 关系运算符

2.3. 逻辑运算符


3. 三大流程控制

//1)单分支
if(条件表达式){
    语句;
}

//2)双分支
if(条件表达式){
    语句;
}else{
    语句;
}

//3)多分支
if(条件表达式){
    语句;
}else if(条件表达式){
    语句;
}else if(条件表达式){
    语句;
}else{
    语句;
}//找到一个入口后,即使下面的条件符合,也不会再进入

b.switsch(条件表达式){
case 常量1:
    语句1;
    break;
case常量2:
    语句2;
    break;
...
case常量n:
    语句n;
    break;
default:
    语句;
    break;
}
//条件表达式数据类型,应和case后的常量类型一致
//Switch中可用的数据类型:byte,short,int,char,enum
//for循环
for(循环初值; 循环条件; 步长){
        语句; //循环体
}

//while循环
while(循环条件){
        语句;//循环体
}

//do while循环
Do{
        语句;//循环体
}while(条件);

4. 数组

一维数组

int[] arr={1,3,6,8,10};
for(int i=0; i<arr.length; i++)
    {
        System.out.print(arr[i]);
    }
//1. 程序员用法

//数组的定义
int a[]=new int[5];//数据类型 数组名[] =new 数据类型[大小];
//数组的引用
a[2];//数组名[下标]  比如:使用a数组的第三个数


//2. 没事找事用法

//第一步:先声明数组
int[] a;//数据类型 数据名[];  或 数据类型[] 数组名;
//第二步:创建数组
A=new int[5]//数组名=new 数据类型[大小];
//第三步:数组引用
a[2];


//3. 古板用法

//第一步:初始化数组
Int a={2,5,6,89,30};//数据类型 数组名[]={元素值, 元素值,...}  相当于:int a[]=new int[5]; a[0]=2;a[1]=5...
//第二步:数组的引用
a[2];

多维数组


5.排序,查找

比较字符串内容是否相等时, 用squals, 不要用==

排序是将一群数据,依照指定的顺序进行排列的过程

内部排序

将需要处理的所有数据都加载到内部存储器中进行排序

交换式排序法

运用数据值比较后,依照判断规则对数据位置进行交换

冒泡排序法(Bubble Sorting)
class Bubble{
    //排序方法
    public void sort(int arr[])
    {
        int temp=0;
        //排序
        //外层循环,决定走几趟
        for(int i=0; i<arr.length-1; i++){
            //内层循环,开始逐个比较, 如果发现前一个数大于后一个数,则交换
            for(int j=0; j<arr.length-1-i;j+1)
            {
                if(arr[j]>arr[j+1])
                {
                    //换位
                    temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
    }
}


快速排序法(Quicksort)

选择式排序法

选择排序法(Selection Sort)
//选择排序法(Selection Sort)
class Select1{
    //排序方法
    public void sort(int arr[])
    {
        int temp=0;
        for(int i=0; i<arr.length-1; i++)
        {
            //假设第一个数最小
            int min=arr[i];
            //记录最小数的下标
            int minIndex=i;
            
            for(int j=i+1; j<arr.length; j++)
            {
                if(min>arr[j])
                {
                    //修改最小
                    min=arr[j];
                    minIndex=j;
                }
            }
            temp=arr[i];
            arr[i]=arr[minIndex];
            arr[minIndex]=temp;
        }
    }
}

class Select2{
    public void sort(int arr[]){
        int temp=0;
        for(int i=0; i<arr.length-1; i++)
        {
            
            for(int j=i+1; j<arr.length; j++)
            {
                if(arr[i]>arr[j])//假设arr[i]最小
                {
                    temp=arr[i];
            arr[i]=arr[j];
            arr[j]=temp;
                }
            }
            
        }
    }
}
堆排序法(Heap Sort)

插入排序法

属于内部排序法,是对与欲排序的元素以插入的方式找寻该元素的适当位置,已达到排序的目的

插入排序法(Insertion Sort)
//插入排序法
class Insertion{
    //排序方法
    public void sort(int[] arr)
    {
        for(int i=1; i<arr.length; i++)
        {
            int insertVal=arr[i];
            int index=i-1;
            //insertVal准备和前一个数比较
            while(index>=0&&insertVal<arr[index])
            {
                //将arr[index]向后移
                arr[index+1]=arr[index];
                //index继续向前走
                index--;
            }
            arr[index+1]=insertVal;
        }
    }
}
谢尔排序法(Shell Sort)
二叉树排序法(Binary-tree Sort)

6.2 外部排序###

数据量过大,无法全部加载到内存中,需要借助外部存储进行排序

合并排序法

直接合并排序法


6.3 查找

package com.one_dimensional_array;

public class Demo5_3 {

    public static void main(String[] args) {
        int arr[]= {2,5,7,12,25};
        BinaryFind bf=new BinaryFind();
        bf.find(0, arr.length-1, 12, arr);
    }

}


//二分
class BinaryFind{
    public void find(int leftIndex,int rightIndex,  int val, int[] arr)
    {
        //首先找中间的数
        int midIndex=(rightIndex+leftIndex)/2;
        int midVal=arr[midIndex];
        
        if(rightIndex>=leftIndex) {
        //如果要找的数比midVal小
        if(midVal>val)
        {
            //在arr左边数中找
            find(leftIndex, midIndex-1, val, arr);
        }else if(midVal<val)
        {
            //在arr的右边数中找
            find(midIndex+1, rightIndex,val,arr);
        }else if(midVal==val)
        {
            System.out.println("找到下标"+midIndex);
        }
        }
    }
}

7. 集合框架

7.1 集合类

7.2 常用方法

package com.one_dimensional_array;

import java.util.*;
public class Demo_Test {

    public static void main(String[] args) {
        ArrayList a1=new ArrayList();
        
        int a=0;
        int b=1;
        int c=2;
        
        //添加
        a1.add(a);
        a1.add(b);
        a1.add(c);
        System.out.println(a1);
        
        //删除
        a1.remove(a);
        System.out.println("====删除a====");
        
        //遍历找到
        for(int i=0;i<a1.size();i++)
        {
            System.out.println(a1.get(i));
        }
    }
}

/*结果:
[0, 1, 2]
====删除a====
1
2*/
public static void main(String[] args) {
    LinkedList l1=new LinkedList();
    Emp emp1=new Emp("sa01","aa",1.2f);
    Emp emp2=new Emp("sa02","bb",1.2f);
            
    //把emp1加在链表的最后面,emp1加在最前
    l1.addLast(emp1);
    l1.addFirst(emp2);
    for(int i=0;i<l1.size();i++)
    {
        System.out.println(((Emp)l1.get(i)).getName());
    }
}

class Emp{
...//假设已写好( ̄▽ ̄)"
}
public static void main(String[] args) {
    Vector vv=new Vector();
    vv.add(emp1);
        
    for(int i=0;i<vv.size();i++)
    {
        Emp emp=(Emp)vv.get(i);
    }
}

class Emp{
...//假设已写好( ̄▽ ̄)"
}
public static void main(String[] args) {
    Emp emp1=new Emp("sa01","aa",1.2f);//编号,姓名,工资
    Emp emp2=new Emp("sa02","bb",1.2f);
    Emp emp3=new Emp("sa03","cc",1.2f);
    
    //创建一个HashMap对象
    HashMap hm=new HashMap();
        
    //将emp放入hm
    hm.put("sa01",emp1);
    hm.put("sa02", emp2);
    //hm.put("sa02",emp3);//emp3自动覆盖原先的key"sa02"中的value
    hm.put("sa03", emp3);
        
    //如果你要查找编号是sa01
        
    if(hm.containsKey("sa02"))
    {   
        System.out.println("有该员工");
        //如何取出,键k<-->值v
        Emp emp=(Emp)hm.get("sa02");
        System.out.println("名字:"+emp.getName());
        }
        else 
        {
            System.out.println("查无此人");
        }
        
        //遍历HashMap中所有的key和value
        //Iterator迭代
        Iterator it=hm.keySet().iterator();
        //hasNext返回一个boolean
        while(it.hasNext())
        {
            //取出key
            String key=it.next().toString();
            //通过key取出value
            Emp emp=(Emp)hm.get(key);
            System.out.println("名字"+emp.getName());
            System.out.println("工资"+emp.getSal());
        }
}

class Emp{
...//假设已写好( ̄▽ ̄)"
}

7.3 比较

7.4 总结


8. 泛型




9. 异常



import java.io.*;
import java.net.*;
public class Demo9_1 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        //检查异常1.打开文件
        FileReader fr=new FileReader("d:\\aa.text");
        
        //2.连接一个192.168.12.12 ip的端口号4567
        Socket s=new Socket("192.168.12.12",78);
        //运行异常1. 0被除
        int a=4/0;
        
        //2.数组越界
        int arr[]= {1,2,3};
        System.out.println(arr[234]);
    }

}

//直接处理
package com.one_dimensional_array;
import java.io.*;
public class Demo9_1 {

    public static void main(String[] args) {
    
        //检查异常1.打开文件
        FileReader fr=null;
        try {
            System.out.println("go on");
            fr=new FileReader("d:\\aa.txt");
        }catch(Exception e) {
            //把异常的信息输出,利于排错
            System.out.println("111");
            e.printStackTrace(); 
            //System.exit(-1);finally将无机会执行
            //处理 
        }finally{
            System.out.println("进入finally");
            //这个语句块,不管有没有异常,都会被执行
            //把需要关闭的资源,如[文件、链接、内存...]
            if(fr!=null)
            {
                try {
                    fr.close();
                }catch(Exception e) {
                    e.printStackTrace();
                }
            }
            
        System.out.println("aa");
        }
//抛出异常
package com.one_dimensional_array;
import java.io.*;
public class Demo9_2 {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        Father father=new Father();
        father.test1();
    }
}

class Father{
    private Son son=null;
    public Father() {
        son=new Son();
    }
    public void test1() throws Exception {
        System.out.println("1");
        son.test2();
/*      try {
            son.test2();
        }catch(Exception e) {
            System.out.println("父亲");
            e.printStackTrace();
        }*/
    }
}

class Son{
    public void test2() throws Exception{
        FileReader fr=null;
        fr=new FileReader("d:\\aa.txt");
    }
}

  1. 持续更新中~笔记记录自韩顺平Java网课

上一篇下一篇

猜你喜欢

热点阅读