java从入门到精通

jdk的工具库主要包含了9个基本组件

javac编译器,java执行器,执行字节码(.class)文件,jar打包工具,将相关的类文件打包为一个.jar包

javadoc文档生成器,jdb调试器,可以设置断点和检查变量,javah可以产生调用Java过程的c过程,或者建立可被Java调用的c过程的头文件

javap反汇编器,显示字节码文件的可访问功能和数据,显示字节码的含义

jconsole进行系统调试和监控的工具

如何学习好java,编写代码, 发现问题,解决问题,自我能力得到提升

属性注释/**提示信息*/,方法内部注释//

类注释,构造方法注释

/**

*/

字符型赋给整型会直接转化为ASCII码,(char)(82-32)会将ASCII码转为字符,布尔型的取值有true或false,也只能是true或false

浮点数常量都要使用f后缀,例如float f = 20.0f

for(String str:names){

System.our.println(str);

}

父类中没有子类的方法,调用该方法时则必须向上转型再向下转型

Animal a = new Dog();

Dog d = (Dog)a;

d.父类中没有的子类方法

抽象方法必须为public或protected,可以包含普通方法,抽象方法为abstract

接口的常量默认为public static final

接口的方法默认为public abstract

接口的方法可以用static修饰

接口的适配,实现一个接口必须实现该接口中的所有方法,因此可以用一个抽象类实现该接口,定义空接口方法,再用类继承该抽象类

接口  对象 = new 类()向上转型即可

嵌套接口,类中和接口中都可以嵌套接口

class A{

public interface D(){

}

public class d1 implements D{

}

public class d2 implements D{

}

public D getD(){

return new d2();

}

public void receive(D d){

d.方法();

}

}

A a1 = new A();

A a2 = new A();

a1.receive(a2.getD());

接口回调

调用类          接口

                     实现类

调用类的方法参数是接口数据类型,输出接口调用的方法,再使用时,实例化调用类对象,传递给方法不同的new实现类实例

 

字符串

分割字符串

String ss ="one little,tow little,three little.";

String []str = ss.split("[ ,.]");

正则

Pattern p = Pattern.compile(“ABC*");

Matcher m = p.matcher("abcdefg");

pn(m.find());

将基本数据类型转化为字符串

String.valueOf(基本数据类型);//包括char []数组

字符串格式化

String.format("%o",32);//32的八进制

String.format("%1$d,%2$s,%3$f",125,"ddd",0.25);

字符串类

StringBuilder单线程,StringBuffer多线程,比String快n倍,也可以在字符串指定位置插入字符串

 

常用类,包装类Boolean,Integer,Character,Number

DecimalFormat类可以快速的将数字格式化

new DecimalFormat("0.00").format(PI);//包括,###和#,##%

时间

Date date = new Date();

date.toString();

输出格式时间sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String s = sdf.parst(date);

获得时间细节信息

Calendar c = Calendar.getInstance();

int year = c.get(Calendat.YEAR);

随机数字和数学Math有数学的一系列静态方法,Math.pow幂次方

Random随机数,Random r = new Random();r.nextInt(2);取值[0,n)

 

接受用户输入

Console cons = System.console();

String username = cons.readLine("user:");

String password = cons.readPassword("password:");

或者

Scanner sc = new Scanner(System.in);

if(sc.hasNext()){

String str = sc.next();

pn(str);

}

next()不能得到带有空格的字符串,所以需要应用nextLine();

枚举

public enum E{

MON,TUE

}

E e = E.TUE;

switch(e){

case MON:

break;

case TUE:

break;

}

 

Error是JVM出错,用户无法处理

Exception用户可以进行处理,所有的异常都是Exception的子类

当方法用throws时,调用时,不管是否产生异常,都应采取异常处理

也可以自己抛出异常,throw new Exception("自定义异常")

自定义异常,继承Exception,重写构造方法

public 构造方法(String msg){

super(msg);

}

assert可以终止程序的执行,score必须大于等于0,不能为负数,不然会终止程序执行和发出提示信息

assert score>=0:成绩不能为负

 

如果switch没有break,则会执行这个case后的其他代码,而不管case是否匹配,直到遇到了break

泛型类

class A<T>{

public T indexOf(int i){

return (T)arr[i];

}

A<String> a = new A<String>();

或者new A<>();

泛型方法

public static void print(T t){

pn(t);

}

print("apple");print(123);

泛型接口

interface 接口名<类型参数列表>

class 类名<类型参数列表> implements 接口名<类型参数列表>{}

只希望接受该父类下的子类

class A<T extends Number>{}只希望接受数字

 

Lambda表达式,就是由接口调用函数过程

interface Ia{

void say(String msg);

}

Ia a = msg->System.out.println(msg);

a.say("hello lambda");

lambda多用于向方法传递参数,例如forEach等

 

java8可以向接口传递方法引用

接口 in2 = Integer::valueOf;或者Fruie::new

直接in2.接口中的方法例如interNew(int num),就可以将其转化为字符串,或者调用构造函数

 

集合的几种遍历方法

for(Iterator <String> iter=ll.iterator();iter.hasNext();;){

String str = (String)iter.next());

}

Iterator iter=c.iterator();

while(iter.hasNext()){

String str=iter.next();

}

for(String s:ll){

pn(s);

}

c.forEach((key,value)->pn(key);pn(value);});

Map的keySet()遍历键,values()遍历值

for(Map.Entry<String,String> entry = map.entrySet()){

pn(entry.getKey();

pn(entry.getValue());

}

 

注解

jvm没有定义无参构造函数就定义重载构造函数会报错,需定义

@Override这个方法必须是对父类方法的重写

@Deprecated注解不再使用的类方法,或者属性

@SuppressWarnings抑制编译器生成警告信息

@SuppressWarings(value={"已过时"})

 

元注解

@Target({ElementType.METHOD})

public @interface Method{}

则@Method注解表明的是方法,ElementType有多个属性有不同的含义

@Retention(RetentionPolicy.RUNTIME)运行时有效

@Documented将通过javadoc和类似的默认工具进行文档化

 

@Inherited

public @interface Inherite{

String inher();

}

@Inherite(inher="继承")

则应用于父类该注解时,它的子类就会应用该注解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值