Java基础系列六、IDE+Object+String

来源:互联网 发布:卡牌手游推荐 知乎 编辑:程序博客网 时间:2024/05/19 20:43
Eclipse组成
  • 整体叫做视图,每一个小窗口叫做视窗。在eclipse中要想爽一下,必须先有项目(工程)
    • (1)视图,视窗
    • (2)视图就是某些视窗的组合
      • A:Java视图
      • B:Debug视图
      • C:JavaEE视图
    • (3)视图还原
      • 在视图操作中,我有可能有误操作。这个时候怎么办?
      • Window--Reset重置视图

Java透视图

  • (1)Package Explorer 包资源管理器
    • A:该视图中显示当前工作空间中的所有项目以及项目中的文件。但不显示项目下bin目录中的运行文件
    • B:可以直接在该视图中创建项目,包,类,接口等
  • (2)Outline 大纲视窗
    • A:该视图中显示当前代码视图中源文件中定义的类或者接口。以及定义的所有成员
    • B:当代码过长时,查找代码中的某一个类或者成员,在该视窗中是最方便的
    • C:在代码中出现多次的名称要同一更改,也可以在该视窗中完成。同时其他代码如果使用了该变量,那么也会一并改变
  • (3)Console 控制台视窗
    • A:用于显示程序的运行结果,相当于DOS命令
    • B:如果有多个控制台同时运行。比如:服务器端和客户端。可以通过控制台上的小屏幕按钮进行控制台的切换
    • C:通过点击小方框,进行控制台的强制停止,相当于DOS中的Ctrl+C
  • (4)Hierarchy 层次视窗
    • A:用于显示类之间的层次(继承)关系。
    • B:在当前类上,按F4就可以切换到该视窗,并查看层次关系
    • 查看原码,当前类上F3,或者Ctrl+鼠标点击

对工作空间进行基本配置

  • 注意:在工作空间的设置对于该空间中的所有项目都有效。更换了工作空间,需要重新设置
  • (1)配置Java的编译和运行环境版本
    • windows--perference-Java
      • Compiler 设置成5.0以上,要和运行环境版本一致
      • Installed JREs:可以指定多个jre环境,但是仅有一个是当前执行的。要和编译器一致,或者高于编译器版本
    • 如果采用高版本编译,用低版本jre运行,会出现异常
  • (2)代码视窗加上行号
    • A:首选项--常规--编辑器--文本编辑器
    • B:在当前类中,左侧,右键。Show Line Numbers
  • (3)调整字体
    • windows--perference(首选项)-General(标准)--Appearance(外观)--Color and Fonts(颜色和字体)
    • 右边选择Java。编辑即可
    • 字体选择 Courier New 比较标准,个人爱好
  • (4)取消悬浮提示

    • 在首选项设置面板中
    • Java--Editor--Hovers
    • 右边将Combined Hover勾去掉

    • 这样代码的悬浮框就不会自动出现了

    • 如果想看提示,将光标悬浮在代码上,按F2即可
  • (5)取消默认注释
    • 在首选项设置面板中
    • Java--Code Style--Code Templates
    • 右边选择Code,将不希望出现默认注释的代码块中的注释去掉。
  • (6)类名高亮 可以这样配置在“java”→“enditor”→“syntac”,右边展开“java”→“classes”,勾上“Enable”这个选项,选择自己喜欢的颜色即可
  • (7)preference->general->editors->texteditor selection backgroud color

常用的提高开发的操作

  • (1)创建面板 定义类和接口,权限,父类已经实现的接口等

    • syso:然后alt+/就能出现输出语句(回车 到行尾,shift+回车 到下行的行首),如果单独敲回车就是到下行的行首
    • main:然后alt+/就能出主方法
    • 自己也可以定义。
      • 步骤:windows--perference-Java-Editor-Templates--New
  • (2)常用的快捷键 (A,E,F必须掌握)

    • A:alt+/ 内容辅助键,补充类或者接口名,帮我们起变量名,new 后面直接提示等。
    • B:ctrl+/ 单行注释,再按一次,取消单行注释
    • C:ctrl+shift+/ 对选中的区域进行多行注释的封装
    • D:ctrl+shift+\ 用于取消多行注释,只要光标在多行注释中即可
    • E:ctrl+shift+o 对使用了其他包中的类或者接口进行自动导入
    • F:ctrl+shift+f 对代码进行格式化
    • G: ctrl + alt + 上键 向上复制当前行或选中行
    • H: ctrl + alt + 下键 向下复制当前行或选中行
    • I:alt+上键 向上移动当前行或者选中行
    • J:alt+下键 向下移动当前行或者选中行
    • K:ctrl+d 删除当前行,或者删除选中行
    • L:ctrl+shift+x 将选中部分的字母大写
    • M:ctrl+shift+y 将选中部分的字母小写
    • N:ctrl+1 光标放在编译中出现红色波浪线提示的内容上,在该快捷键可以获取建议的处理方式

代码生成的快捷键alt+shift+s

  • 出现source
    • 1:在区域中右键
    • 2:alt+shift+s

(1)私有字段的get/set 重点 (2)构造方法 (3)重写父类方法 重点 @Override 注解 表明此方法是重写父类的

(4)添加注释 /** 回车 (5)方法的重构 右键--refactor--Extract Method

int sum = a + b;System.out.println(sum);// 选中a+b 扩展可以生成带返回值的

Debug 调试程序

  • 注释找错误
  • 输出打印调试程序
  • 程序不是写出来的,是改出来的
  • (1)让我们调试程序更加方便
  • (2)想要调试,需要在程序中加入断点
  • (3)运行debug as,打开debug视图
  • (4)快捷键
    • f5:跳入
    • f6:跳过
    • f7:跳出
  • (5)清除断点
    • 在Breakpoints视窗中清除指定断点或者所有断点

打jar包,导入jar包,及jar包的使用。

  • 1:打jar包
    • 选中项目--右键--Export--Java--jar--next--自己写jar包的名字和选择路径--finish
  • 2:jar包的使用
    • 导入jar包
    • 1:单独添加jar
      • 把jar复制,然后粘贴到项目路径下
      • 一定要把jar添加至classpath路径中
      • 怎么添加呢?
      • 右键jar包--添加构建路径项目下:.classpath文件中可以看到
      • 如果,这写jar不用了,那么,就从构建路径中把jar包移除
        • 选中项目--右键--首选项--Java Build Path--library--选中其中的jar包,给remove
    • 2:为了方便管理多个jar包
      • 通常建立一个目录,名字建立定义为lib
      • 将jar都存放在该目录下
      • 如果要使用jar包,只要将该jar导入到eclipse的classpath路径下
      • 右键至添加构建路径 项目下:.classpath文件中可以看到

导入已有的项目

  • 空白区域--右键--import--General--Existing Project into Workspace--选中你的项目目录--finish--OK
  • 删除项目中有两种。 选中和不选中删除硬盘上的项目
  • 请不要选中删除硬盘上的项目。

Object类

  • getClass()
  • Demo d = new Demo();Class clazz1 = d.getClass(); // 返回对象的运行时类Class clazz2 = Demo.class;System.out.println(clazz1 == clazz2);
  • hashCode()

    Demo d = new Demo();int hashCode = d.hashCode();System.out.println(hashCode);
  • toString()

    Demo d = new Demo();System.out.println(d); // 当对对象的引用打印时,会默认调用对象的toString方法,如果System.out.println(d.toString()); // 该对象所属的类中没有toString方法,会调用Object类中(父类)int[] arr = new int[5]; // 数组的父类也是ObjectSystem.out.println(arr);System.out.println(arr.toString());
  • equals()
  • public boolean equals(Object obj) {return (this == obj);}==号和equals方法的区别、===(即比较值也比较地址)1, ==号是一个符号,比较运算符,equals是一个方法2, ==:比较基本数据类型比较的是值,比较引用数据类型比较的是地址值3, ===:既比较值也比较地址4, equals方法只能比较引用数据类型,比较对象的属性
  • finalize()

    class DemoA {    @Override    public void finalize(){        System.out.println("垃圾被清扫了");    }}

以下为字符串简介

几道小题

  • 1. 判断定义为String类型的s1和s2是否相等
    • String s1 = "abc";
    • String s2 = "abc";
    • System.out.println(s1 == s2); // true
    • System.out.println(s1.equals(s2)); // true
  • 2. 下面这句话在内存中创建了几个对象?
    • String s1 = new String("abc");
  • 3. 判断定义为String类型的s1和s2是否相等
    • String s1 = new String("abc");
    • String s2 = "abc";
    • System.out.println(s1 == s2); // false
    • System.out.println(s1.equals(s2)); // true
  • 4.判断定义为String类型的s1和s2是否相等
    • String s1 = "a" + "b" + "c";
    • String s2 = "abc";
    • System.out.println(s1 == s2); ?
    • System.out.println(s1.equals(s2)); 
  • 5.判断定义为String类型的s1和s2是否相等
    • String s1 = "ab";
    • String s2 = "abc";
    • String s3 = s1 + "c";
    • System.out.println(s3.equals(s2)); // true

        构造函数

        • 1. 字节数组
          • byte[] arr = { 97,98,99 };
          • String str = new String(byte[]);  // 解码,让我们看的懂的,通过默认的编码表,将字节数组转换成字符串
          • String(byte[], String);  // 解码,通过指定的编码表,将字节数组转换成字符串
          • String(byte[], int offset, int length, String); // 解码,截取字节数组,offset是开始索引,length是截取的长度
        • 2. 字符数组
          • String(char[]) // 将字符数组转换成字符串
          • String(char[], int offset, int length) // 截取字符数组,offset是开始的索引,length是截取的长度

        String类的常用方法

        • 1. 判断

          • 1.1 boolean equals(Object); // 传入的字符串是否与调用的字符串字符序列是否相同
          • 1.2 boolean equalsIgnoreCase(string); // 传入的字符串是否与调用的字符串字符序列是否相同,不区分大小写
          • 1.3 boolean contains(string); // 传入的字符串是否被调用的字符串包含
          • 1.4 boolean startsWith(string); // 调用的字符串是否以传入的字符串开头
          • 1.5 boolean endsWith(string); // 调用的字符串是否以传入的字符串结尾
          • 1.6 boolean isEmpty(); // 字符串是否为空
        • 2. 获取

          • 2.1 int length(); // 获取字符串的长度
          • 2.2 char charAt(index); // 通过索引获取对应的字符
          • 2.3
            • int indexOf(int ch); // 通过传入int数或者是字符找对应索引
            • int idnexOf(int ch, fromIndex); // 在指定fromIndex的位置查找传入的字符
          • 2.4
            • int indexOf(string str); // 通过传入字符串查找字符串所对应的索引
            • int idnexOf(string str, fromIndex); // 通过指定fromIndex的位置查找传入的字符串
          • 2.5
            • int lastIndexOf(ch); // 从后向前第一次找到的索引值返回
            • int lastIndexOf(ch, fromIndex): // 通过指定fromIndex的位置,从后向前第一次找到的索引值返回
          • 2.6
            • int lastIndexOf(string); // 通过传入的字符串,将第一次找到字符串中第一个字符的索引返回
            • int lastIndexOf(string, fromIndex): // 通过指定fromIndex的位置,将第一次找到字符串中第一个字符的索引返回
          • 2.7
            • String substring(start); // 通过传入的索引值开始向后截取,截取的是索引到length
            • String substring(start, end); // 通过传入的两个索引值截取,左闭右开
        • 3. 转换

          • 3.1
            • byte[] getBytes(); // 编码,让计算机看的懂的,用默认的编码表,将字符串转换成字节数组
            • byte[] getBytes(String); // 用指定的编码表进行编码
          • 3.2 char[] toCharArray(); // 将字符串转换成字符数组
          • 3.3
            • static String copyValueOf(char[]); // 将字符数组转换成字符串
            • static String copyValueOf(char[] data, int offset, int count);// 将字符数组转换字符串,通过offset开始,截取count个
          • 3.4
            • static String valueOf(char[]); // 将字符数组转换成字符串
            • static String valueOf(char[] data, int offset, int count);// 将字符数组转换字符串,通过offset开始,截取count个
          • 3.5

            • static String valueOf(int); // 将一个int数转换成字符串
            • static String valueOf(double);
            • static String valueOf(boolean); ...
          • 3.6

            • static String valueOf(object);
            • 和object.toString(); // 结果是一样的
          • 3.7
            • String toLowerCase(): // 将字符串全部转换为小写
            • String toUpperCase(): // 将字符串全班转换为大写
          • 3.8 "abc".concat("kk"); // 将两个字符串相连接,产生新的字符串
        • 4. 替换

          • 4.1 String replace(oldChar, newChar); // 将newChar替换OldChar,如果OldChar不存在,原字符串直接赋值给替换后字符串
          • 4.2 String replace(string, string);
        • 5. 切割

          • String[] split(regex); // 通过regex切割字符串,切割后会产生一个字符串数组
          • String s = "金三胖 郭美美 李天一";
          • String[] arr = s.split(" ");
        • 6. 去除字符串两空格

          • String trim();
        • 7. 比较

          • String str1 = "ab";
          • String str2 = "bc";
          • int num = str1.compareTo(str2); // 如果str比str1大的话,返回的正数

        正则表达式

        • 1. 什么是正则表达式
          • 一种字符串的约束格式, 例如邮箱提示输入不合法
        • 2. 匹配
          • String里的matches() 验证一个字符串是否匹配指定的正则表达式"18612345678".matches("1[34578]\d{9}");
        • 3. 分割
          • String里的split() 用指定正则表达式能匹配的字符作为分隔符, 分割字符串
        • 4. 替换
          • String里的replaceAll(" ", " ") 把字符串中能匹配正则表达式的部分替换为另一个字符串
        • 5. 查找
          • Pattern.compile() 创建正则表达式对象
          • Pattern.matcher() 用正则表达式匹配一个字符串, 得到匹配器
          • Matcher.find() 查找字符串中是否包含能匹配正则表达式的部分
          • Matcher.group() 获取匹配的部分

        StringBuffer的常用方法

        • 1. 添加

          • 1.1 StringBuffer append(int x); // 在缓冲区的末尾追加
          • 1.2 StringBuffer insert(int index, String str); // 在指定索引位置添加
        • 2. 删除

          • 2.1 StringBuffer delete(int start, int end); // 包含头索引,不包含尾部索引
          • 2.2 StringBuffer delete(0, sb.length); // 清空缓冲区
          • sb = new StringBuffer();
          • sb.append("aaaaa");
          • sb = new StringBuffer();
          • 2.3 StringBuffer deleteCharAt(int index); // 根据指定的索引删除索引对应的元素
        • 3. 修改

          • 3.1 StringBuffer replace(int start,int end,string); // 用String替换,包含头不包含尾
          • 3.2 void setCharAt(int index ,char); // 修改,把指定索引位置的值改成传入的char值
          • 3.3 StringBuffer reverse(); // 将缓冲区的元素反转
          • 3.4 void setLength(int len); //根据传入的len值截取缓冲区的长度
          • 3.5 toString(); // 转换成String
        • 4. 查找

          • 4.1 int indexOf(str); // 查找str在缓冲区第一次出现的位置
          • 4.2 int lastIndexOf(str); // 从后向前查找查找str在缓冲区第一次出现的位置

        StringBuilder和StringBuffer

        • 1. StringBuilder和StringBuffer与String的区别
          • StringBuilder和StringBuffeer是可变字符序列
          • String是不变得,一但被初始化,就不能改变
        • 2. StringBuilder和StringBuffer的区别
          • StringBuilder是线程不安全的,所以效率比较高,1.5版本出现
          • StringBuffer是线程安全的,效率相对较低,1.0版本出现的

        包装类

        • 1. 什么是包装类
          • 8种基本数据类型都会对应一个包装类
          • int是Integer, char是Character, 其他都是首字母大写double Double short Short boolean Boolean...
        • 2. 什么时候使用
          • 集合的泛型中只能写包装类型。JDK5之后, 基本数据类型和包装类之间可以自动的互相转换了
        • 3. 包装类常用的方法
          • static int parseInt(String s) // 将数字字符串转换成数字,如果是非数字字符串会转换失败,抛异常
          • Integer.toBinaryString() // 将一个十进制数字,转换成二进制的字符串
          • Integer.toOctalString() // 将一个十进制数字,转换成八进制的字符串
          • Integer.toHexString() // 将一个十进制数字,转换成十六进制的字符串
          • static long parseLong(String s)
          • static double parseDouble(String s)
          • static char forDigit(int digit, int radix) // radix代表的是进制例如二进制就传2,八进制就传8,digit代表后面进制里面的元素,而且不能超出后面进制的范围
          • String s = "123";
          • int x = Integer.parseInt(s);
          • String s = "abc";
          • char ch = Character.parseChar(s);


        0 0
        原创粉丝点击