ecplise的基本操作和快捷键和debug操作,遇到需要的方法就是进入 step into
定义模板和format的时候不要把注释去掉
GUI简述和匿名内部类
桌面程序:GUI(图形化界面)
awt:不能跨平台
swing:可以跨平台
Java Fx:Java最新推出的技术,
java的doc和jar文件
doc
package _02_GUI;
/**
* @author Xiaoyi
* @since v0.1
* @see
*
*
*
*/
public interface Walkable {
/**
* 表示行走的功能
*/
void walk();
}
package _02_GUI;
/**
* @author will
* @since v0.1
* @see
*
*
*
*/
public class Tiger implements Walkable {
@Override
public void walk() {
System.out.println("我可以行走了");
}
/**
*
* @param num1 第一个加数
* @param num2 第二个加数
* @return
*/
public int getSum(int num1,int num2){
return num1+num2;
}
}
jar
表示多分的字节码文件的压缩包
1,普通的jar:不是用来做运行的,而是字节码的合体,为了复用性 (jar文件放入lib 然后Build path)
2,可运行jar java -jar jar文件名
安装eclipse的插件
OpenExplorer
1:放入plugins文件夹
2:放入dropins文件夹
3:dropins中新建eclipse再新建plugins,然后存放这个插件文件
4:link方式 在dropins目录中创建快捷方式.link 内容是 path=d:/ttt/插件文件夹 文件夹下面是是eclipse/plugins/插件文件 绝对路径
路径中必须使用/或者\\,不能使用\
字符串
字符串就是一串字符,查看源码得知本质是char数组
字符串的分类:
1:不可变字符串: String
2:可变字符串:StringBuffer/StringBuilder
String类字符串
不可变的字符串,一个String对象只能表示一个固定的字符串,若内容改变,则对象也改变.
String对象的创建:
直接赋值字面值String str = "123";
使用构造器创建String str2 = new String("123");
String对象的空值
""和null的区别
String相关面试题
一
String str1 = "ABC";
String str2 = new String("ABC");
上面两行代码分别创建了几个对象
第一行代码创建了0个或者1个String对象
第二行代码创建了1个或者2个对象
二
String str1 = "ABCD";
String str2 = "A" +"B"+"C"+"D"; // 编译器优化之后,该代码等价于 str1.
String str3 = "AB"+"CD";
String c = "CD"; String str4 = "AB" + c;
String str5 = "AB" + getXX(); //(备注:getXX方法返回"CD");
String对象比较:
ü1):单独使用""引号创建的字符串都是直接量,编译期就已经确定存储到常量池中;
ü2):使用newString("")创建的对象会存储到堆内存中,是运行期才创建;
ü3):使用只包含直接量的字符串连接符如"aa" +"bb"创建的也是直接量编译期就能确定,已经确定存储到常量池中;
ü4):使用包含String直接量(无final修饰符)的字符串表达式(如"aa" +s1)创建的对象是运行期才创建的,存储在堆中;
-----------------------------
比较字符串: ==:只能比较内存地址,若要比较内容:equals.
String的常用方法
String工具类package _03_String; public class StringDemo { /** * @param args */ public static void main(String[] args) { String str = "abcdefghja"; System.out.println(str.charAt(0)); System.out.println("----------------------------------------"); //是否以a为开始的 str.startsWith("a"); //是否是以j为结尾的 str.endsWith("j"); //比较字符串 str.equals("abcdefghj"); //比较字符串,忽略大小写 str.equalsIgnoreCase("Abcdefghj"); //判断是否为空 str.isEmpty(); //返回a在此字符串第一次出现的位置 str.indexOf("a"); //返回a在此字符串最后一次出现的位置 str.lastIndexOf("c"); //字符串长度 str.length(); //替换 String str2 = str.replace("a","b"); System.out.println(str2); //replaceAll String str21 = str.replaceAll("cde", "1"); System.out.println(str21); //分割 String str3 = "a,b,c,d,e,f"; String[] strarr = str.split(","); String str5=""; for (int i = 0; i < strarr.length; i++) { System.out.println(strarr[i]+str5); } System.out.println(str5); //截取 System.out.println("abcdhfg".substring(2)); //大小写转换 "AB".toLowerCase(); "ac".toUpperCase(); //trim System.out.println(" ".trim()); } }
StringBuffer以及StringBuilderpublic class StringUtil { private StringUtil(){} //字符串即不为null也不为"" 是的话返回false public static boolean hasLength(String str){ return str!=null && !"".equals(str.trim()); } //判断字符串为空 为空返回true public static boolean isBlank(String str){ return !hasLength(str); } }
StringBuffer :线程安全性较高,但是性能低
StringBuilder :线程安全性低,但是性能较高 推荐
多线程使用StringBuffer,单线程使用StringBuilder
append();
StringBuilder和StringBuilder有初始化个数,也可以指定