已经学习了一个多月,从基础班到就业班,可以说是越学越有难度,有人问我,学的怎么样,现在应该入门了吧,我就在回想,我到底学了些什么,不想不知道,一想吓一跳,自己都摸不到头脑,我学了什么,自己都搞不清什么叫入门,把资料打开一看,一天一天的看两眼,才知道上了什么知识。
在上就业班后,一共上了14天的课程,特别是后面几天,感觉很难,第一天学的是Object类,这是一个根类,里面还学到了几个类,有一个有意思的类:时间日期类,他可以很快速的每个人出生了多少天等一系列问题,老师上课就开玩笑说,假如有一天你女朋友问你我们认识了多少天啊,如果你有这么一段程序就能立马告诉她,不用慢慢算了,这只是一个玩笑话,但体现了这个类的好处。接下来三天都学习的是集合,因为在基础班已经接触了Arraylist集合,所以这里理解起来比较容易,唯一一个不一样的是学习了一个双列集合,他们有各自的特点,双列集合有键值对,集合和数组最重要的是遍历,才能拿到里面的内容。在基础班学习了循环遍历,for循环遍历集合数组,在就业班学习了两个新的遍历方式,因为在就业班学的有些集合是没有索引的,所以引进了这两种遍历方式,这两种遍历方式比较简易,在双列集合中遍历麻烦一点,因为它是键值一一对应的,需要通过用键来获取值,但只要掌握了遍历的步骤,还是比较简单的。在学完集合后就感觉越来越难了,在第五天接触到了异常和线程。异常就是一个类,用其中的api来对异常进行处理,异常分为两种,运行期异常和编译期异常,处理异常有两种方式,要么throw,要么try catch,在以后从事开发行业中,后者用的居多,try...catch的执行顺序:首先执行try语句,如果发现异常,异常下面的代码不在执行,直接跳入catch语句中,catch语句结束后,整个try...catch结束,如果没有发现异常,try语句执行结束后,try...catch直接结束, 不在执行catch语句。而throw相对于容易一点,如果多个异常就直接抛出根部异常,抛给jvm去处理。第六天主要接触的是线程,因为为了提高效率,所以提出了多线程,用它来实现,多线程开启的方式也有两种,第一种是Thread类,重写里面的run方法,然后依赖于它的start方法,同样在第二种runnable类中也是依赖于start方法,但后者相对于前者有两个好处:避免单继承的局限性,将线程启动和业务进行分离,可以方便对业务进行维护和扩展(松耦合),同时可以进行多线程公有数据的共享。所以后者用的比较多,为了解决多线程安全问题,就有其解决方案,锁机制,其中有同步代码块,同步方法,lock锁。在第七天学习了非常重要的一个知识,等待机制唤醒。因为在开发中,肯定会出现多线程互相执行的先后顺序,这就要用到等待唤醒机制。在以后的公司里肯定会用到File类,因为每个人写各自的代码,会用到其他人的,所以会对文件进行处理,这就产生了这个类,会很方便的拿到想要的代码。在接下来的五天中,学习了流:四个基础流,四个缓冲流,两个转换流,其中有一个很重要的方法,就是close方法,这些流也能对文件进行各种处理,很重要的是文件的拷贝,要理解其中的操作,主要是一读一写。网络编程主要是进行多台设备的数据交互,它有三要素:IP,端口号,通讯协议。非常重要的是文件上传,掌握如何实现客户端和服务器之间的数据交互,还会用到前面学到的几种流。因为在工作中不可能只用到一个文件,并且服务器不会只执行一个任务,所以进行了优化,使用多线程开发就会解决这一问题。这几天中反复学习到lambda表达式,在目前这几年中,基本用不上,因为大部分公司中用的还是匿名内部类,但lambda表达式看着简单,但是接触后感觉有些难。在最后一天学习了反射,这算是一个难点,并且非常重要。它的好处是打破原本类中内容访问的局限性,降低程序的耦合,从而提升程序的扩展和维护。
在接下来的几个月的学习生涯中,希望自己能够沉下心来,舍弃掉一些不必要的东西,好好学点知识,为以后打下基础。
|
|