- 相关推荐
java读书心得
当我们备受启迪时,就十分有必须要写一篇心得体会,这样可以记录我们的思想活动。相信许多人会觉得心得体会很难写吧,下面是小编收集整理的java读书心得,欢迎大家分享。
java读书心得1
本书是一本与众不同的Java入门好书。作者以独特的.视角,向Java初学者讲述了如何才能真正理解和掌握Java语言。本书分3篇。第1篇为Java语言基本语法,包括Java语言概述、配置开发环境、Java中的基本数据类型、Java运算符、Java流程控制语句和数组。
第2篇为Java语言高级语法,包括类、对象、方法、继承、多态、修饰符、接口、抽象类、内部类、Java异常处理和多线程编程。
第3篇为Java语言编程进阶,包括Java编程常用知识、Java文件编程、Java文件I/O编程、Java TCP编程、Java UDP编程、Java Swing编程、JDBC编程,最后还给出了一个聊天程序实例和一个数据表操作窗口实例,将Swing、UDP、Java集合类、线程同步、接口和JDBC编程有机地结合起来,展示了开发一个简单程序的典型步骤。
java读书心得2
一本700多页的书,读了19.5个小时,当然光是读书中内容肯定用不到这么长时间,近一半的时间是用来做笔记,以及敲书中的代码;自己在并发编程知识一直空缺,所以这本书对自己而言还是蛮有用的,算是对Java的并发编程有一个整体的认识,部分技术细节原理也能够说得上来,但深入理解还需要大量的实践;可能是由于我实战经验不足,整本书给我的感觉属于“头重脚轻”型,前三章将的知识特别深,例如:sychronized和volatile关键字时已经涉及到了C的部分代码,而后面9章内容则相对较潜,例如线程池那块只是简单讲了它的组成元素(个人认为实际应用中线程池应该是用的最多的地方),可能是作者认为将前面的内容理解后后面的内容自然就理解了,所以后面部分的笔墨较少;如果有一个能够将书中大部分知识点串起来的例子就更好了;
读本书之前,你要问我并发编程,我可能零散的回答一些如:多线程的实现,然后再谈谈sychronized以及volatile关键字区别,线程的状态,线程之间的通讯等知识点。读完这本书之后,我会试着通过回答这几个问题来谈谈Java并发编程:
1、为什么要“并发”,“并发一定好吗”?
为了充分利用CPU计算资源
并发多不一定好,因为线程之间的切换也需要一定的开销
2、Java中如何实现并发编程?
通过继承Thread类
和实现runnable接口
谈谈两者实现方式的异同
3、如何保证并发编程安全性?
保证安全性其实就是说:如何保证一个线程修改共享资源之后其他的线程能够看见这个线程的修(可见性)改,并且一个线程修改共享资源的操作是不可被打断的(原子性)。
可见性:可以通过volatile关键字修饰共享资源得以保证
原子性:通过cas操作,以及锁
既能保证可见性又能保证原子性:通过锁实现synchronized重量级锁可重入lock接口的实现锁可重入,可中断谈谈线程之间的通讯,wait()和notify();condition.await()和condition.signal()
4、最后谈谈Java并发编程的利器---线程池技术?
本质上就是一个生产者和消费者模型;生产者是我们要执行的任务(由用户创建),消费者是执行这些任务的线程(由线程池创建的`);
核心组成:最大线程数,核心线程数,线程最大空转时间,阻塞队列(用来存储任务的),拒绝策略。
思想上和现在很热的云计算如出一辙,只不过云计算的池子里存储的是计算,存储,网络资源,而线程池里面存储的是线程资源;当有任务来临时,我们先看看池子里有没有闲着的线程,如果有执行将这个任务拿去执行,否则,看当前线程数是否达到最大线程数量的,如果达到则看阻塞队列是否还有空间,没有则新建线程去执行该任务,如果没有则根据我们的拒绝策略采用一定的措施;当池子中的某一个线程完成任务后会主动去队列获取任务执行。
可以再谈谈具体四种线程池的区别,阻塞队列(通过锁实现)和非阻塞队列(通过cas操作实现)的区别以及实现原理,拒绝策略的具体内容等
编程路漫漫,需要学习的东西还有很多,加油!
java读书心得3
首选很感谢Joshua Bloch写的这本书,当然更感谢我们的司令翻译。至少目前我看到的100页的内容,基本没发现翻译很别扭的地方,包括错别字也没有发现,至少没有影响到我对书中内容的理解。再次感谢。
在后面的读书心得里,我会根据我的个人理解,将书中的各个知识点逐个和大家分享。 书中的一些观点我也不是完全赞同的,呵呵(估计是我的水平不够,呵呵呵)。
我们先看全书第一个问题:考虑用静态工厂方法代替构造器。
也就是,不再使用 new 这种方式来获得一个类的实例,而是通过工厂方法获得。
优点:
1 有名字
这个我体会还是比较深的,在JDK里,我见过一个类的最多的构造器数量,有16个。大家可以看看 Java.math.BigDecimal 这个类就知道了。
就算一个类的构造器有4个左右,我想你很可能在使用的时候会极其注意,不要选错了到底是用哪一个。
所以,如果能提供一个很好命名的方法来实现构造类,确实是一个不错的.主意,比如
BigDecimal.getInstanceFromString(...); 我想这个名字虽然有点垃圾,但要表达的意思确实异常的明确。
在一些第三方的库里面,这种情况更加突出。我许多时候不得不看看API文档,来区分我的那个int参数到底是使用三个参数的构造器,还是使用四个参数的构造器。因为他们太像了。
2 可以单例
这个就不用说了,你可以在方法里干你要做的任何事情,而new绝对会给你一个新的实例。
3 可以返回任何子类型。
这个对于系统的扩展是很有用处的。new 已经决定了你肯定要这个类,而静态方法却可以修改,不一定肯定返回你方法所在的类,可以在必要时替换为一个子类。
4 代码简便
这点我体会不深,呵呵
不过这个写法我确实经常用
List list = new ArrayList;
后面的那个ArrayList里面的 String就是一个例子吧。不过我倒是不是很在意这个,因为我很喜欢这样写了。
下面这个例子看上去确实不错。呵呵!
[java] view plain copypublic class Test extends Thread {
public static void main(String args) {
Test te = Test.newInstance;
}
public static Test newInstance {
return new Test;
}
}
【java读书心得】相关文章:
读书心得03-24
读书心得05-29
世界读书日读书心得04-06
方与圆读书心得06-01
名著读书心得06-20
童年读书心得05-10
《简爱》读书心得05-14
大学读书心得07-08
《活着》读书心得07-20
《项链》读书心得07-24