JAVA面试题:String 堆内存和栈内存

java把内存划分为两种:一种是栈(stack)内存,一种是堆(heap)内存 在函数中定义的一些基本类型的变量和对象的引用变量都在栈内存中分配,当在一段代码块定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用 堆内存用来存放由new创建的对象和数组,在堆中分配的内存,由jvm(javavirtualmachine)的自动垃圾回收器来管理,在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象 具体地说:栈和堆都是java用来在Ram中存放数据的地方,与c++不同,java自动管理栈和堆,程序员不能直接地设置栈或堆。 java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray、multiane...

Java中常用的加密方法(JDK)

加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些资料将加密直接分为对称加密和非对称加密)。 双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文。而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算是加密的一种,应该算是摘要算法吧。具体区分可以参考: (本人解释不清呢……) http://security.group.iteye.com/group/wiki/1710-one-way-encryption-algorithm 一、双向加密 (一)、对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。 需要对加密和解密使用相同密钥的加密算法。由于其速度,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。&...

JAVA实现AES加密

       上次介绍了《JAVA实现DES加密》,中间提到近些年DES使用越来越少,原因就在于其使用56位密钥,比较容易被破解,近些年来逐渐被AES替代,AES已经变成目前对称加密中最流行算法之一;AES可以使用128、192、和256位密钥,并且用128位分组加密和解密数据。本文就简单介绍如何通过JAVA实现AES加密。闲话少许,掠过AES加密原理及算法,关于这些直接搜索专业网站吧,我们直接看JAVA的具体实现。2.1加密代码有详细解释,不多废话。/**  * 加密  *   * @param content 需要加密的内容  * @param password  加密密码  * @return  */  public static byte[] ...

前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍

前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍前端自动化,这样的一个名词听起来非常的有吸引力,向往力。当今时代,前端工程师需要维护的代码变得及为庞大和复杂,代码维护、打包、发布等流程也变得极为繁琐,同时浪费的时间和精力也越来越多,当然人为的错误也随着流程的增加而增加了更多的出错率。致使每一个团队都希望有一种工具,能帮助整个团队在开发中能精简流程、提高效率、减少错误率。随之讨论自动化部署也越来越多,并且国内很多大型团队也都有自己成熟的自动化部署工具。据我所知,百度有FIS,腾讯有Modjs,360有燕尾服,还有很多团队在使用Ant,Shell等,而现在讨论较多的是Grunt。在平常的工作之中,我们都不断的在重复着做相同的事情,比如说将Sass编译成CSS,检测JavaScript语法,压缩CSS、JavaScript。特别在团队合作开发中,常常会为了各自的习惯而不断的发生麻烦,给开发带来极大的不便。而且前端开发人员在周而复始的做这些相同的,乏味的事情。很多时候我们想工作变得更有意义,更能专注于开发,就希望有一种工具能让我们不去做这些重...

30个深度学习库:按Python、C++、Java、JavaScript、R等10种语言分类

30个深度学习库:按Python、C++、Java、JavaScript、R等10种语言分类包括Python、C++、Java、JavaScript、R、Haskell等在内的一系列编程语言的深度学习库。一、Python1、Theano是一种用于使用数列来定义和评估数学表达的Python库。它可以让Python中深度学习算法的编写更为简单。很多其他的库是以Theano为基础开发的:Keras是类似Torch的一个精简的,高度模块化的神经网络库。Theano在底层帮助其优化CPU和GPU运行中的张量操作。Pylearn2是一个引用大量如随机梯度(StochasticGradient)这样的模型和训练算法的库。它在深度学习中被广泛采用,这个库也是以Theano为基础的。Lasagne是一个轻量级的库,它可以在Theano中建立和训练神经网络。它简单、透明、模块化、实用、专一而克制。Blocks是一种帮助你在Theano之上建立神经网络模型的框架。2、Caffe是一种以表达清晰、高速和模块化为理念建立起来的深度学习框架。它是由伯克利视觉和学习中心(BVLC)和网上社区贡献者共同开发的。谷歌的...

python实现文章或博客的自动摘要(附java版开源项目)

python实现文章或博客的自动摘要(附java版开源项目)写博客的时候,都习惯给文章加入一个简介。现在可以自动完成了!TF-IDF与余弦相似性的应用(三):自动摘要-阮一峰的网络日志http://www.ruanyifeng.com/blog/2013/03/automatic_summarization.htmlidf.txt来自https://github.com/jannson/yaha/blob/master/yaha/analyse/idf.txtpython分词库中:https://github.com/jannson/yaha使用summarize3需要安装numpy库。GitHub-jannson/yaha:yahahttps://github.com/jannson/yaha基本功能:精确模式,将句子切成最合理的词。全模式,所有的可能词都被切成词,不消除歧义。搜索引擎模式,在精确的基础上再次驿长词进行切分,提高召回率,适合搜索引擎创建索引。备选路径,可生成最好的多条切词路径,可在此基础上根据其它信息得到更精确的分词模式。可用插件:正则表达式插件人名前缀插件地名后缀插...

JavaScript调试技巧之console.log()详解

JavaScript调试技巧之console.log()详解对于JavaScript程序的调试,相比于alert(),使用console.log()是一种更好的方式,原因在于:alert()函数会阻断JavaScript程序的执行,从而造成副作用;alert弹出框需要点击确认比较麻烦,而console.log()仅在控制台中打印相关信息,因此不会造成类似的顾虑。最重要的是alert只能输出字符串,不能输出对象里面的结构,console.log()console.log()可以接受任何字符串、数字和JavaScript对象,可以看到清楚的对象属性结构,在ajax返回json数组对象时调试很方便。//兼容Firefox/IE/Opera使用console.logif(!window.console){window.console={log:function(){}};}window.console=window.console||{};console.log||(console.log=opera.postError); 下面分享两张打印出来的信息图片:php上传多文件conso...

PHPExcel读取excel文件示例

PHPExcel读取excel文件示例PHPExcel最新版官方下载网址:http://phpexcel.codeplex.com/PHPExcel是一个非常方便生成Excel格式文件的类,官方下载包中带有大量如何生成各种样式excel文件的示例,但没有一个读取Excel文件的完整例子,下面是读取的例子:读取Excel的内容主要有两个选择:PHPExcelReader、PHPExcel。PHPExcelReader比较轻量级,仅支持Excel的读取,实际上就是一个Reader。但是可惜的是不能够支持Excel2007的格式(.xlsx)。PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel2007格式(.xlsx)文件的读取。下载PHPExcel后保存到自己的类文件目录中,然后使用以下代码可以打开Excel2007(xlsx)格式的文件:require_once'/libs/PHPExcel-1.8.0/Classes/PHPExcel.php';//修改为自己的目录echo'<p...

javascript闭包(Module模式)的用途和高级使用方式

javascript闭包(Module模式)的用途和高级使用方式javascript闭包的用途:1.匿名自执行函数:或者可以理解为,避免污染全局变量2.缓存:源于闭包的核心特性便是保存状态,应用此特性便可对需要的变量进行缓存3.实现封装:同样可以使用闭包保存状态的特性,充当一个作用域块,将块里面的属性变量至于内存之中来实现封装4.闭包的另一个重要用途是实现面向对象中的对象,传统的对象语言都提供类的模板机制:原理同上。对于闭包的定义很多书籍都很模糊,个人认为比较准确的定义——闭包是函数的代码在运行过程中的一个动态环境函数和闭包要有非常清晰的对比——一个函数只是一段静态的代码、脚本文本,因此它是一个代码书写时,以及编译期的、静态的概念;而闭包则是函数的代码在运行过程中的一个动态环境,是一个运行期的、动态的概念。闭包作为与函数成对的数据,在函数执行过程中处于激活(即可访问)状态(通俗来讲,就是当执行到函数的某一条语句的时候,哪些对象能够被使用)。还有一点,就是闭包的实现方式——JavaScript使用作用域链来实现闭包,...

java,swift,oc互相转换,html5 web开发跨平台

java,swift,oc互相转换,html5web开发跨平台写一个java->swift的程序,这个程序是做跨平台系统的核心部分swift和oc到java也在考虑之列Swift->Java,能方便iOS移植到Androidjava的因为有eclipse,里面有个生成AST的library,所以ast不用自己做了swift的需要根据语义,弄ast,才能转。前端后端都需要弄也就是Android代码可以直接转swift代码,难点需要对java的sdk映射成cocoatouch,通过意译和直译两种方式有一个j2objc的,google的,和os没关系j2objc生成的代码,那叫一个乱,我就一个system.out.println("abcd"),生成了上百行代码这个生成的代码不是让你改的,是让你编译的,编译器认识就可以了转换后oc代码能正常显示修改,但看起来太费劲,跟反编译差不多了----------------------------------web就是天生的多平台web+ios+android+wp+。。。web用户体验不好,尽量优化关键是想怎么改就怎么改,随时上线,不用审...

java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例

java模拟表单上传文件,java通过模拟post方式提交表单实现图片上传功能实例HttpClient测试类,提供getpost方法实例1packagecom.zdz.httpclient;23importjava.io.BufferedReader;4importjava.io.DataInputStream;5importjava.io.DataOutputStream;6importjava.io.File;7importjava.io.FileInputStream;8importjava.io.InputStreamReader;9importjava.io.OutputStream;10importjava.net.HttpURLConnection;11importjava.net.URL;12importjava.util.HashMap;13importjava.util.Iterator;14importjava.util.Map;15importjavax.activation.MimetypesFileTypeMap;1617/**18*java通过模拟post...

javascript中的console.log有什么作用?

javascript中的console.log有什么作用?主要是方便你调式javascript用的。你可以看到你在页面中输出的内容。相比alert他的优点是:他能看到结构话的东西,如果是alert,淡出一个对象就是[objectobject],但是console能看到对象的内容。console不会打断你页面的操作,如果用alert弹出来内容,那么页面就死了,但是console输出内容后你页面还可以正常操作。console里面的内容非常丰富,你可以在控制台输入:console,然后就可看到Console{memory:MemoryInfo,debug:function,error:function,info:function,log:function…}它有网页的各种提示。...

JavaScript中hoisting(悬置/置顶解析/预解析) 实例解释,全局对象,隐含的全局概念

JavaScript中hoisting(悬置/置顶解析/预解析)实例解释,全局对象,隐含的全局概念<html><body><scripttype="text/javascript">//JavaScript中hoisting(悬置/置顶解析/预解析)实例解释myname="global";//globalvariablefunctionfunc(){//varmyname;//等同于->varmyname=undefined;//alert(myname);//"undefined"//myname="local";//alert(myname);//"local"//JavaScript中,你可以在函数的任何位置声明多个var语句,并且它们就好像是在函数顶部声明一样发挥作用,这种行为称为hoisting(悬置/置顶解析/预解析)。//只要你的变量是在同一个作用域中(同一函数),它都被当做是声明的,即使是它在var声明前使用的时候。//当你使用了一个变量,在函数中又重新声明的话,就可能产生逻辑错误(可能不是预期使用全局变量,而是变成局部变量un...

java commons.lang3 ArrayUtils使用

javacommons.lang3 ArrayUtils使用importorg.apache.commons.lang3.ArrayUtils;/***数组追加数组,不重复*/publicstaticint[]arrayAddArray(int[]src,int[]arr){//查询某个Object是否在数组中//ArrayUtils.contains(newint[]{3,1,2},1);//trueint[]newarr=ArrayUtils.clone(src);for(inti=0;i<arr.length;i++){if(!ArrayUtils.contains(newarr,arr[i])){newarr=ArrayUtils.add(newarr,arr[i]);}}//System.out.println("---------------");//for(inti=0;i<newarr.length;i++){//System.out.println(newarr[i]);//}returnnewarr;}/***取数组在一个大小范围内的值*/pu...

redis安装 phpredis Jedis 扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐

redis安装phpredisJedis扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐1、Redis官方网站下载:http://redis.io/download第三方下载redis的windows应用程序,支持32位和64位,根据实际情况下载下载地址:https://github.com/dmajkic/redis/downloads2、将相应的程序copy到你所需要的目录中,在这里我使用的64位,放到E:edis目录3、启动redis服务端:打开一个cmd窗口,先切换到redis所放目录(E:edis),运行redis-server.exeredis.conf注意redis.conf为配置文件,主要配置了redis所使用的端口等信息(如果不写则默认redis.conf)==================================version:redis64-2.8.2101启动服务C:Userszhengdunzhuang>d:D:>cdredisredis-server.exeredis.conf(redis.window...
首页上一页...599600601602603...下一页尾页