一、如何生成jar包:java
在eclipse中,选中要导出内容,右键export---->Java---->Jar File程序员
在弹出的框中,选择要生成的文件路径,点击finish数组
二、第三方Jar包:eclipse
Jdk开发商是第一方、程序员做为用户是第二方,开源社区、组织或者其余公司均可以认为是第三方ide
一旦将第三方的jar包导入到咱们的工程中来,就可使用第三方开发好的全部功能ui
三、导入第三方jar包:编码
一、在工程下新建一个目录(专门用于存放第三方jar),命名为libspa
二、将下载好的第三方jar包,拷贝到lib目录中code
三、将导入的jar包添加到Build Path中(鼠标右键,选择build path----> add to build path)对象
四、看到奶瓶状的标记出现,就说明该jar包中的全部类型能够直接使用了
四、使用第三方jar包,查看原码:
一、使用鼠标右键,选择Open declaration
二、使用快捷键F3
三、使用键盘ctrl + 鼠标左键
五、关联源代码:
Attach Source ---->external File或者Folder---->找到原码所在的目录便可
一、Object类是所类型的顶层父类,全部类型的类直接或者间接的父类,全部的类型中都含有Object类中全部的方法。
class Animal{}
class Dog extends Animal{}
二、随意定义一个类型,不手动显定义其父类,那么这个类的父类是Object类
三、Object类的构造方法 Object()
1.能够本身建立对象
2.让子类访问
3.Object类在执行构造方法时,不去访问本身的父类,由于没父类了。
四、Object类的经常使用方法
1.getClass()方法
返回当前 对象的运行时类
运行时类:真正建立对象所使用的那个子类类型。
返回值:Class类型的对象。
2.hashCode() 方法
1.根据对象的状况,生成的一个整数,就是哈希码值,生成数字的方法 就是hashCode()
2.注意事项
同一个对象屡次调用hashCode方法,返回相同的整数。
3.String toString()
返回该对象的字符串表示。
1.Object类型中,这个方法的实现,全类名+@+哈希码值的十六进制表示
getClass().getName()+"@"+Integer.toHexString(hashCode())
2.打印对象,默认会调用toString()
3.重写的原则:返回该对象中的全部的成员变量的值(对象的属性)
4.boolean equals(Object obj)
指示其余某个对象是否与此对象“相等”。
Object类中的equals方法比较是两个对象的地址
若是比较其它内容,须要重写equals方法。
5.== equals方法的区别
1.两种都是用于比较数据是否相等。
2.不一样点:
1.比较内容不一样:
==能够比较任意数据类型,既能够比较基本数据类型,也能够比较引用数据类型。
equals()只能比较引用数据类型。
2.比较规则不一样:
==在比较基本数据类型的时候,比较的是数据的值,比较引用数据类型时,比较的是地址值
equals方法在重写以前,比较是两个对象的地址,在重写以后,比较的是本身定的规则。
一、Scanner就是一个扫描器, 能够扫描指定设备的基本数据和字符串
二、构造方法
Scanner(File source):扫描指定的文件
Scanner(String path):扫描指定的路径
Scanner(InputStream source):扫描指定的输入流
System.in属于InputStream类的对象,默认关联键盘
三、录入基本数据类型
1. nextByte():获取一个byte数据
nextShort()
nextInt()
nextLong()
nextFloat()
nextDouble()
nextBoolean()
2.注意事项
1.nextChar()没有这个方法
2.键盘录入的是数据,不是java代码,因此float类型的常量不须要加f.
3.一次想录入多个数据,可使用空格进行分隔
四、录入字符串
1.next(): 空格来分隔每一个字符串
2.nextLine():换行来分隔字符串
五、Scanner注意事项:
之后尽可能不要交叉使用空格和换行标志分隔。
六、小问题
问题:当你调用完以空格做为分隔符的方法以后,再调用一个以换行符为分隔符的方法时,这个方法不会等待你继续录入,而是直接结束程序,若是打印返回的内容,就是一个空字符串。
缘由:
1、键盘录入123以后,其实你录入的是123+一个换行符,当使用nextInt方法以后,将123这三个字符解析成一个int类型的数字,获取到内存的变量中,在Scanner对象中,留下了一个换行符,下次再调用nextLine,这个方法是以换行符做为分隔符,在分隔符前面只剩下了一个空串,将空串返回,因此不须要等待用户继续录入了。
2、键盘录入123以后,其实你录入的是123+换行符,当使用nextInt方法以后,将123这个数字解析成一个int类型的数字,获取到内存的变量中,在Scanner对象中,还剩一个换行符,再次调用nextInt方法时,发现只剩一个空串了,没法解析成一个int类型的数据,只能等待用户继续录入。因此不会出现上述问题。
3、键盘录入abc以后,其实你录入的是abc+换行符,当你使用nextLine方法以后,将换行符前面的全部数据都解析成一个字符串,所以换行符前面就没有任何须要解析的数据了,若是再次调用nextLine,只须要到换行符以后寻找,只能继续等待用户录入了。(其实就是nextLine方法一碰到换行符就跳过了)
解决方式:
1、连续两次调用nextLine,第一次会将空串略过,第二次就会等待用户录入
2、建立两个Scanner对象,新的Scanner对象中没有上次录入的数据,是干净的,因此不会影响下次的录入。
3、全部的录入都以字符串的形式录入到内存中,而后再进行数据类型之间的转换
一、String就是一个字符串类型,属于java.lang包,不须要导包
二、全部的字符串常量("helloworld","abc"),都属于字符串对象
三、字符串的字面属于常量,存储在方法区的常量池中。
四、String类型是一个常量,在建立以后就没法更改。日常见到的改变是从新赋值新地址
五、由于没有提供set方法
六、String类型的构造方法
1.String():建立一个空字符串
2.String(String original):建立参数字符串的一个副本(参数字符串在常量池中,构造方法建立的字符串在堆内存中)。
3.String(byte[] bytes) :将一个字节数组转一个字符串
将咱们不认识的字节数组,转成了咱们认识的字符串,过程叫解码。
查询的是当前平台默认的编码表。
4.String(byte[] bytes, int offset, int length)
5.String(char[] value):
6.String(char[] value, int offset, int count)
七、String中经常使用的方法
1.判断功能
boolean equals(Object anObject) :比较字符串自己
boolean equalsIgnoreCase(String anotherString)
boolean contains(CharSequence s)
boolean startsWith(String prefix)
boolean endsWith(String suffix)
boolean isEmpty()
2.判断功能练习
模拟用户登陆:
正确的用户名是admin,密码是123
键盘录入用户名和密码,一共三次机会,若是录入错误,前两次提示还有几回机会,
最后一次提示"帐号已被锁定"
录入正确,提示“登陆成功”
import java.util.Scanner; /* * 模拟用户登陆: 正确用户名是admin,密码是123 键盘录入用户名和密码,一共有三次机会,若是录入错误,前两次提示还有几回机会 最后一次提示“登陆机会已经用完” 录入正确,提示“登陆成功” */ public class Demo02 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int count = 3; boolean flag = true; while(flag){ if(count>0) { System.out.println("请输入用户名:"); String userName = sc.nextLine(); if(userName.equals("admin")) { System.out.println("请输入密码:"); String code = sc.nextLine(); if(code.equals("hao123.com")) { System.out.println("登陆成功"); break; }else { count--; System.out.println("密码错误,还有"+count+"次机会,请从新输入"); } }else { count--; System.out.println("用户名错误,还有"+count+"次机会,请从新输入"); } }else { System.out.println("三次机会以用完,是否从新输入?1:继续,0:退出"); int a = sc.nextInt(); if(a==1) { count = 3; }else{ break; } } } sc.close(); } }
3.String类型的获取功能 int length() char charAt(int index) String substring(int beginIndex, int endIndex) int indexOf(String str) "aabbacc" 4.String类型的转换功能 byte[] getBytes(String charsetName) char[] toCharArray() String toUpperCase() String toLowerCase() String concat(String str) static String valueOf() 5."i lOVe jAva"-->"I Love Java" splite(" ") 6.String类型的其它的方法 String replace(char oldChar, char newChar) String trim() " ab c "-->"abc" //去掉字符串左右两边的空格、制表符