Java

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

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

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

Java

java解惑你知多少(六)

41.instanceof与转型Java代码System.out.println(nullinstanceofString);//falseSystem.out.println(newObject()instanceofString);//false//编译能通过System.out.println((Object)newDate()instanceofString);//false//!!程序不具有实际意义,但编译时不能通过//!!System.out.

系统 2019-08-29 22:02:47 2246

Java

Rhythmk 一步一步学 JAVA(2) : 操作 MYSQL

1.下载如:mysql-connector-java-5.1.22.zip解压获取jar连接包。2.引入项目:右键项目名--->BuildPath—>ConfigureBuildPath...选择Libraries然后再选择右边第二个选项AddExternalJars导入mysql-.jar3.新建数据表:CREATETABLE`user`(`ID`int(11)NOTNULLAUTO_INCREMENT,`Name`varchar(32)NOTNULL,

系统 2019-08-12 01:52:12 2246

Java

Android手机打造你的Python&Java开发工具!

崩溃边缘…最近公司很多事情,最重要的是,很多时候问题压根不出在我身上,但还得我去定位解决,为什么大家都是写代码的,我就得给你们擦屁股呢!怒从心头起,搞得错别字都发出去了,哎…晚上加完班回来坐在电脑前发呆,不知道该写点什么。想起今天领导说的要拿java写一套解密算法后,通过python调用,突然想想有阵子没学java了…然后,你们以为我要弃坑写Java的内容,No…开发者桌面之前写过一篇文章:将Android手机打造成你的python开发者桌面在安卓手机上通

系统 2019-09-27 17:51:10 2245

Java

java JNI 调用c或c++,windows 或 Linux系统

由于java程序需要调用C或C++的代码,不得不使用JNI。C的代码在Win32和Linux下都有相同功能的不同实现,就像JDK分几种平台版本(win32,linux,solaris等)。首先,看一看首先,看一看win32下调用dll文件。1,新建HelloWorld.java1publicclassHelloWorld2{3static4{5try6{7//此处即为本地方法所在链接库名8System.loadLibrary("HelloWorld");9

系统 2019-08-29 23:39:19 2245

Java

Java 代理

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

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

Java

Java Map按键排序和按值排序

Map排序的方式有很多种,这里记录下自己总结的两种比较常用的方式:按键排序(sortbykey),按值排序(sortbyvalue)。按键排序(sortbykey)jdk内置的java.util包下的TreeMap既可满足此类需求,原理很简单,其重载的构造器之一有一个参数,该参数接受一个比较器,比较器定义比较规则,比较规则就是作用于TreeMap的键,据此可实现按键排序。publicMapsortMapBy

系统 2019-08-12 09:29:29 2245

Java

selenium操作隐藏的元素(python+Java)

有时候我们会碰到一些元素不可见,这个时候selenium就无法对这些元素进行操作了。例如,下面的情况:Python页面主要通过“display:none”来控制整个下拉框不可见。这个时候如果直接操作这个下拉框,就会提示:fromseleniumimportwebdriverfromselenium.webdriver.support.selectimportSelectimportos,timedriver=webdriver.Chrome()file_p

系统 2019-09-27 17:52:49 2244

Java

Java中的枚举(一)

在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。在Java中想表示这种数据集最容易想到的写法可能是这样,我们以表示一周五天的工作日来举例:Java代码publicclassWeekDay{publicstaticfinalintMONDAY=1;publicstaticfinalintTUESDAY=2;p

系统 2019-08-29 23:47:43 2244

Java

详解 JAVA 创建对象 NEW

假设我们在函数中写了如下这个简单的语句:StringBufferstr=newStringBuffer("Helloworld");别看这个语句简单,其实包含了如下三个步骤:首先,newStringBuffer("Helloworld")在堆里申请了一坨内存,把创建好的StringBuffer对象放进去。其次,StringBufferstr声明了一个指针。这个指针本身是存储在栈上的(因为语句写在函数中),可以用来指向某个StringBuffer类型的对象。

系统 2019-08-29 22:52:29 2244

Java

深入Java集合学习系列:HashSet的实现原理

1.HashSet概述:HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。2.HashSet的实现:对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成,我们应该为保存到HashSet

系统 2019-08-29 22:51:29 2244

Java

Java实现类MSN、QQ好友上线通知界面

相信大家都使用过MSN,QQ这样的即时聊天类软件,对于它们的好友上线提示功能并不陌生吧?从屏幕右下角弹出一个小界面,慢慢上升,最后消失。我们能不能在自已的程序中也做出相同的功能呢?能!笔者现用JAVA和eclipse的SWT用户界面组件实现这个功能。什么是SWT呢?SWT原来是eclipse项目组为开发eclipseIDE所编写的图形界面API,运行时,其先判断本机是否有相同的界面元素,如果有则直接调用显示,如没有才进行模拟显示。其运行机制使速度比AWT,

系统 2019-08-29 22:27:01 2244

Java

Java编程提高性能时需注意的地方

最近的机器内存又爆满了,出了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。下面是参考网络资源和总结一些在java编程中尽可能做到的一些地方1.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面第一,控制资源的使用,通过线程同步来控制资源的并发访问第二,控制实例的产生,以

系统 2019-08-29 22:01:06 2244

Java

Java语言实现简单FTP软件------>上传下载管理模

1、上传本地文件或文件夹到远程FTP服务器端的功能。当用户在本地文件列表中选择想要上传的文件后,点击上传按钮,将本机上指定的文件上传到FTP服务器当前展现的目录,下图为上传子模块流程图上传下载管理模块的实现(十一)"width="265"height="421"style="border:1pxsolidblack;"/>选择好要上传的文件或文件夹,点击“上传”按钮,会触发com.oyp.ftp.panel.local.UploadAction类的acti

系统 2019-08-12 09:29:36 2244

Java

Java Tomcat 中调用.net DLL的方法

近日一个java的项目,客户要求项目中必须使用其提供的加密机制,扔给了两个。net写的DLL.网络上搜了一圈也没找到啥东西,甚至看到人扬言此事绝无可能。郁闷当中考虑了一个思路。用C#做一个Com,调用客户提供的DLL实现加密解密的方法,然后提供给java使用。经过一番捣腾,最后证实可行。环境与工具:1、。netframework3.5C#2、javajdk1.5,Tomcat5.53、jacob-1.15-M3实现例子:一、C#制作Com组件新建一个Cla

系统 2019-08-12 01:33:32 2244