- 调用DLL的方式
简单前行
windows
DLL的调用方式有两种:1、静态调用(有Lib库)即通过程序中引入*.h,链接库中链接*.lib并附加对于目录,再把相应的*.dll放到程序的exe同级目录下,然后实现对*.h中的各函数方法的调用2、动态调用(无Lib库)即通过LoadLibrary加载*.dll,然后用GetProcAddress找到要调用的相关函数名称,再调用函数(此种方法不再需要对应的*.lib库)。如下
- DLL编写中extern “C”和__stdcall的作用
明卿
MFC
动态链接库的使用有两种方式,一种是显式调用。一种是隐式调用。(1)显式调用:使用LoadLibrary载入动态链接库、使用GetProcAddress获取某函数地址。(2)隐式调用:可以使用#pragmacomment(lib,“XX.lib”)的方式,也可以直接将XX.lib加入到工程中。DLL的编写编写dll时,有个重要的问题需要解决,那就是函数重命名——Name-Mangling。解决方式有
- windows C启动JDK11的JVM
markrenChina
cppwindowsc语言开发语言
本示例使用的jdk为adopt-openj9-11.0.10核心API是调用windows的GetProcAddresshjvmlib=loadJVMLibrary();createJavaVM=(CreateJavaVM_t)GetProcAddress(hjvmlib,"JNI_CreateJavaVM");status=(*createJavaVM)(&jvm,(void**)&env,&v
- 加载动态库的几种方式
lmy347771232
WIN32APIlinuxC++windows
静态加载、动态加载和延迟加载dll加载方式大致可以分为3类:静态加载、动态加载和延迟加载1.静态加载,dll的加载发生在程序main函数启动前。2.动态加载,使用LoadLibrary或者LoadLibraryEx来加载一个dll。当dll加载成功时,你会得到一个非空的HMODULE。接下来,你可以使用GetProcAddress来获取这个HMODULE中的导出接口了。你可以理解成,静态链接的li
- C++11实用技术(五)泛型编程加载dll接口函数
Aries_Ro
C++进阶c++java开发语言
C++11泛型编程简化加载dll代码常见的加载dll方式:HMODULEm_hDataModule;m_hDataModule=LoadLibrary("myDll.dll");typedefint(*PfunA)(inta,intb);//定义函数指针PfunAfun=(PfunA)(GetProcAddress(m_hDataModule,"funA"));//加载接口intret=fun(1
- shellcode编写
天问_Herbert555
二进制逆向c++开发语言shellcode汇编
文章目录注意事项基础知识开始编写第一步初始化第二步实现其他函数动态调用第三部实现GetProcAddress和LoadLibraryA的动态调用获取kernel32.dll基址动态调用GetProcAddress实战CreateFileAMessageBoxA导出shellcode第一种shellcode编写实例1第一种shellcode编写实例2(优化结构)shellcode加载器注意事项不使用
- 自实现getprocaddress(名称查找或者序号查找)
番茄酱料
免杀网络安全c++windows
通过名称去找//MyGETPRCOADDRESS.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//#include#include/*WINBASEAPI//导出不需要使用,那么我们注释掉*/FARPROCWINAPIMyGetProcAddress(_In_HMODULEhModule,_In_LPCSTRlpProcName){PIMAGE_DOS_HEADERpIMAGE
- typedef函数代码段解释以及部分Windows下的系统函数
森明帮大于黑虎帮
cC++c++
文章目录1、typedefint(WINAPI*LPSDOLInitialize)(constSDOLAppInfo*pAppInfo)2、typedefint(WINAPI*LPSDOLGetModule)(REFIIDriid,void**intf)3、typedefint(WINAPI*LPSDOLTerminal)();4、GetProcAddress运行时获取一个动态链接库(DLL)中导
- MFC 透明窗体
圣☞摧枯拉朽
mfc
如何制作透明窗体?????使用SetLayeredWindowAttributes可以方便的制作透明窗体,此函数在w2k以上才支持,而且如果希望直接使用的话,可能需要下载最新的SDK。不过此函数在w2k的user32.dll里有实现,所以如果你不希望下载巨大的sdk的话,可以直接使用GetProcAddress获取该函数的指针。SetLayeredWindowAttributes的函数原型如下:B
- 通达信二次开发接口api如何操作?
a股接口
程序化交易接口股票交易c接口通达信二次开发接口apirestfulspringbootspringjavapython
通达信二次开发接口api如何操作,步骤如下:1、调用LoadLibrary加载MetaTrade.dll实例;2、调用GetProcAddress获取API函数地址;3、调用Init接口进行API初始化;4、调用Logon登录账户并获得相应的接口ClientId,一个应用程序实例可以同时登录多个账户;5、通过ClientId调用其它API查询接口;6、调用Logoff接口登录账户;7、调用Dein
- Windows:判断进程32/64位
shanql
Win32/MFC64位进程
IsWow64ProcessBOOLIsWow64Process([in]HANDLEhProcess,[out]PBOOLWow64Process);判断进程是否为64位(运行在WOW64oranIntel64ofx64processor)为了在不支持此函数的系统中运行正常,请调用GetProcAddress从Kernel32.dll中查询此函数地址,查询成功后,即可进行调用。注:不能用此技术去
- Go进程改标题
游学者夏纳
朴实无华。(置顶的文章被jianshu删了,笑死)import("syscall""unsafe")funcSetConsoleTitleW(titlestring){kernel32,err:=syscall.LoadLibrary(`kernel32.dll`)iferr!=nil{return}ifsct,err:=syscall.GetProcAddress(kernel32,`SetCo
- 【脱壳-寻找OEP】壳常用的函数寻找OEP
JAVA百练成神
脱壳入门python
LoadLibrary加载dllGetProcAddress获取函数的地址ExitThread调用后就会释放系统分配的堆栈我们这次用GetProcAddres来测试,载入我们的测试文件然后Cttrl+G输入GetProcAddress获取函数的地址下断点,但是下的是条件断点,只针对函数加载进行记录而不是进行下断。设置esp的记录为记录值,因为esp的栈顶数据读入的第一条肯定是他。点击OD的L查看日
- 2021-09-23导出表ordinal寻址
对落叶很执着
逆向工程核心原理书上的使用序号寻找导出函数的地址具有误导性其实很简单,就是用你要查询的序号-Base,得到地址数组的索引,再获得地址我自己用c语言实现了GetProcAddress的序号寻址代码贴在下面#include#include#include#defineDLL_NAME_T("kernel32.dll")#definePROC_NAME_T("AcquireSRWLockExclusiv
- 恶意代码分析第七章Lab-07-03实战分析笔记
看雪学院
首先我们通过静态分析发现该程序的导入表中有很多文件操作类函数。又在StringView中发现了Lab07-03.dll字符串,我们推断程序有可能调用了该动态库,但却没有发现任何loadlibrary或者getprocaddress函数。所以我们的推测可能是错的,他有可能并没有加载这个动态库。其中也出现了Kernel32.dll的完整路径。但还出现了一个Kerne132.dll的完整路径,很明显,这
- 自用 x86 GetProcAddress + GetModuleHandle
hambaga
PE
写项目时自己实现了这两个函数,记录下来以后方便复习。//从PEB的_PEB_LDR_DATA里获取已加载模块的句柄HMODULEGetLoadedModuleW(LPCWSTRlpModuleName){typedefstruct_UNICODE_STRING{USHORTLength;USHORTMaximumLength;PWSTRBuffer;}UNICODE_STRING,*PUNICOD
- 将Libcef打造为win32控件(非MFC)
天下第九九八十一
Libcef的完整发行包中自带示例代码,可以用cmake生成工程后编译运行。我的目的将cefclient编译为DLL,由它与libcef打交道,最终的exe与所有dll互无编译依赖,通过GetProcAddress动态对接。参考:notepad++插件、miniblink-wke控件的实现。首先,编译cefclient.exe,记得关闭“treatwarningaserror”。关闭这种选项在项目
- 利用Hook API函数OpenProcess与TerminateProcess来防止任务管理器结束进程【转】
weixin_30834019
思路:其实比较简单,还是利用DLL,首写跟据API函数OpenProcess与TerminateProcess的结构自已编写两个与这两个API一样的函数,再利用GetProcAddress获取系统的那两个API函数入口地址,最后用WriteProcessMemory将你写的函数的地址替换掉原来系统的函数地址。这样所有调用这两系统API都将先执行你的函数。如果只Hook其中一个函数比如只hookOp
- NPAPI插件开发详细记录:实用功能(库的使用及多线程)
z6482
mozilla插件教程
有了前面的helloworld的经验,本文在其基础上研究一些实用功能的实现。库的动态加载Windows平台下,可以动态的对dll进行加载,使用到的API主要有:LoadLibrary、GetProcAddress、FreeLibrary等。下面以加载winmm.dll为例对相关代码进行简要介绍:动态加载dll,在加载之前先进行typedef,这里以实用winmm.dll中的函数PlaySound为
- PowerSploit: Exception calling "GetMethod" with "1" argument(s): "Ambiguous match found."
SuWanWorld
开发日常powershell
在安装WindowsUpdate后使用PowerSploit时报错:Exceptioncalling"GetMethod"with"1"argument(s):"Ambiguousmatchfound."解决方案是将$GetProcAddress=$UnsafeNativeMethods.GetMethod('GetProcAddress')改为$GetProcAddress=$UnsafeNat
- OD的 CC断点,内存访问断点,硬件断点 解析
dison111
OD逆向走世界
1.F2断点,API断点1)本质CC断点2)以API断点为例xxxx=GetProcAddress//获得函数首地址VitualProtectEx()//修改函数首地址权限为可写xxxx=0xcc;//修改了内存数据为0xC2.分页保护断电1)内存访问点or内存写入断点---〉其实是设置内存禁止访问,使得od接管异常2)具体过程:FindWindow//窗口句柄,通过名字获得GetWindowTh
- IAT hook与inline hook的区别
一点点搞
windows基础
IAThook导入表hook原理:修改导入表中某函数的地址到自己的补丁函数。IATHook通过GetProcAddress获取目标函数地址在程序内存中找到所在dll的导入表查找目标函数地址保存的位置把地址修改为自己补丁函数问题:当该函数递归调用时,不会被hook为解决这个问题,可以使用inlinehookinlinehook需要一个代理函数ProxyFunction,调用Function时候,会跳
- QQ2012客户端盗号,截取密码
Colin91
/**修改GetForegroundWindow函数,使得QQ进程不能得知自己成为前台窗口,这样就不会发送干扰输入了;同时修改密码窗口的窗口过程,以便监听*/BOOLCalePatchAddr(){FARPROCFuncAddr=GetProcAddress(GetModuleHandle(_T("USER32.DLL")),"GetForegroundWindow");byteHookCode[
- 手动获取函数地址
tutucoo
程序设计
编写病毒程序时,由于各种原因不能直接调用函数,所以需要手动获取到函数然后调用它。最常见手动获取函数地址的方法是通过获取kernel32.dll句柄,然后遍历kernel32.dll的导出表找到它的GetProcAddress()函数,再通过向这个函数传递函数名就可以获取函数的地址了,最后通过一个函数指针就可以调用获取的函数。主要步骤1.通过fs寄存器获取到TEB的地址2.通过teb+0x30获取到
- 从内存中加载DLL
宝宅-无用
dllimagedescriptoralignmentimportheader
程序使用动态库DLL一般分为隐式加载和显式加载两种,分别对应两种链接情况。本文主要讨论显式加载的技术问题。我们知道,要显式加载一个DLL,并取得其中导出的函数地址一般是通过如下步骤:(1)用LoadLibrary加载dll文件,获得该dll的模块句柄;(2)定义一个函数指针类型,并声明一个变量;(3)用GetProcAddress取得该dll中目标函数的地址,赋值给函数指针变量;(4)调用函数指针
- 函数指针模板的简单使用
mynamelj
基础编程
//函数指针模板的定义templateclassProcTemplate{typedefReturnType(WINAPI*PFN_PROC)(Args...);public:ProcTemplate(LPCTSTRpszModule,LPCSTRpszProcName){m_pfn=(PFN_PROC)GetProcAddress(GetModuleHandle(pszModule),pszPr
- 获取任务栏句柄
ShellExecute
HWNDGetTaskmanWindow(){typedefHWND(WINAPI*PROCGETTASKMANWND)();HMODULEhUser32=GetModuleHandle("user32");PROCGETTASKMANWNDGetTaskManWindow=(PROCGETTASKMANWND)GetProcAddress(hUser32,"GetTaskmanWindow");
- OpenThread的用法
浮沙
MFC
typedefHANDLE(WINAPI*_OPENTHREAD)(DWORD,BOOL,DWORD);_OPENTHREADOpenThread=(_OPENTHREAD)GetProcAddress(GetModuleHandle(_T("Kernel32.dll")),"OpenThread");OpenThread(NULL,FALSE,ThreadId);
- 栈溢出笔记1.7 地址问题(2)
hustd10
逆向工程Windows内核Windows编程
1.6节中找到了kernel32.dll的基地址,这一节,来解决第二个重要问题,即解析kernel32.dll的导出表,找到LoadLibraryA和GetProcAddress的地址。DLL导出的函数信息位于导出表中,因此,首先,要在PE文件中找到导出表(IMAGE_EXPORT_DIRECTORY)的地址,这位于数据目录(IMAGE_DATA_DIRECTORY)中。而数据目录位于PE扩展头(
- 由函数名称调用函数
王晓斌
C/C++
转自:http://dev.csdn.net/htmls/38/38151.html前言:本文源于对CSDN论坛中一个问题的解答,现将其整理出来,以帮助有相同需求的朋友。对dll进行过动态加载的朋友应该清楚GetProcAddress这个API,其作用是通过一个函数名称从dll模块中获得这个函数的地址,然后将其转换成相应的函数指针供我们调用。这便是通过函数名称来调用函数的一个典型例子。下面我们就仿
- windows下源码安装golang
616050468
golang安装golang环境windows
系统: 64位win7, 开发环境:sublime text 2, go版本: 1.4.1
1. 安装前准备(gcc, gdb, git)
golang在64位系
- redis批量删除带空格的key
bylijinnan
redis
redis批量删除的通常做法:
redis-cli keys "blacklist*" | xargs redis-cli del
上面的命令在key的前后没有空格时是可以的,但有空格就不行了:
$redis-cli keys "blacklist*"
1) "blacklist:12:
[email protected]
- oracle正则表达式的用法
0624chenhong
oracle正则表达式
方括号表达示
方括号表达式
描述
[[:alnum:]]
字母和数字混合的字符
[[:alpha:]]
字母字符
[[:cntrl:]]
控制字符
[[:digit:]]
数字字符
[[:graph:]]
图像字符
[[:lower:]]
小写字母字符
[[:print:]]
打印字符
[[:punct:]]
标点符号字符
[[:space:]]
- 2048源码(核心算法有,缺少几个anctionbar,以后补上)
不懂事的小屁孩
2048
2048游戏基本上有四部分组成,
1:主activity,包含游戏块的16个方格,上面统计分数的模块
2:底下的gridview,监听上下左右的滑动,进行事件处理,
3:每一个卡片,里面的内容很简单,只有一个text,记录显示的数字
4:Actionbar,是游戏用重新开始,设置等功能(这个在底下可以下载的代码里面还没有实现)
写代码的流程
1:设计游戏的布局,基本是两块,上面是分
- jquery内部链式调用机理
换个号韩国红果果
JavaScriptjquery
只需要在调用该对象合适(比如下列的setStyles)的方法后让该方法返回该对象(通过this 因为一旦一个函数称为一个对象方法的话那么在这个方法内部this(结合下面的setStyles)指向这个对象)
function create(type){
var element=document.createElement(type);
//this=element;
- 你订酒店时的每一次点击 背后都是NoSQL和云计算
蓝儿唯美
NoSQL
全球最大的在线旅游公司Expedia旗下的酒店预订公司,它运营着89个网站,跨越68个国家,三年前开始实验公有云,以求让客户在预订网站上查询假期酒店时得到更快的信息获取体验。
云端本身是用于驱动网站的部分小功能的,如搜索框的自动推荐功能,还能保证处理Hotels.com服务的季节性需求高峰整体储能。
Hotels.com的首席技术官Thierry Bedos上个月在伦敦参加“2015 Clou
- java笔记1
a-john
java
1,面向对象程序设计(Object-oriented Propramming,OOP):java就是一种面向对象程序设计。
2,对象:我们将问题空间中的元素及其在解空间中的表示称为“对象”。简单来说,对象是某个类型的实例。比如狗是一个类型,哈士奇可以是狗的一个实例,也就是对象。
3,面向对象程序设计方式的特性:
3.1 万物皆为对象。
- C语言 sizeof和strlen之间的那些事 C/C++软件开发求职面试题 必备考点(一)
aijuans
C/C++求职面试必备考点
找工作在即,以后决定每天至少写一个知识点,主要是记录,逼迫自己动手、总结加深印象。当然如果能有一言半语让他人收益,后学幸运之至也。如有错误,还希望大家帮忙指出来。感激不尽。
后学保证每个写出来的结果都是自己在电脑上亲自跑过的,咱人笨,以前学的也半吊子。很多时候只能靠运行出来的结果再反过来
- 程序员写代码时就不要管需求了吗?
asia007
程序员不能一味跟需求走
编程也有2年了,刚开始不懂的什么都跟需求走,需求是怎样就用代码实现就行,也不管这个需求是否合理,是否为较好的用户体验。当然刚开始编程都会这样,但是如果有了2年以上的工作经验的程序员只知道一味写代码,而不在写的过程中思考一下这个需求是否合理,那么,我想这个程序员就只能一辈写敲敲代码了。
我的技术不是很好,但是就不代
- Activity的四种启动模式
百合不是茶
android栈模式启动Activity的标准模式启动栈顶模式启动单例模式启动
android界面的操作就是很多个activity之间的切换,启动模式决定启动的activity的生命周期 ;
启动模式xml中配置
<activity android:name=".MainActivity" android:launchMode="standard&quo
- Spring中@Autowired标签与@Resource标签的区别
bijian1013
javaspring@Resource@Autowired@Qualifier
Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解,如:@Resource、 @PostConstruct及@PreDestroy。
1. @Autowired @Autowired是Spring 提供的,需导入 Package:org.springframewo
- Changes Between SOAP 1.1 and SOAP 1.2
sunjing
ChangesEnableSOAP 1.1SOAP 1.2
JAX-WS
SOAP Version 1.2 Part 0: Primer (Second Edition)
SOAP Version 1.2 Part 1: Messaging Framework (Second Edition)
SOAP Version 1.2 Part 2: Adjuncts (Second Edition)
Which style of WSDL
- 【Hadoop二】Hadoop常用命令
bit1129
hadoop
以Hadoop运行Hadoop自带的wordcount为例,
hadoop脚本位于/home/hadoop/hadoop-2.5.2/bin/hadoop,需要说明的是,这些命令的使用必须在Hadoop已经运行的情况下才能执行
Hadoop HDFS相关命令
hadoop fs -ls
列出HDFS文件系统的第一级文件和第一级
- java异常处理(初级)
白糖_
javaDAOspring虚拟机Ajax
从学习到现在从事java开发一年多了,个人觉得对java只了解皮毛,很多东西都是用到再去慢慢学习,编程真的是一项艺术,要完成一段好的代码,需要懂得很多。
最近项目经理让我负责一个组件开发,框架都由自己搭建,最让我头疼的是异常处理,我看了一些网上的源码,发现他们对异常的处理不是很重视,研究了很久都没有找到很好的解决方案。后来有幸看到一个200W美元的项目部分源码,通过他们对异常处理的解决方案,我终
- 记录整理-工作问题
braveCS
工作
1)那位同学还是CSV文件默认Excel打开看不到全部结果。以为是没写进去。同学甲说文件应该不分大小。后来log一下原来是有写进去。只是Excel有行数限制。那位同学进步好快啊。
2)今天同学说写文件的时候提示jvm的内存溢出。我马上反应说那就改一下jvm的内存大小。同学说改用分批处理了。果然想问题还是有局限性。改jvm内存大小只能暂时地解决问题,以后要是写更大的文件还是得改内存。想问题要长远啊
- org.apache.tools.zip实现文件的压缩和解压,支持中文
bylijinnan
apache
刚开始用java.util.Zip,发现不支持中文(网上有修改的方法,但比较麻烦)
后改用org.apache.tools.zip
org.apache.tools.zip的使用网上有更简单的例子
下面的程序根据实际需求,实现了压缩指定目录下指定文件的方法
import java.io.BufferedReader;
import java.io.BufferedWrit
- 读书笔记-4
chengxuyuancsdn
读书笔记
1、JSTL 核心标签库标签
2、避免SQL注入
3、字符串逆转方法
4、字符串比较compareTo
5、字符串替换replace
6、分拆字符串
1、JSTL 核心标签库标签共有13个,
学习资料:http://www.cnblogs.com/lihuiyy/archive/2012/02/24/2366806.html
功能上分为4类:
(1)表达式控制标签:out
- [物理与电子]半导体教材的一个小问题
comsci
问题
各种模拟电子和数字电子教材中都有这个词汇-空穴
书中对这个词汇的解释是; 当电子脱离共价键的束缚成为自由电子之后,共价键中就留下一个空位,这个空位叫做空穴
我现在回过头翻大学时候的教材,觉得这个
- Flashback Database --闪回数据库
daizj
oracle闪回数据库
Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数。要使用flashback 的特性,必须启用自动撤销管理表空间。
在Oracle 10g中, Flash back家族分为以下成员: Flashback Database, Flashback Drop,Flashback Query(分Flashback Query,Flashbac
- 简单排序:插入排序
dieslrae
插入排序
public void insertSort(int[] array){
int temp;
for(int i=1;i<array.length;i++){
temp = array[i];
for(int k=i-1;k>=0;k--)
- C语言学习六指针小示例、一维数组名含义,定义一个函数输出数组的内容
dcj3sjt126com
c
# include <stdio.h>
int main(void)
{
int * p; //等价于 int *p 也等价于 int* p;
int i = 5;
char ch = 'A';
//p = 5; //error
//p = &ch; //error
//p = ch; //error
p = &i; //
- centos下php redis扩展的安装配置3种方法
dcj3sjt126com
redis
方法一
1.下载php redis扩展包 代码如下 复制代码
#wget http://redis.googlecode.com/files/redis-2.4.4.tar.gz
2 tar -zxvf 解压压缩包,cd /扩展包 (进入扩展包然后 运行phpize 一下是我环境中phpize的目录,/usr/local/php/bin/phpize (一定要
- 线程池(Executors)
shuizhaosi888
线程池
在java类库中,任务执行的主要抽象不是Thread,而是Executor,将任务的提交过程和执行过程解耦
public interface Executor {
void execute(Runnable command);
}
public class RunMain implements Executor{
@Override
pub
- openstack 快速安装笔记
haoningabc
openstack
前提是要配置好yum源
版本icehouse,操作系统redhat6.5
最简化安装,不要cinder和swift
三个节点
172 control节点keystone glance horizon
173 compute节点nova
173 network节点neutron
control
/etc/sysctl.conf
net.ipv4.ip_forward =
- 从c面向对象的实现理解c++的对象(二)
jimmee
C++面向对象虚函数
1. 类就可以看作一个struct,类的方法,可以理解为通过函数指针的方式实现的,类对象分配内存时,只分配成员变量的,函数指针并不需要分配额外的内存保存地址。
2. c++中类的构造函数,就是进行内存分配(malloc),调用构造函数
3. c++中类的析构函数,就时回收内存(free)
4. c++是基于栈和全局数据分配内存的,如果是一个方法内创建的对象,就直接在栈上分配内存了。
专门在
- 如何让那个一个div可以拖动
lingfeng520240
html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml
- 第10章 高级事件(中)
onestopweb
事件
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- 计算两个经纬度之间的距离
roadrunners
计算纬度LBS经度距离
要解决这个问题的时候,到网上查了很多方案,最后计算出来的都与百度计算出来的有出入。下面这个公式计算出来的距离和百度计算出来的距离是一致的。
/**
*
* @param longitudeA
* 经度A点
* @param latitudeA
* 纬度A点
* @param longitudeB
*
- 最具争议的10个Java话题
tomcat_oracle
java
1、Java8已经到来。什么!? Java8 支持lambda。哇哦,RIP Scala! 随着Java8 的发布,出现很多关于新发布的Java8是否有潜力干掉Scala的争论,最终的结论是远远没有那么简单。Java8可能已经在Scala的lambda的包围中突围,但Java并非是函数式编程王位的真正觊觎者。
2、Java 9 即将到来
Oracle早在8月份就发布
- zoj 3826 Hierarchical Notation(模拟)
阿尔萨斯
rar
题目链接:zoj 3826 Hierarchical Notation
题目大意:给定一些结构体,结构体有value值和key值,Q次询问,输出每个key值对应的value值。
解题思路:思路很简单,写个类词法的递归函数,每次将key值映射成一个hash值,用map映射每个key的value起始终止位置,预处理完了查询就很简单了。 这题是最后10分钟出的,因为没有考虑value为{}的情