Java

Effective Java (并发)

六十六、同步访问共享的可变数据:在Java中很多时候都是通过synchronized关键字来实现共享对象之间的同步的。事实上,对象同步并不仅限于当多个线程操作同一可变对象时,仍然能够保证该共享对象的状态始终保持一致。与此同时,他还可以保证进入同步方法或者同步代码块的每个线程,都看到由同一个锁保护的之前所有的修改效果。Java的语言规范保证了读写一个变量是原子的,除非这个变量的类型为long或double。换句话说,读取一个非long或double类型的变量

系统 2019-08-29 22:02:40 1990

Java

Java安全通信、数字证书及应用实践

摘要:在本文中,我用详细的语言和大量的图片及完整的程序源码向你展示了在JAVA中如何实现通过消息摘要、消息验证码达到安全通信、以及用Java的工具生成数字证书,和用程序给数字证书签名、以及用签名后的数学证书签名applet突破applet的访问权限的过程,给出了全部例子的详细代码。通过本文中你可以学到以下知识:●程序间如何安全通信●什么是及如何生成消息摘要●什么是及如何生成消息验证码●如何使用Java工具生成和维护数字证书库●如何用程序给数字证书验证签名●

系统 2019-08-12 09:30:06 1990

Java

java笔记-工厂模式

一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)看来这人比较爱国,没有日本车),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说"开奔驰车!",坐上Bmw后他说"开宝马车!",坐上Audi后他说"开奥迪车!"。你一定说:这人有病!直接说开车不就行了?!而当把这个爆发户的行为放到我们程序语言中来,我们发现C语言一直是通过这种方式来坐车的!幸运的是,这种有病的现象在OO语言中可以避免了。

系统 2019-08-12 09:30:02 1990

Java

java JDBC连接Oracle数据库的方法

1importjava.sql.Connection;2importjava.sql.DriverManager;34privatestaticfinalStringURI="jdbc:oracle:thin:@localhost:1521:orcl";5//驱动路径6privatestaticfinalStringUSER="testUser";//数据库名7privatestaticfinalStringPWD="admin";//数据库密码8/--9

系统 2019-08-12 01:52:10 1990

Java

送50本 Python、数据库、java方面的书,包邮给你!

来给大家送一波福利,这次联系了8个好友一起给各位送书,每个号送5本,一共45本,还包邮哦。感谢传智播客对本次活动的赞助。金主介绍:传智播客是国内数一数二的IT培训机构,现在关注传智播客,回复【破局】,即可领取由前阿里/百度/微软/IBM架构师教研团队打造的程序员技术进阶课程。同时这里还会不定期赠送书籍、键盘、免费大咖公开课分享、举办专注服务程序员的线上线下活动,关爱程序员健康,程序员相亲交友等主题活动。扫码即可关注01书怎么送很简单,关注下面的公众号,并在

系统 2019-09-27 17:57:25 1989

Java

“Java跌落向下,Python奋斗向前”,程序员:看哭了...

原文链接:https://edu.csdn.net/topic/python115?utm_source=csdn还记得被Java统治的时代吗?最近,这个格局已经被悄然打破,正是被来自曾经的小弟,新晋网红Python给硬生生拽下神坛。对此,Java曾表示强烈质疑,最近一份数据榜单悄悄来了!PLPY8月榜单官宣,Python连冠Java:你努力的样子像年轻时的我在最新一期榜单上,Python的份额高达28.08%,什么概念呢?举个例子:就是有个10个项目,其

系统 2019-09-27 17:50:17 1989

Java

Java NIO(二)Channel

JavaNIO的通道类似流,但又有些不同:既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。通道可以异步地读写。通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。正如上面所说,从通道读取数据到缓冲区,从缓冲区写入数据到通道。如下图所示:Channel的实现这些是JavaNIO中最重要的通道的实现:FileChannel从文件中读写数据。DatagramChannel能通过UDP读写网络中的数据。SocketCh

系统 2019-08-29 23:17:48 1989

Java

Java 代理

代理模式UML类图代理模式1.静态代理/***为被代理的类提供一个接口,是为了提高代理的通用性,凡是实现了该接口的类,都可以被代理*这里其实就是运用了java面向对象的多态性*/publicinterfaceIHello{publicvoidsayHello();}/***被代理的类,最根本的想法就是想用另外一个类来代理这个类,给这个类添加一些额外的东西*我们只需要创建另外一个类引用这个类就行了*/publicclassHelloimplementsIHe

系统 2019-08-29 22:57:10 1989

Java

head first java

一本非常棒的书,不愧“headfirst”的称谓。清晰的条理,生动的图示,偶尔来点老外的幽默——其实中国人不太能理解,阅读体验非常舒畅。oreilly的这个系列应该都很熟悉了,优点多多估计大家都知道,就不提了,说点不优的吧。如果你熟悉一门类似的静态面向对象语言(例如C#)那就不要看这个了,你会觉得有些罗嗦,因为大部分语言特性你都很清楚,没有必要看那么多示例、提示和比较等等;如果你是想全面的了解java语言,估计你会很失望,这本书里面甚至没有讲“反射”;如果

系统 2019-08-29 22:48:24 1989

Java

Java版战棋(SLG)游戏AI及寻径处理入门

代码下载地址:http://download.csdn.net/source/1047937SLG或者说战棋游戏,在大多数英文站点是归类到SimulationGame的(包括模拟城市之类的纯SIM),并没有进行SRPG(StrategiesRolePlayGames)、RTS(Real-TimeStrategyGame)乃至RSLG(RoleplaySimulationGame)种种的细分。归结原因,想必还是因为近似因素太多,在大多数时候已经难以区分其本来

系统 2019-08-29 22:39:52 1989

Java

深入浅出基于Java的解释器设计模式

一、引子其实没有什么好的例子引入解释器模式,因为它描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中;在实际应用中,我们可能很少碰到去构造一个语言的文法的情况。虽然你几乎用不到这个模式,但是看一看还是能受到一定的启发的。二、定义与结构解释器模式的定义如下:定义语言的文法,并且建立一个解释器来解释该语言中的句子。它属于类的行为模式。这里的语言意思是使用规定格式和语法的代码。在GOF的书中指出:如果一种特定类型的问题发生的频率足够高,那

系统 2019-08-29 22:23:20 1989

Java

Java中异常机制的深入研究

由于本文旨在探讨Java"异常机制"的深层原理,因此关于"异常"的使用方法都不做详细说明。首先看一段非常熟悉的用于打开一个文件的C程序段:FILE*fp;fp=fopen(filename,"rw");if(fp==NULL){printf("cannotopenfile/n");exit(0);}在这段程序中

系统 2019-08-29 22:12:38 1989

Java

java解惑你知多少(七)

应用47.不可变的引用类型Java代码BigIntegertotal=BigInteger.ZERO;total.add(newBigInteger("1"));total.add(newBigInteger("10"));System.out.println(total);//0上面程序的结果为11吗?答案是0。BigInteger实例是不可变的。String、BigDecimal以及包装类型:Integer、Long、Short、Byte、Charac

系统 2019-08-29 22:02:46 1989

Java

将BIRT整合到自己的Java项目中(二)

关于编写viewer,关键在于使用ReportEngineAPI,这个在birt官方文档上有很详细的描述。这里将几个主要环节总结一下:启动ReportEngine这里需要注意启动ReportEngine的开销问题和图片链的协议的问题。使用IReportEngineFactory比每次new一个出来性能方面要好很多。使用HTMLEmitterConfig可以使得生成的HTML报表中的图片的src指向一个web资源而非file资源。publicIReportE

系统 2019-08-12 09:30:39 1989

Java

Java对象持久化技术Hibernate入门

Hibernate是Java应用和关系数据库之间的桥梁,它负责Java对象和关系数据之间的映射。Hibernate内部封装了通过JDBC访问数据库的操作,向上层应用提供了面向对象的数据访问API。在Java应用中使用Hibernate包含以下步骤。(1)创建Hibernate的配置文件。(2)创建持久化类。(3)创建对象-关系映射文件。(4)通过HibernateAPI编写访问数据库的代码。本文通过一个简单的例子helloapp应用,演示如何运用Hiber

系统 2019-08-12 09:30:32 1989