zoukankan      html  css  js  c++  java
  • 达内javase_day1笔记

     王克晶(WKJ)

    1.碰到问题怎么办?
      1)找同桌、同学
      2)找项目经理
      3)找讲师
    2.学习Java的窍门?
      1)多想
      2)多练
    3.小要求:
      1)课堂气氛活跃一些


    笔记:
    1.Java开发环境:
      1)Java编译运行过程:------------常见面试题
        1.1)编译期:.java源文件,经过编译,生成.class字节码文件
        1.2)运行期:JVM加载.class并运行.class
        特点:跨平台、一次编程到处使用
      2)名词解释:---------------------常见面试题
        2.1)JVM:java虚拟机
                加载.class并运行.class
        2.2)JRE:java运行环境
                除了包含JVM以外还包含了运行java程序所必须的环境
            JRE=JVM+java系统类库(小零件)
        2.3)JDK:java开发工具包
                除了包含JRE以外还包含了开发java程序的必须的命令工具
            JDK=JRE+编译、运行等命令工具
        说明:
          1)运行java程序的最小环境为JRE
          2)开发java程序的最小环境为JDK
      3)配置变量------------了解
        3.1)JAVA_HOME:指向JDK的安装目录
        3.2)CLASSPATH:表示类的搜索路径,一般简写为.
        3.3)PATH:指向JDK下的bin目录
    2.eclipse:
      1)IBM、开源的、免费的、不需要安装仅需解压即可
      2)开发步骤:
        2.1)新建Java项目----------------小区
        2.2)新建Java包------------------楼+单元
        2.3)新建Java类------------------房子
      3)注释:解释性文字
        3.1)单行注释://
        3.2)多行注释:/* */
        3.3)文档注释:/** */----------7月下旬讲
        
    练习:
    1.创建Java项目MyProject
    2.在MyProject中创建Java包mypackage
    3.在mypackage中创建Java类MyClass,main()中:
        输出HelloWorld,并换行
    4.在mypackage中创建Java类Test,main()中:
        输出Hello,不换行
        输出World,换行
        输出欢迎大家来到达内,换行
        输出当日事当日毕,换行
        输出......



    tmooc,每一天:
    1)PPT:
    2)经典案例:------Windows下配置环境变量
    3)课后作业:

    5
    6

    5
    6
    110

        项目               包               类
    东日瑞景小区       4号楼3单元          201

    JSD1806
    工作空间:所创建的所有java项目的默认保存地址
    A:先装JDK再运行eclipse------------正确的
    B:先运行eclipse再装JDK

    eclipse----------本身就是用java语言写的


    IBM公司用java语言写了个eclipse程序
    然后让人们用eclipse写java代码
    Java:开源的
    eclipse:开源的
    开源:开发源代码、免费的
    PATH:/a/b;/c/d;/m/n;

    javac

    public class HelloWorld{
      public static void main(String[] args){
        
      }
    }

    public class HelloWorld {
      public static void main(String[] args) {
            
      }
    }

    package day01; //声明包day01
    public class HelloWorld { //声明类HelloWorld
        //主方法,为程序的入口
        //程序的执行从main开始,main结束则程序结束
        public static void main(String[] args) {
            //输出HelloWorld 
            //1)严格区分大小写
            //2)所有符号必须都是英文模式的
            //3)每句话必须以分号结尾
            //4)println():输出并换行
            //  print():输出不换行
            System.out.print("Hello");
            System.out.println("World");
            System.out.println("今天天气不错,心情也不错");
            System.out.println("欢迎大家来到达内");
        }
    }


    借助于开发工具------eclipse

    JDK=JVM+java系统类库(小零件)+编译、运行等命令工具
    Java编译运行过程:
    1).java源文件,经过编译,生成.class字节码文件
    2)JVM加载.class并运行.class(0和1)


    假设QQ是用Java写的:
      java版的QQ,经过编译,生成.class字节码文件
         Windows版的JVM---------运行在Windows系统上
         Linux版的JVM-----------运行在Linux系统上
         IOS版的JVM-------------运行在IOS系统上
         ???版的JVM-------------运行在???系统上
      跨平台、一次编程到处使用



    银行系统------------服务器Windows系统
                        服务器Linux系统


    Java

    C语言编译运行过程:
      .c源文件,经过编译,直接生成可执行文件(0和1)

    QQ:用C语言写的
      Windows版的QQ---------------运行在Windows系统上
      Linux版的QQ-----------------运行在Linux系统上
      IOS版的QQ-------------------运行在IOS系统上
      ???版的QQ-------------------运行在???系统上

    每个操作系统的指令(0和1)是不同的
    Windows:
      你-------------01010101
    Linux:
      你-------------11110000
    IOS:
      你-------------10101010
    我----------01010101
    和----------10101010
    你----------11110000

    课上不要听热闹
    课堂尽可能多的去消化东西

    17天课程
    Java:是一门计算机语言

    www.taobao.com---------------Java写的
    www.jd.com-------------------Java写的
    饿了吗-----------------------Java写的
    摩拜单车---------------------Java写的
    银行系统---------------------Java写的
    ATM机系统--------------------Java写的
    ...

    共100个项目,共值100万
    只有20个项目是用Java做的,但能挣80万

    Web前端,UI设计,运维工程师----8,9个人

    语言基础(7天)+面向对象(10天)

    知道这个东西的人
    熟练掌握这个东西的人----------------公司所需要的

    java习题

    1. 简述Java编译及运行过程
    2. 名词解释JVMJREJDK
    3. 下列关于Eclipse说法正确的是?

    A.在源文件编写的同时Eclipse会自动的调用Java编译器编译该文件,如果出现任何编译错误,Eclipse会立刻发现,并提示给用户。

    BEclipse中的Workspace是用于存储工程的路径。

    CEclipse下载完成后,不需要特殊的安装,仅需解压即可。

    DEclipse是开放源代码的Java开发平台。

    1. 实现JAVA HelloWorldEclipse

     

    获取字符串指定位置的字符

    public class CharAtDemo {
        public static void main(String[] args) {
            String str = "helloworld";
            /*
             * 要求:获取字符串中第五个位置的字符
             * charAt(int index):char
             * 获取字符串中指定位置的字符
             * 
             * indexOf(char):int 
             * 根据字符获取字符的下标
             */
            char dest = str.charAt(4);
            System.out.println(dest);
            
        }
    
    }
    public class LastIndexOfDemo {
        public static void main(String[] args) {
            String str = "helloworld"; 
            //返回字符l在字符串中最后一次出现的位置
            int index = str.lastIndexOf('l');
            System.out.println(index);
        }
    
    }
    public class StartsWith_endsWithDemo {
        public static void main(String[] args) {
            /*
             * startsWith(String prefix):boolean
             * 判断目标字符串是否以指定内容开始
             * 是 - true
             * 不是 - flase
             */
            String str = "helloworld";
            //判断str是否以helloworld开头
            boolean flag = str.startsWith("helloworld");
            System.out.println(flag);  //true
            
            /*
             * endsWith(String suffix):boolean
             * 判断目标字符串是否以指定后缀结尾
             * 是 - true
             * 不是 - false
             */
            //判断str是否以wor结尾
            flag = str.endsWith("wor");
            System.out.println(flag);  //false
            
        }
    
    }

    去掉字符串的开头和结尾部分的空格部分

    public class TrimDemo {
        public static void main(String[] args) {
            /*
             * trim():String
             * 去掉字符串的开头和结尾部分的空格部分   Tab  	
             */
            String str = "  hello  world  	";
            String dest = str.trim();
            System.out.println(str);
            System.out.println(dest);
        }
    
    }
    /**
     * 
     * indexOf系列方法
     * @author adminitartor
     *
     */
    public class StringIndexOfDemo {
        public static void main(String[] args) {
                        //0123456789
            String str = "helloworld";  
            /*
             * indexOf(char) - int
             * 获取指定字符在目标字符串中第一次出现的索引
             * 获取字符l第一次出现的位置(下标)
             */
            int index = str.indexOf('l');
            System.out.println(index);
            
            /* indexOf(String) - int
             * 获取指定子字符串在目标字符串中第一次出现的索引
             * 注意:此时获取到的是子字符串中第一个字符出现的索引
             * 
             * 获取子字符串owo在目标字符串中第一次出现的位置
             */
            index = str.indexOf("owo");
            System.out.println(index);
            
            /*
             * indexOf方法:找到指定字符/字符串在目标字符串中第一次
             * 出现的索引,如果找的目标内容没有在字符串中出现,返回-1
             */
            index = str.indexOf('a');
            System.out.println(index);
            
            /*
             * 找到字符l第二次出现的索引
             * indexOf(char dest,int fromIndex) -int
             * 从字符串中的指定索引开始搜索指定字符第一次出现的下标
             * 
             * indexOf(String str,int formIndex)-int
             * 作用同上
             */
            index = str.indexOf('l', 5);
            System.out.println(index);
            
            
        }
    
    }
    public class StringLengthDemo {
        public static void main(String[] args) {
            String str = "helloworld";
            str = "我爱java!";  //7
            /*
             * length():获取字符串中字符的个数
             */
            int len = str.length();
            System.out.println(len);
        }
    
    }
    public class SubstringDemo {
        public static void main(String[] args) {
            String str = "我非常热爱java";
            /*
             * 要求:截取出子字符串“java”
             * substring(int beginIndex) - String
             * 从目标字符串中指定位置开始截取
             * destination:目标
             */
            String destStr = str.substring(2);
            System.out.println(destStr);
            
            /*
             * 要求:截取出“非常热爱”子字符串
             * substring(int beginIndex,int endIndex):String
             * 在javaAPI中很多类的很多方法中都会出现2个临界值,
             * 都是包头不包尾
             * 
             */
            destStr = str.substring(1, 5);
            System.out.println(destStr); 
            
        }
    
    }
    import java.util.Scanner;
    
    public class SubStringDemo02 {
        public static void main(String[] args) {
            /*
             *练习:截取域名
             *www.baidu.com
             *www.tedu.cn
             *www.域名.cn.com
             *要求:从控制台输入网址,定义一个方法用于截取出域名
             *并打印输出
             */
            //用户输入网址
            System.out.println("请输入网址:");
            Scanner sc = new Scanner(System.in);
            String netAddress = sc.next(); 
            //截取
            String dest = subDest(netAddress);
            System.out.println("域名是:"+dest);        
            sc.close();
        }
        /**
         * 截取域名
         * 思路:先获取网址中第一个.和第二个.的位置,再截取
         * 两个点之间的内容(即域名)
         */
        public static String subDest(String address){
            //完成截取域名,并将域名返回
            //获取第一个.的后一位字符的索引
            int index = address.indexOf(".")+1;
            //获取第二个.的下标
            int endIndex = address.indexOf(".",index);
            //截取目标域名
            String dest = address.substring(index, endIndex);
            return dest;
        }
    }

    String使用:

    StringDemo.java

    /**
     * 字符串是对象,创建有2种方式:
     *         1.直接给出字面量  2.通过new
     * 字符串的本质是字符数组,此字符数组用final修饰,
     * 所以字符串是不可变的对象
     * 
     * 字符串之间的拼接会产生新的字符串对象,
     * 而原字符串对象不改变
     * 
     * @author adminitartor
     *
     */
    public class StringDemo {
        public static void main(String[] args) {
            //定义String字符串
            String str = "abc";   //字符串字面量  直接量
            str = str+"def";
            System.out.println(str);  //abcdef       
        }
    }

    /**
     * 字符串是对象,创建有2种方式:
     *         1.直接给出字面量  2.通过new
     * 字符串的本质是字符数组,此字符数组用final修饰,
     * 所以字符串是不可变的对象
     * 
     * 字符串之间的拼接会产生新的字符串对象,
     * 而原字符串对象不改变
     * 
     * 
     * @author adminitartor
     *
     */
    public class StringDemo {
        public static void main(String[] args) {
            //定义String字符串
            String str = "abc";   //字符串字面量  直接量
    //        str = str+"def";
    //        System.out.println(str);  //abcdef
            
            
            /*
             * 为了提高字符串的性能,实现字符串的重用,将字符串
             * 字面量会缓存在字符串常量池中,当定义一个新的字符串
             * 字面量时会先到常量池查找是否已经存在目标字符串对象
             * 如果有,将常量池中引用保存的值赋给新引用,此新引用也
             * 指向了已经存在的字符串对象,如果没有,那么新创建对象
             */
            String s1 = "xy";
            String s2 = "abc";
            System.out.println(str==s2);   //true
            
            String s3 = new String("abc");
            String s4 = new String("abc");
            
            System.out.println(s3==s4);    //false
            /*
             * 字符串字面量和new出来的字符串对象进行==比较
             * 返回值一定为false。new出来的对象一定是新创建的。
             */
            System.out.println(s2==s3);   //false
            /*
             * 画出以下代码的内存示意图并给出比较结果:
             * 1.
             *     String s1 = "hello";
             *     String s2 = "world";
             *     String s3 = "hello";
             *     System.out.println(s1==s3)  //true
             * 
             * 2.
             *     String s1 = "hello";
             *     String s2 = new String("hello");
             *     System.out.println(s1==s2)   //false
             */
            
            /*
             * 面试题:String
             */
            String str1 = "hello";
            String str2 = "world";
            String str3 = "helloworld";
            /*
             * 如果是字符串字面量直接拼接,java编译器在编译期间会
             * 进行优化,直接将拼接的结果赋给变量
             * String str4 = "helloworld";
             */
            String str4 = "hello"+"world";
            String str5 = str1+str2;
            
            
            System.out.println(str3==str4);  //true
            System.out.println(str3==str5);  //false
            
            /*
             * 面试题2:
             * 以下这行代码中创建了几个字符串对象?
             *    2个
             */
    //        String ss = new String("hello");
            //2个
            String ss1 = new String("hel"+"lo");       
        }
    
    }
    /**
     * StringBuilder用于做大量字符串拼接运算,也叫做字符串生成器
     * 避免了使用str+str过程中创建大量对象
     * @author adminitartor
     *
     */
    public class StringBuilderDemo {
        public static void main(String[] args) {
            String str = "a";
            str += "b";  //str = str+"b";
            str += "c";
            str += "d";
            //以以上方式拼接n多个字符串,在内存中会创建大量的String对象
            //拼接1000000后的结果是我所要的结果
            
            /*
             * java中如果实现大量的字符串拼接,不推荐使用+
             * java中使用StringBuilder类是实现字符串的大量拼接
             */
            //使用StringBuilder拼接字符串
            //StrinBuilder也叫做字符串生成器
            StringBuilder sub = new StringBuilder();
            sub.append("a");
            sub.append("b");
            sub.append("c");
            sub.append("d");
            
            String dest = sub.toString();
            
            /*
             * 
             */
            String s1 = "a";
            s1 = s1+"c";   
            //其底层代码是以下内容
            //StringBuilder sub = new StringBuilder("a")
            //sub.append("c")
            //sub.toString()
            /*
             * 字符串用+拼接会产生新对象,其实+底层就是使用StringBuilder
             * 完成的
             */
            
            s1 = s1+"b"+"c"+"d"+"e";
            /*
             * 这行代码底层是:
             */
            StringBuilder sub1 = new StringBuilder("a");
            sub1.append("b");
            sub1.append("c");
            sub1.append("d");
            sub1.append("e");
            
            s1 = sub1.toString();
            
        }
    
    }

    StringBuilder拼接内存示意图

    字符串的==比较

    字符串字面量的保存

    JAVAOOP调用其他功能

    功能:调用另外一个功能

    很多个功能,功能的内部都要

    类{
      方法()
    {
        代码实现   - 100
    }
    }
    
    类{
            f()
    
    }

    javaSe   API:  
    java语言封装好的一系列的类,接口,抽象类

    javaAPI:
      java为我们提供好的一系列的类,接口,抽象类

    文档注释导出api方式:
         类:方法   String     
    javaApi文档网址:doc.tedu.cn

    DocDemo.java

    import java.text.ParseException;
    
    /**
     * 文档注释:功能级注释,用于三个地方
     * 用于类,方法,常量的上方,说明各自的功能
     * 
     * 此类用于解释文档注释
     * @author Linda
     * @version  1.8
     * @since  JDK1.5
     * @see  java.lang.String
     */
    public class DocDemo {
        
        /**
         * AGE表示年龄
         */
        public static final int AGE = 12;
        
        /**
         * 根据用户名查找用户信息
         * @param name  用户名  
         * @return AGE   年龄
         * @throws ParseException  
         */
        public int findUserByName(String name) throws ParseException{
            //方法体
            return AGE;
        }    
    
    }


    导出项目的API文档操作步骤:

      1.在项目中的类中添加文档注释
      2.选中当前项目,右键点击export
      3.选择java-->javadoc-->next
      4.如果弹出的窗口上方没有命令,配置(去jdk->bin->javadoc.exe)-->finish 



      效果:在当前工作空间的当前项目下生成doc文件夹,此文件夹下会生成很多东西,找index.html,双击打开即可。


    作业:
    面试题:

    1.String str = "我爱java,我热爱java,我非常热爱java";
    统计出str中子字符串java出现的次数。


    2.用户输入网址,截取网址的域名并打印输出。

    3.用户从控制台输入字符串,用charAt()判断一个字符串是否是回文。
        回文:"上海自来水来自海上" - 回文

    4.消化今天的内容   重点String内存      
        StringBuilder内存表示

    5.main:
        String str = "abc";
        char[] chs = {'g','b','k'};

        //调用方法
        change(str,chs);

        System.out.println(str) ?
        System.out.println(chs[0])  ?
        

      public void change(String str,char[] chs){
        str = "hello";
        chs[0] = 'a';
        
      }


  • 相关阅读:
    cerr与cout区别
    Apache Flink 进阶(三):Checkpoint 原理解析与应用实践
    一张图轻松掌握 Flink on YARN 应用启动全流程(上)
    开篇 | 揭秘 Flink 1.9 新架构,Blink Planner 你会用了吗?
    阿里第一颗芯片问世,平头哥发布最强AI芯片含光800
    Kubernetes 从懵圈到熟练:集群服务的三个要点和一种实现
    研发效能提升 36 计第二课:照亮问题,效能提升从可视化交付过程开始
    如何抢占云栖大会C位?史上最强强强攻略来了
    从零开始入门 K8s| 阿里技术专家详解 K8s 核心概念
    Serverless Kubernetes全面升级2.0架构:支持多命名空间、RBAC、CRD、PV/PVC等功能
  • 原文地址:https://www.cnblogs.com/ComputerVip/p/11622498.html
Copyright © 2011-2022 走看看