java 基础小认识

笔记整理

一、数组定义使用

package arraytest;

//Java基础之数组

public class L01 {

 

    public staticvoid main(String[] args) {

       Stringname ="111";

       //初始化的三种方式

       //第一种:声明时直接赋值

        String[]names={"one","er"};      //声明一个数组,

       

        int []ages;          //声明一个整形数组

        L01 ll[];            //声明一个对象数组

        String[][]classe={

               {"张三","李四","王五"},//第一个数组元素,班级1

               {"小赵","小王","小韩"}//第二个数组元素,班级2

        };  //二维数组定义

        //第二种数组赋值方式

        ages =new int[10]; 

        ages[0]=10;//对0号元素赋值

        for(int i=0;i<10;i++)

            ages[i]=i;          //设置数组元素的值

        System.out.println(ages[2]);//取出下标为2的数组的元素

        //为对象数组赋值

      //第三种方式,给数组元素直接赋值

        ll=  new L01[]{new L01(),new L01()};

       

       System.out.println(names);

        //访问二维数组

       System.out.println(classe[0][1]);//班级1的第二个同学

      //System.out.println(classe[1][2]);//班级2的第三个同学

        //遍历一个数组中的所有元素

        //数组是一个特殊的对象,length=数组元素的个数

        //ArrayIndexOutOfBoundsException 数组下标越界,也不能赋值

        for (int i = 0; i < names.length;i++) {

             System.out.println(names[i]);

       }      

    } 

}

二、java io 流读取文件:

package arraytest;

 

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

 

public class L02 {

    /**

     * 复制文件

     *

     * @param srcName

     *           原始文件路径

     * @param targetNmae

     *           目标文件路径

     *

     */

    public staticvoid main(String[] args) {

       L02 l02 =new L02();

       l02.copy("C:\\垃圾.png", "D:\\垃圾.png");

    }

    public voidcopy(String srcName, String targetNmae) {

       //srcNmae->读取-(程序)->写入targetName

       byte[] buf= new byte[1024]; // 字节缓冲区

       int len =0; // 每次读取的字节数

       FileInputStreamin = null;

       FileOutputStreamout = null;

       try {

           in =new FileInputStream(srcName); // 输入

           out =new FileOutputStream(targetNmae);// 输出

           while((len = in.read(buf)) > 0) { // 读一次

              out.write(buf,0,len);

           }

           in.close();

           out.close();

 

       } catch(Exception e) {

           e.printStackTrace();

       }

    }

}

三、Java集合基础:

package arraytest;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.HashSet;

import java.util.List;

import java.util.Map;

import java.util.Set;

 

public class L03 {

 

    public staticvoid main(String[] args) {

       //集合 模板 数组

       //List(可变数组,有序)、Set(堆,无序)、Map(键值对、映射):都是接口

       //List->ArrayList、LinkedList(链表):泛型

       //Java中数据类型:1)基本类型(整数,浮点型,布尔值)、2)引用类型

       //集合中不能放基本类型

       //数据类型转换为引用类型:int->Integer float->Floatdouble->Double long->Long boolean->Boolean

       List list = new ArrayList();//object

       list.add(1);               //int->Integer  自动装箱   list.add(1); =list.add(Integer(1));

      

       //运行时异常:编译时不出错,但是在运行时出现错误

       //int i = (int) list.get(1); //Integer->int   自动拆箱

      

       list.add("one");

       //泛型:泛型是类的模板,类是对象的模板。

       //吧普通集合转换成泛型,避免出现运行时异常,泛型产生的动机:吧运行时异常转化在编译时错误

       List<Integer> list1 = newArrayList<Integer>();

      list.add(1);    //如果   list.add("one") 在上面规定是Integer如果在下面写成字符串是就会报错,就不会出现运行时异常      

       int i1 =list1.get(0);

       //Hash码:检验数据的完整性,避免出现数据的修改,变化。

       //HashSet<>:不会存储重复的值

       Set<String>set = new HashSet<String>();

       set.add("one");

       set.add("one");

       set.add("two");

       //遍历set集合

       for(String item : set) {  //增强的for循环,item是循环变量

           System.out.println(item);

       }

       System.out.println(set.size());

       //Map集合:键、值要一一对应

       Map<String, Integer> map = newHashMap<String,Integer>();

       map.put("第一个", 1);

       map.put("第二个", 2);

       int name =map.get(1);

       int  name2 = map.get(2);

      

       //ListView(列表) - ArrayAdapter(适配器)->List

      

       }

}

 

四、Java  程序流程  递归操作

package arraytest;

 

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

 

public class L04 {

    /**

     * 列出(打印到控制台)指定文件的内容

     * D:/test   System.out.println();

     * public voidshowFileName(String dirName);//递归:自己调用自己

     * @param

     * @throws IOException

     */

//输出文件内容

//  public static void main(String[] args) throws IOException {

//     FileInputStream fis =newFileInputStream("C:\\poem.txt");

//     byte[]buff = new byte[1024];

//     inthasRead = 0;

//     while((hasRead = fis.read(buff)) != -1) {

//         System.out.println(newString(buff, 0, hasRead));

//     }

//     fis.close();

//  }

    public staticvoid main(String[] args){

       L04 ll =new L04();

       ll.showFileName("E:\\移动开发");

    }

     public voidshowFileName(String dirName) {

       File fis =new File(dirName);

       File[]childFile = fis.listFiles();

       for (int i= 0;childFile !=null && i < childFile.length; i++) {

           System.out.println(childFile[i].getName());

           if(childFile[i].isDirectory()){

              showFileName(childFile[i].getPath());

           }

       }

    }

}

 

五、Java 程序流程控制   循环 for   while  dowhile

package money;

 

public class L02 {

    public static void main(String[] args) {

       //循环 程序:数据结构+算法

        //for:万能循环

       //循环1、循环固定的次数

       //表达式1;表达式2;表达式3

        //表达式1:初始化表达式

       //表达式2:条件表达式

       //表达式3:修改循环变量

       for(int i=1;i<100;i++){

           System.out.println(i);

       }

       //1轮:1 -> 2 ->循环体 ->3

       //2轮:2 -> 循环体 ->3

       //....

       //99轮:2->循环体->3   i=99

       //100轮:2 -> 循环体->3  i=100

       //101轮:2->结束

       //循环2

       for(;;){}

       //表达式1:判断->(成功)->循环体->(失败)->结束

//     while (表达式1) {

//         循环体

       }  

       //循环体 表达式1:->判断->(成功)->继续->(失败)->结束

//     do {

//         循环体

//     } while (表达式1);

       }

    }

六、计算质数之和

package money;

 

public class L04 {

 

    public staticvoid main(String[] args) {

       L04 n=newL04();

       int num=n.sum(2,10);

       System.out.println("质数和:"+num);

    }

    publicint  sum(int minVal,int maxVal) {

       int sum=0;

       if(minVal<1 || maxVal<1 || minVal >= maxVal) {

           thrownew RuntimeException("参数不合法");

       }

       for(inti=minVal;i<=maxVal;i++){

           int j;

           for(j=minVal;j<i;j++){

              if(i%j==0){

                  break;

              }

           }

           if(i==j) {

              sum +=j;

           }

       }

       return sum;

    } 

}

 

七、统计某两个数之间的所有奇数和和所有偶数和:


package money;

/**

 * 分别统计minVal-maxVal之间的质数之和

 * 分别统计minVal-maxVal之间的奇数和偶数之和

 * 如果minVal <= maxVal才进行计算

 * 否则,抛出异常throw new RuntimeException("参数不合法")

 * @param minVal 最小值(包含)

 * @param minVal最大值(包含)

 * @return 数组,0号元素是奇数和,1号元素的偶数和

 *

 */

 

public class L03 {

    public staticvoid main(String[] args) {

       L03 ll=newL03();

       int[] nums=ll.sum(1,10);

       System.out.println("奇数和:"+nums[0]+",偶数和:"+nums[1]);

    }

    public int[]sum(int minVal,int maxVal) {

       intousum=0;

       intjisum=0;

       //判断minVal是否合法

       //奇数判断条件:if(minVal % 2 !=0)

       if(minVal<0  ||  maxVal<0 ||  minVal>=maxVal) {

           thrownew RuntimeException("参数不合法");

       }

       for(int i=minVal;i<=maxVal;i++){

           if(i%2 ==0) {

              ousum  += i;

           }else{

              jisum  += i;

           }

       }

       int[]result = new int[]{jisum,ousum};

       returnresult;

    }

}

 

八、计算工人扣税后的工资

package money;

 

public class L01 {

   

public static void main(String[] args) {

//  double money= 6000 ;

    L01 ll = newL01();

    System.out.println(ll.calc(11000));//输入的工资金额

}

//  public doublecalc(double money){

//     doublesum  = money - 3500;//征税工资

//     double  rat = 0;

//     doubletotal = 0;

//     if(money>= 8500){//0.15

//         total= sum * 0.15;

//     }elseif(money >= 5000) {//0.1

//         total= sum * 0.1;

//     }elseif(money >= 3500) {//0.05

//         total= sum * 0.05;

//     }else{                   

//         total= 0;

//     }

//     returntotal;

//  }

    //sum = money- 3500

    //0-500        5%

    //500-2000     10% 扣除25 5500:500*0.05+1500*0.1-25

    //2000-5000    15%  扣除125 

    //5000-20000   20%  扣除375

    //20000-40000  25%  扣除1350

    //40000-60000  30%  扣除3375

    //60000-80000  35%  扣除6375

    //80000-10000040%  扣除10375

    //100000以上             45%  扣除15375

    public doublecalc(double money){

      

       doubletotal = 0;//要交的税金总额

       doublesum  = money - 3500;//要征税的工资

       doublesum0  = 0; //扣除工资

      

       if(sum -100000  > 0){

           total= total  + (sum - 100000)*0.45;//100000以上             45%  扣除15375

           sum0 =15375;

           sum=100000;//100000以下计税工资

       }

       if(sum -80000 > 0 && sum - 100000 <= 0) {

           total= total  + (sum -80000)*0.4;//80000-100000 40%  扣除10375

           if(sum0==0)sum0 = 10375;

           sum=80000;//80000以下计税工资

       }

       if(sum -60000 > 0 && sum - 80000  <= 0) {

           total= total  + (sum -60000)*0.35;//60000-80000  35%  扣除6375

           if(sum0==0) sum0 = 6375;

           sum=60000;//60000以下计税工资

       }

       if(sum -40000 > 0 && sum - 60000  <= 0) {

           total= total  + (sum -40000)*0.3;//40000-60000  30%  扣除3375

           if(sum0==0)sum0 =3375;

           sum=40000;//40000以下计税工资

       }

       if(sum -20000 > 0 && sum - 40000  <= 0) {

           total= total  + (sum -20000)*0.25;//20000-40000  25%  扣除1350

           if(sum0==0)sum0 = 1350;

           sum=20000;//20000以下计税工资

       }

       if(sum -5000 > 0 && sum - 20000  <= 0) {

           total= total  + (sum -5000)*0.2;//5000-20000   20%  扣除375

           if(sum0==0)sum0 = 375;

           sum=5000;//5000以下计税工资

       }

       if(sum -2000 > 0 && sum - 5000  <=0) {

           total= total  + (sum -2000)*0.15;//2000-5000    15%  扣除125 

           if(sum0==0)sum0 = 125;

           sum=2000;//2000以下计税工资

       }

       if(sum -500 > 0 && sum - 2000   <=0) {

           total= total  + (sum - 500)*0.1;  //500-2000    10%  扣除25

           if(sum0==0)sum0 = 25;

           sum=500;//500以下计税工资

       }

       if(sum -500  <= 0) {

           total= total  + sum *0.05;//0-500        5%

       }

      

       returntotal-sum0;

    }

 

}

九、Java 基础之日期:

 

package datePractice;

 

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

 

public class Dateexpression {

    public staticvoid main(String[] args) throws Throwable{

      

       //java.util.Date  java.sql.Date

        //时间是一个数字、格式化时间  SimpleDateFormat

       SimpleDateFormatdf1=new SimpleDateFormat("yyyy年MM月dd日hh:mm:ss,SSSS");

       SimpleDateFormatdf2=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss,SSSS");

       SimpleDateFormatdf3=new SimpleDateFormat("yyyy-MM-dd");

      

       for(int i=0;i<100;i++){

           Datedate=new Date();

           System.out.println(date.getTime()+",格式"+df1.format(date)+",格式二"+df2.format(date)+",格式"+df3.format(date));

           //Thread.sleep(1000);

       }

      

       //获得当前系统时间

       java.util.Datedate=new java.util.Date();

       //获得当前时间的数字

       longtime=date.getTime();

       //将字符串转换为时间

       Stringtimestr="1980-01-01";

       java.sql.Datedate1=java.sql.Date.valueOf(timestr);

       java.util.Datedate2=df3.parse(timestr);

       //将时间转换为字符串

       StringtiemStrResult=df1.format(date2);      

       System.out.println(tiemStrResult);

      

       //日历 时间戳

       Calendarc1=Calendar.getInstance();   //创建日历对象

       System.out.println(df1.format(c1.getTime()));

      

       c1.set(Calendar.MONTH, c1.get(Calendar.MONTH)+1);// 修改日历对象的时间为一个月后的这一刻c1.get(Calendar.Month)获取日历中当前月份

       System.out.println(df2.format(c1.getTime()));

       //------------------------------------------------------------------------

       Calendarc2=Calendar.getInstance();   //创建日历对象

       System.out.println(df1.format(c2.getTime()));

      

       c2.set(Calendar.YEAR,c2.get(Calendar.YEAR)+1);// 修改日历对象的时间为一年后的这一刻c1.get(Calendar.YEAR)获取日历中当前年份

       System.out.println(df1.format(c2.getTime()));

      

      

       //------------------------------------------------------------------------

       Calendarc3=Calendar.getInstance();   //创建日历对象

       System.out.println(df1.format(c3.getTime()));

      

       c3.set(Calendar.DATE,c3.get(Calendar.DATE)+1);// 修改日历对象的时间为一天后的这一刻c1.get(Calendar.DATE)获取日历中当前日

       System.out.println(df1.format(c3.getTime()));

       //------------------------------------------------------------------------

       Calendarc4=Calendar.getInstance();   //创建日历对象

       System.out.println(df1.format(c4.getTime()));

      

       c4.set(Calendar.DATE,c4.get(Calendar.DATE)+70);// 修改日历对象的时间为70天后的这一刻c1.get(Calendar.DATE)获取日历中当前日

       System.out.println(df1.format(c4.getTime()));

       //------------------------------------------------------------------------            

    }

}

 十、Java相关概念

面向对象 (上)

本次记录部分特别值得回味记忆的话

1所有类是引用对象。

2类名必须是由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母全都小写单词与单词之间不要使用任何分隔符。

3一个类中最常见的三种最常见的成员:构造器、成员变量、方法。

4 static修饰的成员不能访问没有static修饰的成员。

5一旦程序员为一个类提供了构造器,系统将不再为该类提供构造器

6 通常建议方法名以英文动词开头

7创建对象的根本途径是构造器

8 Java里的引用就是c里的指针,只是Java语言把这个指针封装起来,避免开发者进行烦琐的指针操作

9 this关键字总是指向调用该方法的对象,根据this出现的位置不同,this作为对象的默认引用有两种情形:

1)构造器中引用该构造器正在初始化的对象

2)在方法中引用调用该方法的对象

This可以代表任何对象,当this出现在某个方法体中时,它所代表的对象是不确定的,但它的类型是确定的:this所代表的只能是当前类的实例;只有当这个方法被调用时,它所代表的对象才被确定下来:谁在调用这个方法,this就代表谁。

10 Java编程时不要使用对象去调用static修饰的成员变量、方法,而是应该使用类去调用static修饰的成员变量、方法。

省略this前缀只是一个假象,虽然程序员省略了调用jump()方法之前的this,但实际上这个this依然是存在的。如果调用static修饰的成员,系统默认使用该类作为调用者;如果调用不用static修饰的成员,系统默认使用this作为调用者。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值