大理java学习心得

  1999年4月27日,HotSpot虚拟机发布。HotSpot虚拟机发布时是作为JDK 1.2的附加程序提供的,后来它成为了JDK 1.3及之后所有版本的Sun JDK的默认虚拟机。   2000年5月,JDK1.3、JDK1.4和J2SE1.3相继发布,几周后其获得了Apple公司Mac OS X的工业标准的支持。2001年9月24日,J2EE1.3发布。2002年2月26日,J2SE1.4发布。自此Java的计算能力有了大幅提升,与J2SE1.3相比,其多了近62%的类和接口。在这些新特性当中,还提供了广泛的XML支持、安全套接字(Socket)支持(通过SSL与TLS协议)、全新的I/OAPI、正则表达式、日志与断言。2004年9月30日,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1.5更名为Java SE 5.0(内部版本号1.5.0),代号为“Tiger”,Tiger包含了从1996年发布1.0版本以来的最重大的更新,其中包括泛型支持、基本类型的自动装箱、改进的循环、枚举类型、格式化I/O及可变参数。   2005年6月,在Java One大会上,Sun公司发布了Java SE 6。此时,Java的各种版本已经更名,已取消其中的数字2,如J2EE更名为JavaEE,J2SE更名为JavaSE,J2ME更名为JavaME。   2006年11月13日,Java技术的发明者Sun公司宣布,将Java技术作为免费软件对外发布。Sun公司正式发布的有关Java平台标准版的第一批源代码,以及Java迷你版的可执行源代码。从2007年3月起,全世界所有的开发人员均可对Java源代码进行修改。   Java创始人之一:詹姆斯·高斯林

  事务将数据库从一个一致状态转移到另一个一致状态   ③:Isolation【隔离性】   所谓的独立性就是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个   事务修改,只要另外一个事务还未提交,它所访问的数据就不受未提交事务的影响。换句话说,一个事   务的影响在该事务提交前对其它事务是不可见的

  在开发多线程的代码的时候,我们可以直接使用synchronized等关键字来控制并发,从来就不需要关心底层的编译器优化、缓存一致性等问题。所以,Java内存模型,除了定义了一套规范,还提供了一系列原语,封装了底层实现后,供开发者直接使用。   本文并不准备把所有的关键字逐一介绍其用法,因为关于各个关键字的用法,网上有很多资料。读者可以自行学习。本文还有一个重点要介绍的就是,我们前面提到,并发编程要解决原子性、有序性和一致性的问题,我们就再来看下,在Java中,分别使用什么方式来保证。   原子性   在Java中,为了保证原子性,提供了两个高级的字节码指令monitorenter和monitorexit。在synchronized的实现原理文章中,介绍过,这两个字节码,在Java中对应的关键字就是synchronized。   因此,在Java中可以使用synchronized来保证方法和代码块内的操作是原子性的。

  领取方式:   1,转发本文   一转眼从事Java开发已有8年,前两天公司一位初入职场的同事希望我给一些建议与经验。我觉得这个话题很有价值,这里以个人的想法与经历写成此文,希望给年轻的开发者们一些启发。   在技术领域,有太多的东西会迅速的过时,如何利用有限时间,最大化你的长期收益?这里我可以给出7条建议,文末还整理一份专门帮助年轻程序员的300集java自学教程,需要的小伙伴可以跳到文末免费获取。   工欲善其事,必先利其器。每个开发者都应该有一把自己的瑞士军刀,在将来漫长的职业生涯中,这些工具可以为你省下宝贵的时间,并帮助你更好的组织个人知识库。举两个例子

  在 Java 语言中,可作为 GC Root 的对象包括以下4种:   虚拟机栈(栈帧中的本地变量表)中引用的对象   方法区中类静态属性引用的对象   方法区中常量引用的对象   本地方法栈中 JNI(即一般说的 Native 方法)引用的对象

  "VM Periodic Task Thread" prio=3 tid=0x0000000101238800 nid=0x19 waiting on condition   # HotSpot GC 线程   当使用 HotSpot 进行并行 GC (如今在使用多个物理核心的环境下很常见), 默认创建的HotSpot VM 或者每个JVM管理一个有特定标识的GC线程时. 这些GC线程可以让VM以并行的方式执行其周期性的GC清理, 这会导致GC时间的总体减少;与此同时的代价是CPU的使用时间会增加.   "GC task thread#0 (ParallelGC)" prio=3 tid=0x0000000100120000 nid=0x3 runnable"GC task thread#1 (ParallelGC)" prio=3 tid=0x0000000100131000 nid=0x4 runnable………………………………………………………………………………………………………………………………………………………………   这事非常关键的数据,因为当你遇到跟GC有关的问题,诸如过度GC、内存泄露等问题是,你将可以利用这些线程的原生Id值关联的操作系统或者Java线程,进而发现任何对CPI时间的高占用. 未来的文章你将会了解到如何识别并诊断这样的问题.

  结果按百分制处理后,求出与100的差为最终成绩   当然本对比可能不是严谨科学,仅供参考。   附测试代码:   public static void testRandom(String method) {   RandomGenerator obj=new RandomGenerator();

  你的JVM可以驻留在许多的操作系统 (Solaris, AIX, Windows 等等.)之上,并且能根据你的物理服务器配置,你可以在每台物理/虚拟服务器上安装1到多个JVM进程.   JVM与中间件之间的交互   下面这张图展示了JVM、中间件和应用程序之间的高层交互模型。   图中展示的JVM、中间件和应用程序件之间的一些简单和典型的交互。如你所见,标准Java EE应用程序的线程的分配实在中间件内核与JVM之间完成的。(当然也有例外,应用程序可以直接调用API来创建线程,这种做法并不常见,而且在使用的过程中也要特别的小心)   同时,请注意一些线程是由JVM内部来进行管理的,典型的例子就是垃圾回收线程,JVM内部使用这个线程来做并行的垃圾回收处理。


  如果你想进入IT行业,通过学JAVA入场是不错的选择,一方面虽然学习的人多,但是JAVA应用面广,需求也大,相比其他语言,就业相对也容易些;另一方面JAVA的生态比较健全,有丰富的学习资料,为你的快速成长提供了很多便利。   可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。   有不少朋友问,除了掌握Java语法,还要系统学习哪些Java相关的技术,今天分享一个,互联网Java技术学习路线图。   乐字节小乐上次讲完了Java反射,接下来小乐给大家讲述Java循环。   循环有以下四部分:


  5、见鬼了,昨天还好好的   6、只是改一行代码,不会对整个程序造成影响的,放心。   7、如果有bug出现,一定不会是我程序的原因,要不考虑一下硬件问题?   8、刷新一下   9、这个功能下个版本做。。。


  有时候密码等关键属性也要序列化,可以自定义序列化的过程,在这过程中可以加密一些信息。   在Man类重写writeObject()和readObject方法就行,例如我把密码写成123+“aaaaaaaaaaaaaaa”再序列化   private void writeObject(ObjectOutputStream out) throws IOException{ out.writeObject(name); out.writeObject(passwd+"aaaaaaaaaaaaaaa"); } private void readObject(ObjectInputStream in) throws Exception{ this.name=in.readObject().toString(); this.passwd=in.readObject().toString().replaceAll("aaaaaaaaaaaaaaa", ""); }   运行结果   读取对象内容:名字 :zhangsan密码:123,从而完成解密




java学习心得

下一篇:JAVA学习视频