- 浏览: 463014 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (369)
- javascript html (20)
- java (31)
- jquery (15)
- jcrop (0)
- JEECG (1)
- ajax (3)
- 反射 (3)
- VI (1)
- mysql (48)
- easyui (1)
- svn (2)
- MD5 加密 (1)
- spring (14)
- ORACLE (8)
- 经验总结 (1)
- TCP/IP协议 (1)
- ICMP协议 (1)
- eclipse (1)
- Reflect (1)
- linux (21)
- android (5)
- excel 操作 (1)
- java tree (1)
- html (1)
- plupload (1)
- mongodb (9)
- aes (1)
- python (1)
- java relax (1)
- highcharts (2)
- json (2)
- java 多线程 (30)
- maven (2)
- 设计模式 (1)
- jsp+js (2)
- 面向对象 (1)
- jvm (16)
- 缓存 (1)
- proxy (1)
- 聊侃 (1)
- 面经 (1)
- java 字节 (1)
- java 类加载器 (2)
- java 基础 (2)
- java 语法糖 (1)
- java 位运算 (1)
- 排序 (3)
- java 服务器性能优化 (19)
- 网络编程 (2)
- jvm 参数设置 (0)
- jersey (1)
- webservice (2)
- nginx+多tomcat 集成 (5)
- nginx (16)
- squid (3)
- memcached (5)
- 正则表达式 (1)
- 常用免费接口 (1)
- jpa (1)
- win7 (1)
- java处理大文件 (1)
- js正则表达式 (1)
- tomcat (1)
- java 敏感字 (1)
- 系统架构优化 (4)
- 学习 (1)
- 本地测试QQ微博第三方登陆 (1)
- java 错误 (1)
- 微信支付 (1)
- https (1)
- httpclient (1)
- awk (2)
- loadrunner (1)
- sql server 2008 (3)
- git (4)
- sql server2008 (1)
- solr (2)
- centos (1)
- 数据存储架构 (3)
- log4j (1)
- weboffice (1)
- 并发编程 (1)
- postgreSQL (0)
- ssl (1)
- openssl (1)
- activeMQ (2)
- IDEA (1)
- shell (1)
- ansible (4)
- docker (2)
- grafana (1)
- jmeter (1)
- TLS (1)
- 将博客搬至CSDN (1)
最新评论
-
dida1990:
啊喔,过去了这么久,不过还是评一个。谁说uuid的hashCo ...
高并发生成订单号(二) -
annan211:
yclovesun 写道使用了uuid,为什么还要machin ...
高并发生成订单号(二) -
yclovesun:
使用了uuid,为什么还要machineId?uuid已经可以 ...
高并发生成订单号(二) -
u013280917:
太深奥,看不懂
mysql优化特定类型的查询
String 是Java中相当强大的类,虽不属于基本类型,但是非常重要。
关于Stirng 其他的不做过多介绍,这里简要说明几个小点。
package String; public class StringDemo { public static void main(String[] args) { String str1 = "abc"; String str2 = "abc"; String str3 = new String("abc"); System.out.println(str1==str2); //true System.out.println(str1==str3); //false System.out.println(str1==str3.intern()); //true } }
以上代码 表明,即使str3 新开辟了空间,其仍指向 和str1一样的实体,也就是说 str3创建新对象的时候,仍然使用的是 常量池当中的值。 intern 方法 作用是 首先进入常量池查看有无该常量,没有的话就创建并且把值放入常量池。
String 类当中 存在一个以空间换时间的方法 substring(index,index2)
使用不当会造成 内存溢出
代码 如下
package String; import java.util.ArrayList; import java.util.List; /** * 其中导致内存溢出 是由其源码决定的,源码使用了 牺牲空间换取时间的做法 * * public String substring(int beginIndex, int endIndex) { if (beginIndex < 0) { throw new StringIndexOutOfBoundsException(beginIndex); } if (endIndex > count) { throw new StringIndexOutOfBoundsException(endIndex); } if (beginIndex > endIndex) { throw new StringIndexOutOfBoundsException(endIndex - beginIndex); } return ((beginIndex == 0) && (endIndex == count)) ? this : new String(offset + beginIndex, endIndex - beginIndex, value); } 这段源码指出 ,即使只截取一小段,也会把原始字符串全部返回,肯定会撑爆。 * @author Administrator * */ public class HugeStr { public static void main(String[] args) { List<String> hander = new ArrayList<String>(); for(int i=0;i<1000;i++){ // HugeStrD h = new HugeStrD();// 这个方法会导致 内存溢出 InvohandleHugeStrD h = new InvohandleHugeStrD();//这个不会内存溢出 hander.add(h.getSubString(1, 5)); } } static class HugeStrD{ private String str = new String (new char[10000000]);//很长的String public String getSubString(int begin,int end){ return str.substring(begin, end); } } static class InvohandleHugeStrD{ private String str = new String (new char[10000000]);//很长的String public String getSubString(int begin,int end){ return new String(str.substring(begin, end)); } } }
发表评论
-
Java高效读取大文件
2015-01-22 19:45 6311、概述 本教程将演示如何用Java高效地读取大文件。 ... -
winSCP 服务器 在线联网
2015-01-09 18:05 7091 新建 bb.bat 文件 里面是你的服务器 列表 ... -
JDK 命令行工具
2014-10-22 14:47 806JDK 命令行工具 实现在tools.jar文件 ... -
windows 监控工具
2014-10-22 11:23 5381 windows 监控工具 运行-perfmon ... -
Amino 框架简介
2014-10-17 11:30 1431对数据加锁是实现多线程的一种策略,但是加锁无疑会增加系 ... -
Java 重入锁(ReentrantLock)和内部锁(synchronized)
2014-10-16 15:44 1599ReentrantLock 和 synchronize的 ... -
Java 锁分离
2014-10-16 15:35 1339读写锁思想的延伸就是锁分离。读写锁根据读写操作功能上 ... -
java 高性能运算-- 双端队列
2014-10-15 16:04 1051JDK 1.6中 提供了一种双端队列,简称 Dequ ... -
java 高性能运算--并发队列
2014-10-15 15:33 2492JDK 提供了两套并发队列的实现,一个是以 Conc ... -
java 高性能运算--量化线程池的大小
2014-10-15 11:42 1330线程池合理的长度取决于将要提交的任务类型和所部署系统的 ... -
java 高性能运算--展开循环
2014-10-14 15:43 1227可以优化的地方实在是太多了,只要你愿意去想,去尝试。代码 ... -
java 高性能运算--switch 替代方案
2014-10-14 15:24 1645Java 原生的语法糖中存在很多种 易于阅读,效率略低的 ... -
java 高性能运算--位运算代替乘除法
2014-10-14 15:03 3956位运算 是公认的 高效运算,在高频计算中,可以使用位运算 ... -
Java 中的弱引用
2014-10-14 14:31 564简单一点说,我们建议使用 WeakHashMap 在系 ... -
Stirng 字符串 原生方法 charAt 与 startWith
2014-10-11 11:23 767charAt(int index) 与 startWit ... -
比 StringTokenizer 更加优化的字符串分割
2014-10-11 11:05 1095上篇文中说到,StringTokenizer 是相对比较 ... -
Java 分割字符串 StringTokenizer
2014-10-10 19:15 704字符分割 jdk建议使用 split或者 正则表达式,但是追求 ... -
java 负载均衡
2014-10-09 19:10 967负载均衡的概念比较广。 具体可参见 http ...
相关推荐
- 对于值类型(如int、string等),Session存储的是变量的副本。这意味着当你在Session中修改值类型的数据,原变量不会受到影响。例如,将一个整数1存入Session,然后在代码中增加1,Session中的原始值不会改变。 ...
如: 当然我们一般都是按照提示来把framework版本设置2.0来解决。为什么可以这么解决了,还有没有其它的解决方法了。 先让我们看看QueryString的源代码吧: 代码如下: public NameValueCollection QueryString { get...
首先,我们要明确一点,面试不仅仅是检验你能否写出一段代码,更重要的是考察你对编程基础的理解和问题解决的能力。以strcpy函数为例,这个看似简单的字符串复制函数,其实隐藏着诸多细节和潜在的问题。 试题1:...
abstract 说明一个类为抽象类,抽象类是指不能直接实例化对象的类。 final 说明一个类为最终类,即改类不能再有子类。 public 说明类为公共类,该类可以被当前包以外的类和对象使用。 private 说明类为...
文档中提到的选择题第一题考察的就是这一点。 - **正确选项**:`String args[]`。 - **解析**:`main` 方法的参数是一个字符串数组,用于接收命令行参数。因此正确形式为 `String[] args` 或 `String args[]`。 ##...
以下类比可以帮助说明这一点。 小说家和剧本作家很少从头开始设计剧情。他们总是沿袭一些业已存在的模式,像“悲剧性英雄”模式(《麦克白》、《哈姆雷特》 等)或“浪漫小说”模式(存在着无数浪漫小说)。同样地,面向...
理解泛型的关键在于认识到类型参数(通常用`T`表示,当然也可以是任何合法的标识符)的作用。类型参数充当了一个占位符的角色,用于在具体使用泛型类或接口时指定实际的类型。这一点与方法的形式参数类似——形式...
认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 PHP 4 以及更高的版本中,您可以使用输出缓存来解决此问题): <html> <?php // 结果出错 // 在调用 header() 之前已存在输出...
为了实现这一点,必须开启SQL Server的CLR集成功能,并设置数据库的TRUSTWORTHY属性为ON,这是因为SQL Server默认情况下不信任外部程序集。 在C#中创建一个能够被SQL Server调用的类库(DLL),需要在类中声明一个...
**9.6 示例:类STRING的拷贝构造函数与赋值函数** - 展示如何正确实现拷贝构造函数和赋值函数。 **9.7 偷懒的办法处理拷贝构造函数与赋值函数** - 在某些情况下,可以使用编译器自动生成的函数,但需要注意适用...
string 类的实例表示 Unicode 字符串。尽管 string 是引用类型,但相等运算符(== 和 !=)被定义为比较 string 对象(而不是引用)的“值”(7.9.7 字符串相等运算符)。这使得对字符串相等性的测试更为直观。字符串...
总之,通过深入研究这个“VisualBasic学习案例”,你可以逐步构建起对VB.NET的全面认识,从简单的控制台应用到复杂的Windows Forms或WPF项目,都能游刃有余。实践是检验真理的唯一标准,所以动手编写代码、运行示例...
本文将对这些题库内容进行整理,以帮助读者巩固和加深对Java基础知识的认识。 首先,要了解Java应用程序的入口方法。每一个Java程序都必须包含一个main方法,它是程序的启动点和运行的入口。这个方法的声明通常遵循...
第四章 数 据 类 型 .28 4.1 值 类 型 .28 4.2 引 用 类 型 .33 4.3 装箱和拆箱 .39 4.4 小 结 .42 第五章 变量和常量 .44 5.1 变 量 .44 5.2 常 量 .46 5.3 小 结 .47 第六章 类 型 转 换 .48 ...
对于已经掌握了VC的朋友:这种程度的开发者应该加深自己对系统原理,技术要点的认识。需要选择一些对原理讲解的比较透彻的书籍,这样一来才会对新技术有更多的了解,最好书中对技术的应用有一定的阐述。尽量选择...
stringlib可能是一个包含字符串处理函数的静态库,你可以通过它学习如何定义和实现库函数,以及如何在其他项目中调用这些函数。这将帮助你提升VC++的编程技能,并对静态链接库的使用有更深入的认识。
【标题】"Team7 March 2021项目—— TypeScript技术深度探讨...在未来的项目中,团队应当充分认识到这一点,提前规划培训,确保每个成员都能有效地利用TypeScript来提高生产力和代码质量,避免再次出现无法交付的情况。
虽然至今为止,对于所有已经检查过的数字,这一猜想都是成立的,但数学家们尚未找到一种通用的方法来证明这一点。 #### 素数与哥德巴赫猜想的关系 在探讨哥德巴赫猜想之前,我们需要先了解什么是素数。素数是指只能...