达内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';
    
  }


原文地址:https://www.cnblogs.com/ComputerVip/p/11622498.html