#JAVA与模式

Java 并发编程(三):如何保证共享变量的可见性?

上一篇,我们谈了谈如何通过同步来保证共享变量的原子性(一个操作或者多个操作要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行),本篇我们来谈一谈如何保证共享变量的可见性(多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值)。我们使用同步的目的不仅是,不希望某个线程在使用对象状...

重学Java(一):与《Java编程思想》的不解之缘

 说起来非常惭愧,我在2008年的时候就接触了Java,但一直到现在(2018年10月10日),基础知识依然非常薄弱。用一句话自嘲就是:十年IT老兵,Java菜鸡一枚。于是,我想,不如静下心来,重新读一遍那些经典的Java技术书,并且没读完一章就输出一篇原创技术文章。从哪一本开始呢?想了一想,还是从《Java...

Java 并发编程(二):如何保证共享变量的原子性?

线程安全性是我们在进行Java并发编程的时候必须要先考虑清楚的一个问题。这个类在单线程环境下是没有问题的,那么我们就能确保它在多线程并发的情况下表现出正确的行为吗?我这个人,在没有副业之前,一心扑在工作上面,所以处理的蛮得心应手,心态也一直保持的不错;但有了副业之后,心态就变得像坐过山车一样。副业收入超过主业的时候,人...

Java 网络编程:必知必会的 URL 和 URLConnection

java.net.URL类将URL地址进行了封装,并提供了解析URL地址的基本方法,比如获取URL的主机名和端口号。java.net.URLConnection则代表了应用程序和URL之间的通信链接,可用于读取和写入此URL引用的资源。URLConnection看起来只是比URL多了一个Connection,它们之间的...

Java Socket:飞鸽传书的网络套接字

在古代,由于通信不便利,一些聪明的人就利用鸽子会飞且飞得比较快、会辨认方向的优点,对其进行了驯化,用来进行消息的传递——也就是所谓的“飞鸽传书”。而在Java中,网络套接字(Socket)扮演了同样的角色。套接字(Socket)是一个抽象层,应用程序可以通过它发送或接收数...

Java内存映射,上G大文件轻松处理

内存映射文件(Memory-mappedFile),指的是将一段虚拟内存逐字节映射于一个文件,使得应用程序处理文件如同访问主内存(但在真正使用到这些数据前却不会消耗物理内存,也不会有读写磁盘的操作),这要比直接文件读写快几个数量级。稍微解释一下虚拟内存(很明显,不是物理内存),它是计算机系统内存管理的一种技术。像施了妖...

Java:控制反转(IoC)与依赖注入(DI)

很长一段时间里,我对控制反转和依赖注入这两个概念很模糊,闭上眼睛想一想,总有一种眩晕的感觉。但为了成为一名优秀的Java工程师,我花了一周的时间,彻底把它们搞清楚了。01、紧耦合在我们编码的过程中,通常都需要两个或者更多的类通过彼此的合作来实现业务逻辑,也就是说,某个对象需要获取与其合作对象的引用,如果这个获取的过程需...

温故而知新,重温 Java 7 的那些“新”特性

2009年4月20日,Java的亲生父亲Sun被养父Oracle以74亿美元收购,这在当时可是一件天大的事。有不少同学都担心Java的前途,我当时傻不啦叽地也很担心:自己刚学会如何通过记事本编写Java代码,然后通过cmd打印HelloWorld呢,这一下难道白学了?但其实这种担心是多余的,因为Java并不会陪葬,毕竟...

Java:前程似锦的 NIO 2.0

Java之所以能够霸占编程语言的榜首,其强大、丰富的类库功不可没,几乎所有的编程问题都能在其中找到解决方案。但在早期的版本当中,输入输出(I/O)流并不那么令开发者感到愉快:1)JDK1.4之前的I/O没有缓冲区的概念、不支持正则表达式、支持的字符集编码有限等等;2)JDK1.4的时候引入了非阻塞I/O,也就是NIO1...
IT猿 ·2020-03-26

Java 代码界 3% 的王者?看我是如何解错这 5 道题的

前些日子,阿里妹(妹子出题也这么难)发表了一篇文章《悬赏征集!5道题征集代码界前3%的超级王者》——看到这个标题,我内心非常非常激动,因为终于可以证明自己技术很牛逼了。但遗憾的是,凭借8年的Java开发经验,我发现这五道题自己全解错了!惨痛的教训再次证明,我是那被秒杀的97%的工程师之一。不过,...

我竟然不再抗拒 Java 的类加载机制了

很长一段时间里,我对Java的类加载机制都非常的抗拒,因为我觉得太难理解了。但为了成为一名优秀的Java工程师,我决定硬着头皮研究一下。01、字节码在聊Java类加载机制之前,需要先了解一下Java字节码,因为它和类加载机制息息相关。计算机只认识0和1,所以任何语言编写的程序都需要编译成机器码才能被计算机理解,然后执行...

Java Serializable:明明就一个空的接口嘛

对于Java的序列化,我一直停留在最浅显的认知上——把那个要序列化的类实现 Serializbale 接口就可以了。我不愿意做更深入的研究,因为会用就行了嘛。但随着时间的推移,见到 Serializbale 的次数越来越多,我便对它产生了浓厚的兴趣。是时候...

教妹学 Java:动态伴侣 Groovy

​ 00、故事的起源“二哥,听说上一篇《多线程》被CSDN创始人蒋涛点赞了?”三妹对她提议的《教妹学Java》专栏一直很关心。“嗯,有点激动。刚开始还以为是个马甲,没想到是真人!”“其实蒋涛点赞的文章很多很多了,二哥的只是其中一篇而已。”...

教妹学 Java:难以驾驭的多线程

00、故事的起源“二哥,上一篇《集合》的反响效果怎么样啊?”三妹对她提议的《教妹学Java》专栏很关心。“这篇文章的浏览量要比第一篇《泛型》好得多。”“这是个好消息啊,说明更多人接受了二哥的创作。”三妹心花怒放了起来。“也许没什么对比性...

蓦然回首,Java 已经 24 岁了!

01、蓦然真没想到,Java竟然24岁了(算是90后)!提起Java,印象最深刻的当然就是:class Cmower {  public static void main(String [] args) { &...
首页上一页...646647648649650...下一页尾页