java 数组 合并

java 数组 合并 http://blog.csdn.net/jaycee110905/article/details/9179227 Java中如何把两个数组合并为一个 标签: JavaArray合并数组 2013-06-26 14:54 22185人阅读 评论(1) 收藏 举报 分类: JAVA (39) 目录(?)[+] http://freewind.me/blog/20110922/350.html 在Java中,如何把两个String[]合并为一个? 看起来是一个很简单的问题。但是如何才能把代码写得高效简洁,却还是值得思考的。这里介绍四种方法,请参考选用。 一、apache-commons 这是最简单的办法。在apache-commons中,有一个ArrayUtils.addAll(Object[], Object[])方法,可以让我们一行搞定: String[] both = (String[]) ArrayUtils.addAll(first, second); 其它的都需要自己调用jdk中提供的方法,包装一下。 为了方便,我将定义一个工具方法concat,可以把两个数组合并在一起: static String[] concat(String[] first, String[] second) {} 为了通用,在可能的情况下,我将使用泛型来定义,这样不仅String[]可以使用,其它类型的数组也可以使用: static T[] concat(T[] first, T[] second) {} 当然如果你的jdk不支持泛型,或者用不上,你可以手动把T换成String。 二、System.arraycopy() static String[] concat(String[] a, String[] b) { String[] c= new String[a.length+b.length]; System.arraycopy(a, 0, c, 0, a.length); System.arraycopy(b, 0, c, a.length, b.length); ...

2016-03-25 · 2 min · 225 words · -

java boolean的|=或&=或^=写法

‘java boolean的|=或&=或^=写法’ package jack.test; /** 有时候看一看开源框架可以学到很多有用的东西,在看Simple Log的时候发现了一种写法 在对boolean操作时可以使用|=或者&=或者^=进行运算。 逻辑操作符 逻辑操作符的操作对象和结果均为boolean型,共六个: ! (逻辑非) && (逻辑与) || (逻辑或) ^ (逻辑并或) & (逻辑与) | (逻辑或) 按位与’&‘也可作为逻辑与使用,但未作优化,而’&&‘操作符是经过优化的。对’|‘操作符也类似。 @author Administrator */ public class Test { public static void main(String[] args) { boolean isTrue = false; isTrue |= true; System.out.println(isTrue); isTrue = false; isTrue |= false; System.out.println(isTrue); isTrue = true; isTrue |= true; System.out.println(isTrue); isTrue = true; isTrue |= false; System.out.println(isTrue); isTrue &= false; System.out.println(isTrue); isTrue = true; ...

2016-03-25 · 1 min · 140 words · -

String.regionMatches

String.regionMatches 题目: 输入两个字符串,计算两个字符串的最大公共字串的长度,并输出,字符不区分大小写 eg: 输入abcde xxxBcyyy,输出 2。 完整Java代码: import java.util.*; public class Main { public static void main(String arg[]){ Scanner s=new Scanner(System.in); String str1=s.next(); String str2=s.next(); s.close(); String maxStr,minStr; if(str1.length()>str2.length()){ maxStr=str1; minStr=str2; } else{ maxStr=str2; minStr=str1; } int max=maxStr.length(); int min=minStr.length();//System.out.println(maxStr+" “+minStr+” “+max+” “+min); int result=0; OK: for(int l=min;l>0;l-){ for(int i=0;i<=max-l;i++){ for(int j=0;j<=min-l;j++){ if(maxStr.regionMatches(true, i, minStr, j, l)){ result=l;//System.out.println(l+” “+i+” “+j); break OK; } } } } System.out.println(result); } } 学习点一: 利用Java标签跳出多重循环; 学习点二: 灵活使用String.regionMatches方法,来判断两个字符串的子串区域是否相等,具体可参考Java API文档如下。 regionMatches public boolean regionMatches(boolean ignoreCase, ...

2016-03-25 · 1 min · 165 words · -

MessageFormat.format

MessageFormat.format http://www.cnblogs.com/xiandedanteng/p/3321993.html Java里从来少不了字符串拼接的活,Java程序员也肯定用到过StringBuffer,StringBuilder,以及被编译器优化掉的+=。但这些都和下文要谈的无关。 比如有这样的字符串: 张三将去某地点找李四。 其中,张三某地点和李四都是可变的,比如张三变成王五,某地点变成纽约,李四变成赵六。于是整句变成: 王五将去纽约找赵六。 如果直接将张三,某地点和李四用变量替代,再拼接起来,可以达到目的。但是,代码不好写,也不好看,也不好维护。但是,我看过很多SQL拼接,HTML拼接都是这样做的。我自己以前也是这样,自从接触了MessageFormat.format之后才意识到有更好的形式。请看下面的代码: String[] tdArr=…; String result=MessageFormat.format("{0}{1}{2}{3}", tdArr); 这段代码将把数组tdArr中的四个元素分别插入到{0},{1},{2},{3}的位置。 你看看,是不是这样形式和内容有效的分开了。容易想象,当元素增多时,这种方式优势很明显。 一件事有很多手段来达成,知道那种手段更好,是你经验的体现和专业化的特征。 补记: 如果字符串需要输出单引号’,可以用两个单引号"进行转义,下面代码请参考: public int insertToTest_tb(String createTime,String datefrom,String dateto,String name,String intranetid,String actualhour,String planhour,String status) throws Exception{ StringBuilder sb=new StringBuilder(); sb.append(" insert into test_tb ("); sb.append(" createTime, “); sb.append(” datefrom, “); sb.append(” dateto, “); sb.append(” name, “); sb.append(” intranetid, “); sb.append(” actualhour, “); sb.append(” planhour, “); sb.append(” status"); sb.append(" ) values ("); sb.append(" “{0}”,"); sb.append(" “{1}”,"); ...

2016-03-24 · 1 min · 94 words · -

netty http文件服务器

netty http文件服务器 http://krisjin.github.io/2015/02/14/netty-file-server/ Http介绍 Http(超文本传输协议)协议是建立在TCP传输协议之上的应用成协议,Http由于便捷、快速的方式,适用于分布式超媒体信息系统。Http是目前Web开发的主流协议,基于Http的应用非常广泛,因此掌握HTTP的开发非常重要。由于netty的HTTP协议栈是基于netty的NIO通信框架开发的,所以netty的HTTP协议也是异步非阻塞的。 具体的关于HTTP及Netyy的实现细节在以后的章节在写,先上实例代码: 实例代码 服务端: public class HttpFileServer { public void run(final int port, final String url) throws InterruptedException { EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup(); try { ServerBootstrap boot = new ServerBootstrap(); boot.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class) .childHandler(new ChannelInitializer() { @Override protected void initChannel(SocketChannel ch) throws Exception { ch.pipeline().addLast(“http-decoder”, new HttpRequestDecoder()); ch.pipeline().addLast(“http-aggregator”, new HttpObjectAggregator(65536)); ch.pipeline().addLast(“http-encoder”, new HttpResponseEncoder()); ch.pipeline().addLast(“http-chunked”, new ChunkedWriteHandler()); ch.pipeline().addLast(“fileServerHandler”, new HttpFileServerHandler(url)); } }); ChannelFuture cf =boot.bind(“127.0.0.1”,port).sync(); ...

2016-03-20 · 3 min · 603 words · -

Gradle 修改 Maven 仓库地址

Gradle 修改 Maven 仓库地址 gradle kotlin repositories { mavenCentral() maven { setUrl("<MAVEN REPO URL>") } } http://www.yrom.net/blog/2015/02/07/change-gradle-maven-repo-url/ 近来迁移了一些项目到Android Studio,采用Gradle构建确实比原来的Ant方便许多。但是编译时下载依赖的网速又着实令人蛋疼不已。 如果能切换到国内的Maven镜像仓库,如开源中国的Maven库,又或者是换成自建的Maven私服,那想必是极好的。 一个简单的办法,修改项目根目录下的build.gradle,将jcenter()或者mavenCentral()替换掉即可: allprojects { repositories { maven{ url ‘http://maven.oschina.net/content/groups/public/'} } } 但是架不住项目多,难不成每个都改一遍么? 自然是有省事的办法,将下面这段Copy到名为init.gradle文件中,并保存到 USER_HOME/.gradle/文件夹下即可。 allprojects{ repositories { def REPOSITORY_URL = ‘http://maven.oschina.net/content/groups/public' all { ArtifactRepository repo -> if(repo instanceof MavenArtifactRepository){ def url = repo.url.toString() if (url.startsWith(‘https://repo1.maven.org/maven2') || url.startsWith(‘https://jcenter.bintray.com/')) { project.logger.lifecycle “Repository ${repo.url} replaced by $REPOSITORY_URL.” remove repo } } } maven { url REPOSITORY_URL } } } init.gradle文件其实是Gradle的初始化脚本(Initialization Scripts),也是运行时的全局配置。 更详细的介绍请参阅 http://gradle.org/docs/current/userguide/init_scripts.html

2016-03-20 · 1 min · 79 words · -

chrome extension, 扩展

chrome extension, 扩展 uBlacklist 轻量级进程 栈 -site:qastack.cn -site:coder.work -site:i4k.xyz -site:cxymm.net -site:codenong.com ://www.coder.work/ chrome 扩展 导出 打开扩展程序页面 chrome://extensions/ 选择开发人员模式Developer mode,找到该扩展,记住下方的ID。 点"击打包扩展程序" : Pack Extension选择扩展路径C:\Users\当前用户名\AppData\Local\Google\Chrome\User Data\Default\Extensions\扩展ID\版本号,这里要特别说明,虽然chrome提示是选择扩展根目录,但是如果你把目录选择在扩展ID这一层你就错了,你应该选择下一层的版本号这个目录。然后点击确定,就有提示导出成功,并提示了保存位置,crx文件就可以拿来分享了。 linux path: /home/USER0/.config/chromium/Default/Extensions/fhhdlnnepfjhlhilgmeepgkhjmhhhjkh/2.8.5_0 http://blog.csdn.net/sonictl/article/details/9069977 http://jingyan.baidu.com/article/9158e0004ff9bba25512284d.html https://xieyufei.com/2021/11/09/Chrome-Plugin.html

2016-03-20 · 1 min · 30 words · -

Fiddler

Fiddler 1.为什么是Fiddler? 抓包工具有很多,小到最常用的web调试工具firebug,达到通用的强大的抓包工具wireshark.为什么使用fiddler?原因如下: a.Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要"无刷新修改",如果刷新了页面,所有的修改都不会保存。 b.Wireshark是通用的抓包工具,但是比较庞大,对于只需要抓取http请求的应用来说,似乎有些大材小用。 c.Httpwatch也是比较常用的http抓包工具,但是只支持IE和firefox浏览器 (其他浏览器可能会有相应的插件) ,对于想要调试chrome浏览器的http请求,似乎稍显无力,而Fiddler2 是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。 2.什么是Fiddler? Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的http抓包工具之一 。 它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。 既然是代理,也就是说: 客户端的所有请求都要先经过Fiddler,然后转发到相应的服务器,反之,服务器端的所有响应,也都会先经过Fiddler然后发送到客户端,基于这个原因,Fiddler支持所有可以设置http代理为127.0.0.1:8888的浏览器和应用程序。使用了Fiddler之后,web客户端和服务器的请求如下所示: Fiddler 作为系统代理,当启用 Fiddler 时,IE 的PROXY 设定会变成 127.0.0.1:8888,因此如果你的浏览器在开启fiddler之后没有设置相应的代理,则fiddler是无法捕获到HTTP请求的。如下是启动Fiddler之后,IE浏览器的代理设置: 以Firefox为例,默认情况下,firefox是没有启用代理的 (如果你安装了proxy等代理工具或插件,是另外一种情况) ,在firefox中配置http代理的步骤如下: 工具->选项->高级->网络->设置 。并配置相应的代理如下: 就可以使用Fiddler抓取Firefox的HTTP请求了。 3.Fiddler使用界面简介 Fiddler主界面的布局如下: 主界面中主要包括四个常用的块: 1.Fiddler的菜单栏,上图绿色部分。包括捕获http请求,停止捕获请求,保存http请求,载入本地session、设置捕获规则等功能。 2.Fiddler的工具栏,上图红色部分。包括Fiddler针对当前view的操作 (暂停,清除session,decode模式、清除缓存等) 。 3.web Session面板,上图黄色区域,主要是Fiddler抓取到的每条http请求 (每一条称为一个session) ,主要包含了请求的url,协议,状态码,body等信息,详细的字段含义如下图所示: 4.详情和数据统计面板。针对每条http请求的具体统计 (例如发送/接受字节数,发送/接收时间,还有粗略统计世界各地访问该服务器所花费的时间) 和数据包分析。如inspector面板下,提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息: 而composer面板下,则可以模拟向相应的服务器发送数据的过程 (不错,这就是灌水机器人的基本原理,也可以是部分http flood的一种方式) 。 也可以粘贴一次请求的raw http headers,达到模拟请求的目的: Filter标签则可以设置Fiddler的过滤规则,来达到过滤http请求的目的。最简单如: 过滤内网http请求而只抓取internet的http请求,或则过滤相应域名的http请求。Fiddler的过滤器非常强大,可以过滤特定http状态码的请求,可以过滤特定请求类型的http请求 (如css请求,image请求,js请求等) ,可以过滤请求报文大于或则小于指定大小 (byte) 的请求: 请多的过滤器规则需要一步一步去挖掘。 http://blog.csdn.net/ohmygirl/article/details/17846199

2016-03-17 · 1 min · 67 words · -

java 读文件到Byte[]数组

‘java 读文件到Byte[]数组’ http://blog.sina.com.cn/s/blog_ae48aad6010177ns.html public class Test { public static void main(String[] args){ String filePath = "E:\\softoon\\workspace_softoon\\TestMobile\\src\\1.docx"; String outFilePath = "E:\\softoon\\workspace_softoon\\TestMobile\\src"; String outFileName = "2.docx"; getFile(getBytes(filePath),outFilePath,outFileName); } //获得指定文件的byte数组 public static byte[] getBytes(String filePath){ byte[] buffer = null; try { File file = new File(filePath); FileInputStream fis = new FileInputStream(file); ByteArrayOutputStream bos = new ByteArrayOutputStream(1000); byte[] b = new byte[1000]; int n; while ((n = fis.read(b)) != -1) { bos.write(b, 0, n); } fis.close(); bos.close(); buffer = bos.toByteArray(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return buffer; } //根据byte数组,生成文件 public static void getFile(byte[] bfile, String filePath,String fileName) { BufferedOutputStream bos = null; FileOutputStream fos = null; File file = null; try { File dir = new File(filePath); if(!dir.exists()&&dir.isDirectory()){//判断文件目录是否存在 dir.mkdirs(); } file = new File(filePath+"\\"+fileName); fos = new FileOutputStream(file); bos = new BufferedOutputStream(fos); bos.write(bfile); } catch (Exception e) { e.printStackTrace(); } finally { if (bos != null) { try { bos.close(); } catch (IOException e1) { e1.printStackTrace(); } } if (fos != null) { try { fos.close(); } catch (IOException e1) { e1.printStackTrace(); } } } } }

2016-03-17 · 1 min · 181 words · -

Content-disposition

Content-disposition Content-disposition 是 MIME 协议的扩展, MIME 协议指示 MIME 用户代理如何显示附加的文件。 Content-Disposition 响应头指示回复的内容该以何种形式展示, 是以内联的形式 (即网页或者页面的一部分) , 还是以附件的形式下载并保存到本地。 在 HTTP 场景中, 第一个参数或者是 inline (默认值,表示回复中的消息体会以页面的一部分或者整个页面的形式展示) ,或者是 attachment (意味着消息体应该被下载到本地;大多数浏览器会呈现一个"保存为"的对话框,将 filename 的值预填为下载后的文件名, 假如它存在的话) 。 Content-Disposition: inline Content-Disposition: attachment Content-Disposition: attachment; filename="filename.jpg" 当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名。 (请注意,这是设计导致的;无法使用此功能将文档保存到用户的计算机上,而不向用户询问保存位置。) 服务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt、jpg等,会直接在浏览器中显示,如果需要提示用户保存,就要利用Content-Disposition进行一下处理,关键在于一定要加上attachment: Response.AppendHeader(“Content-Disposition”,“attachment;filename=FileName.txt”); 备注: 这样浏览器会提示保存还是打开,即使选择打开,也会使用相关联的程序比如记事本打开,而不是IE直接打开了。 Content-Disposition 就是当用户想把请求所得的内容存为一个文件的时候提供一个默认的文件名。具体的定义如下: content-disposition = “Content-Disposition” “:” disposition-type *( “;” disposition-parm ) disposition-type = “attachment” | disp-extension-token disposition-parm = filename-parm | disp-extension-parm filename-parm = “filename” “=” quoted-string disp-extension-token = token ...

2016-03-17 · 1 min · 98 words · -

java http file download upload

java http file download upload http://blog.csdn.net/pgmsoul/article/details/7181793 http://blog.csdn.net/xiaojianpitt/article/details/6856536

2016-03-17 · 1 min · 7 words · -

maven install so dll

maven install so dll http://tonyking2010.iteye.com/blog/1845710

2016-03-14 · 1 min · 5 words · -

java reflact invoke

‘java reflact invoke’ http://blog.csdn.net/zhangzeyuaaa/article/details/42522015

2016-03-14 · 1 min · 4 words · -

maven依赖本地非repository中的jar包

maven 依赖本地非 repository 中的 jar 包 maven依赖本地非repository中的jar包 http://www.cnblogs.com/piaolingxue/archive/2011/10/12/2208871.html 博客分类: MAVEN 今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入。 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF/lib这个jar包中的类。 显然实在编译的时候WEB-INF/lib并没有配置到maven-complier-plugin插件src目录中去, 于是将这个目录添加进去,还是不好使。无赖,先把这个jar包安装到本地库中,然后添加dependency。 后来google了下,发现maven提供了scope为system的依赖,文档的原文如下: system This scope is similar to provided except that you have to provide the JAR which contains it explicitly. The artifact is always available and is not looked up in a repository. 这样就可以添加dependency而不需要再将WEB-INF/lib目录下的jar包安装到本地库中了。 具体配置录下: <dependency> <groupId>org.apache</groupId> <artifactId>test</artifactId> <version>1.0</version> <scope>system</scope> <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/paypal_base.jar</systemPath> </dependency> 上面的groupId和artifactId这些都可随便填写就好.

2016-03-12 · 1 min · 59 words · -

xargs

xargs xargs 可以将输入内容 (通常通过命令行管道传递), 转成后续命令的参数, 通常用途有 命令组合: 尤其是一些命令不支持管道输入, 比如 ls 避免参数过长: xargs可以通过 -nx 来将参数分组, 避免参数过长 -d 参数与分隔符, 默认情况下, xargs 将换行符和空格作为分隔符, 把标准输入分解成一个个命令行参数。 -i 表示 find 传递给xargs的结果 由{}来代替 -n 参数分组 -p 交互式提问y来确认命令的每次执行。 -t 在执行前回显各个command -I 指定每一项命令行参数的替代字符串, 我认为是和i差不多,可以这么认为 -i 可以用 -I {} 来代替 ls *.js | xargs -t -n2 ls -al # 输出如下, -n2表示, 将参数以两个为一组, 传给后面的命令。 curl http://foo.bar.com | xargs -t -n1 -d '\n' | xmllint --format 例子: 参数分组 命令行对参数最大长度有限制,xargs通过-nx对参数进行分组来解决这个问题。 首先,创建4个文件用来做实验。 touch a.js b.js c.js d.js 然后运行如下命令: ...

2016-03-10 · 3 min · 499 words · -

时区, 日期格式, UTC、CST、GMT, RFC3339

时区, 日期格式, UTC、CST、GMT, RFC3339 全球24个时区的划分 相较于两地时间表,可以显示世界各时区时间和地名的世界时区表 (World Time) ,就显得精密与复杂多了,通常世界时区表的表盘上会标示着全球24个时区的城市名称,但究竟这24个时区是如何产生的?过去世界各地原本各自订定当地时间,但随着交通和电讯的发达,各地交流日益频繁,不同的地方时间,造成许多困扰,于是在西元1884年的国际会议上制定了全球性的标准时,明定以英国伦敦格林威治这个地方为零度经线的起点 (亦称为本初子午线) ,并以地球由西向东每24小时自转一周360°,订定每隔经度15°,时差1小时。而每15°的经线则称为该时区的中央经线,将全球划分为24个时区,其中包含23个整时区及180°经线左右两侧的2个半时区。就全球的时间来看,东经的时间比西经要早,也就是如果格林威治时间是中午12时,则中央经线15°E的时区为下午1时,中央经线30°E时区的时间为下午2时;反之,中央经线15°W的时区时间为上午11时,中央经线30°W时区的时间为上午10时。以台湾为例,台湾位于东经121°,换算后与格林威治就有8小时的时差。如果两人同时从格林威治的0°各往东、西方前进,当他们在经线180°时,就会相差24小时,所以经线180°被定为国际换日线,由西向东通过此线时日期要减去一日,反之,若由东向西则要增加一日。 世界协调时间 UTC 多数的两地时间表都以 GMT 来表示, 但也有些两地时间表上看不到 GMT 字样, 出现的反而是 UTC 这3个英文字母, 究竟何谓UTC?事实上,UTC 指的是 Coordinated Universal Time- 世界协调时间 (又称世界标准时间、世界统一时间), 是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以「秒」为单位的国际原子时所综合精算而成的时间,计算过程相当严谨精密,因此若以「世界标准时间」的角度来说, UTC 比 GMT 来得更加精准。其误差值必须保持在 0.9 秒以内, 若大于 0.9 秒则由位于巴黎的国际地球自转事务中央局发布闰秒, 使 UTC 与地球自转周期一致。所以基本上 UTC 的本质强调的是比GMT 更为精确的世界时间标准, 不过对于现行表款来说, GMT 与 UTC 的功能与精确度是没有差别的。 UTC 是协调世界时(Universal Time Coordinated)英文缩写, 是由国际无线电咨询委员会规定和推荐, 并由国际时间局(BIH)负责保持的以秒为基础的时间标度。UTC相当于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示. 北京时间比UTC时间早8小时, 以1999年1月1日0000UTC为例, UTC时间是零点, 北京时间为1999年1月1日早上8点整。 GMT(Greenwich Mean Time) 格林威治标准时间 GMT 十七世纪, 格林威治皇家天文台为了海上霸权的扩张计画而进行天体观测。1675 年旧皇家观测所 (Old Royal Observatory) 正式成立, 到了 1884 年决定以通过格林威治的子午线作为划分地球东西两半球的经度零度。观测所门口墙上有一个标志24小时的时钟,显示当下的时间,对全球而言,这里所设定的时间是世界时间参考点, 全球都以格林威治的时间作为标准来设定时间, 这就是我们耳熟能详的「格林威治标准时间」(Greenwich Mean Time,简称G.M.T.) 的由来, 标示在手表上, 则代表此表具有两地时间功能, 也就是同时可以显示原居地和另一个国度的时间。 ...

2016-03-09 · 8 min · 1534 words · -

javascript class

// Declaration class Rectangle { constructor(height, width) { this.height = height; this.width = width; } }

2016-03-07 · 1 min · 16 words · -

gradle cmd 乱码

gradle cmd 乱码 编码GBK的不可映射字符 [compileJava, compileTestJava].options.encoding = ‘UTF-8’

2016-03-07 · 1 min · 8 words · -

负数 十六进制表示

负数 十六进制表示 负数用十六进制表示,通常用的是补码的方式表示. 十六进制 (英文名称: Hexadecimal) ,是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是: 0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。 正数的补是它本身;负数的补码是它本身的值每位求反,最后再加一。 例如:求-3的十六进制 3的十六进制为0003,3求反之后是C,再加1,成D,所以-3的十六进制就是: FFFD

2016-03-07 · 1 min · 12 words · -

objdump

objdump objdump 命令是 Linux 下的反汇编目标文件或者可执行文件的命令,它以一种可阅读的格式让你更多地了解二进制文件可能带有的附加信息。 objdump 是 gcc 工具,用来查看编译后目标文件的组成。 功能: 以一种可阅读的格式让你更多地了解目标文件、可执行文件可能带有的附加信息,也能完成目标文件或者可执行文件的反汇编。 示例: 使用 objdump 查看可执行文件的汇编代码 go build -gcflags "-N -l" test.go objdump -S --disassemble test > test.objdump 查看动态库有哪些符号,包括数据段、导出的函数和引用其他库的函数 objdump -tT xxx.so objdump -x xxx.a 查看动态库依赖项 objdump -x xxx.so | grep "NEEDED" 查看动态符号表 objdump -T xxx.so 假如想知道 xxx.so 中是否导出了符号 yyy ,那么命令为 objdump -T xxx.so | grep “yyy” 。 查看动态符号表 objdump -t xxx.so -T 和 -t 选项在于 -T 只能查看动态符号,如库导出的函数和引用其他库的函数,而 -t 可以查看所有的符号,包括数据段的符号。 版权声明:本文为CSDN博主「mayue_csdn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/mayue_web/article/details/103879976

2016-03-04 · 1 min · 73 words · -