发表于: 2018-03-25 10:45:06

2 503



eighth-day



昨天主要看了下反射和线程部分,反射基本上看懂了些,然后结合API去看方法。线程这块,没看懂多少,晦涩难懂,写写程序着再看吧,不认好多东西没弄明白,事倍功半,不好。

今天路上碰到一块提示牌(马路牙子在整修)挺不错,内容是: 今天的不便,明天的方便。做工程也是这个道理,有问题提前搞,有难题提前搞定,设计好,哪怕是痛点,累点,要不然每天看到就跟吃了个苍蝇似的,早早的把苍蝇清理走。


今日任务:


1. 回顾下

2. 今天对照着资料看看Spring,maven和mybatis

3. 书籍阅读

4. 反射剩下的部分继续看


学习轨迹:


分为四部分:反射  Spring  mybatis 读书


第一部分: 反射

1.1 异常java.lang.IllegalArgumentException: Wrong number of arguments 参数不合法异常——参数的个数不对,昨天竟然没注意到,今天早上一运行才注意到



1.2 昨天遇到了 getConstructors() 这个方法返回的数组顺序和Person类中声明顺序不一致,于是又继续查其他方式,而且在API中没有看到类似的说明,因为我是java 8 我特地将文档切换到了 https://docs.oracle.com/javase/8/docs/api/,

在 8 的文档中有这么一句:Throws: SecurityException - If a security manager, s, is present and the caller's class loader is not the same as or an ancestor of the class loader for the current class and invocation of s.checkPackageAccess() denies access to the package of this class. 没看懂,但是应该是解释这个顺序的事情 ...

解决方案:换成 getConstructor() 方法,然后通过 newInstance(Object ... initargs) 这个方法根据传入不同的参数类型来进行获取指定参数的对象


1.3 返回一个类实现的接口:

第一步复习了接口这个概念以及类 实现多个接口:

China interface 

S

ShanDong interface


Person 实现这两个接口,接口之间用 “,”隔开

获取Person Class 实现的接口:

拓展找几个JDK中的类看一下他们实现的接口:

Thread :

java.lang.String 类:

这种相互认证的方式给人以愉悦心情,反射就是这么奇妙。



1.4 接口的继承,在搜索问题的时候遇到了就看了下,这里遇到了API的问题

示例中 Base.64.encode(result)没有这个方法...通过查看文档知道

已经换了,so

确实,这样就有个问题,如果你要写一些博客一类的东西在网上,最好写上JDK的版本,否则真的有时候是一头雾水。


1.5 通过反射获得父类,获取所有构造函数,获取所有属性(分为本身和父类),调用方法 .... 

到这里,反射的基本用法已经知晓,后面如果遇到需要使用反射的地方可以去查API文档了。以上参考https://blog.csdn.net/qq_27093465/article/details/52254924。API:java.lang.reflect: https://docs.oracle.com/javase/8/docs/api/ 

还有这篇:https://blog.csdn.net/AlbenXie/article/details/70225353,当然又引入了新的概念的东西Hibernate,这个应该是数据库的面向对象操作类。


第二部分:Spring 

开源就是好,啥都敢给你看,Java的确强大。

Spring 没怎么看明白,虽然知道是分层用的框架,但是现在还不没见到要分层的东西,考虑下一步该怎么走 ... ... 


要解决的问题:

1. 方法总比困难多

1. 方法的参数动态变化待研究下(在看反射调用方法的时候,看到getMethod第二个参数个数是可以变的,nice)

思想汇报:

1. Java 类单继承,接口多继承思考:

Java 中的继承是单继承,但是可以通过接口实现多继承,那么 Java 为什么不能通过类的方式直接实现多继承呢?接口的方法都是抽象,如果同时实现的两个接口中的方法一样,那么没问题,但是类就不一样了,如果两个父类拥有同样的方法,那么子类必然不知道到底实现那个父类的方法了,但是Java为啥不发明一种语法规则来规避这种问题呢?其他语言里有多个继承的又是怎么实现的呢?C++去看看怎么实现的

2. 如果以后写博客,包括平常记录,要记录好自己使用JDK的版本,否则好多东西一脸懵,当然这也说明了一个团队中开发,到底用哪个版本的要统一

3. 反射:以字符串的方式去获取我们想要的到的类的信息,功能强大,解耦开发

4. JDK是最好的参考资料

5. 功力太浅 Spring 看的有点乱七八糟的,调整方向。 Java 是用来处理事情的,到目前为止基本语法已经OK,接下来通过练习和处理数据进行学习

学习资料汇总:

1. CSDN Intellij Idea 汇总 【https://blog.csdn.net/column/details/15222.html?&page=3

明日计划:

1. 坚持

DONE!


返回列表 返回列表
评论

    分享到