论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
程序人生
›
程序人生——Java中字符串利用的发起
程序人生——Java中字符串利用的发起
道家人
论坛元老
|
2024-12-27 22:22:44
|
显示全部楼层
|
阅读模式
楼主
主题
1029
|
帖子
1029
|
积分
3087
引出
程序人生——Java中字符串利用的发起
字符串
发起52:推荐利用String直接量赋值
一般对象都是通过new关键字天生,String还有第二种天生方式,即直接声明方式,如String str = “a”;String中尽力推荐利用直接声明的方式,不发起利用new String(“a”)的方式赋值。**原因:直接声明方式:**创建一个字符串对象时,首先检查字符串常量池中是否有字面值相等的字符串,假如有,则不再创建,直接返回池中引用,若没有则创建,然后放到池中,并返回新建对象的引用。**利用new String()方式:**直接声明一个String对象是不检查字符串常量池的,也不会吧对象放到池中。String的intern方法会检查当前的对象在对象池中是否有字面值雷同的引用对象,有则返回池中对象,没有则放置到对象池中,并返回当前对象
发起53:注意方法中传递的参数要求
replaceAll方法传递的第一个参数是正则表达式
发起54:精确利用String、StringBuffer、StringBuilder
String利用“+”举行字符串毗连,之前毗连之后会产生一个新的对象,所以会不绝的创建新对象,优化之后与StringBuilder和StringBuffer采用同样的append方法举行毗连,但是每一次字符串拼接都会调用一次toString方法,所以会很耗时。StringBuffer与StringBuilder基本雷同,只是一个字符数组的在扩容而已,都是可变字符序列,不同点是:StringBuffer是线程安全的,StringBuilder是线程不安全的
发起55:注意字符串的位置
在“+”表达式中,String字符串具有最高优先级)(Java对加号“+”的处理机制:在利用加号举行盘算的表达式中,只要碰到String字符串,则全部的数据都会转换为String类型举行拼接,假如是原始数据,则直接拼接,假如是对象,则调用toString方法的返回值然后拼接
发起56:自由选择字符串拼接方式
字符串拼接有三种方法:加号、concat方法及StringBuilder(或StringBuffer)的append方法。字符串拼接性能中,StringBuilder的append方法最快,concat方法次之,加号最慢。
原因:
1、“+”方法拼接字符串:固然编译器对字符串的加号做了优化,利用StringBuidler的append方法举行追加,但是与纯粹利用StringBuilder的append方法不同:一是每次循环都会创建一个StringBuilder对象,二是每次执行完都要调用toString方法将其准换为字符串—toString方法最耗时;
2、concat方法拼接字符串:就是一个数组拷贝,但是每次的concat操纵都会新创建一个String对象,这就是concat速度慢下来的真正原因;
3、append方法拼接字符串:StringBuidler的append方法直接由父类AbstractStringBuilder实现,整个append方法都在做字符数组处理,没有新建任何对象,所以速度快
发起57:推荐在复杂字符串操纵中利用正则表达式
正则表达式是恶魔,威力强大,但难以控制
发起58:猛烈发起利用UTF编码
一个体系利用统一的编码
发起59:对字符串排序持一种宽容的心态
假如排序不是一个关键算法,利用Collator类即可。重要针对于中文
深入认识JVM
JVM内存分配,类加载
Java进阶(1)——JVM的内存分配 & 反射Class类的类对象 & 创建对象的几种方式 & 类加载(何时进入内存JVM)& 注解 & 反射+注解的案例
创建对象的4种方法总结
Java进阶(4)——结合类加载JVM的过程理解创建对象的几种方式:new,反射Class,克隆clone(拷贝),序列化反序列化
垃圾回收GC
Java进阶(垃圾回收GC)——理论篇:JVM内存模型 & 垃圾回收定位扫除算法 & JVM中的垃圾回收器
简介:本篇博客先容JVM的内存模型,对比了1.7和1.8的内存模型的变革;先容了垃圾回收的语言发展;阐述了定位垃圾的方法,引用计数法和可达性分析发以及垃圾扫除算法;然后先容了Java中的垃圾回收器,由串行、到并行再到并发,最后到G1的演变;最后给出了垃圾回收器的对比和利用指引。
JVM调优,Arthas利用
Java进阶(JVM调优)——阿里云的Arthas的利用 & 安装和利用 & 死锁查找案例,重新加载案例,慢调用分析
Java进阶(JVM调优)——JVM调优参数 & JDK自带工具利用 & 内存溢出和死锁问题案例 & GC垃圾回收
认识多线程
创建多线程方法+了解线程池
Java进阶(5)——创建多线程的方法extends Thread和implements Runnable的对比 & 线程池及常用的线程池
多线程下-1非原子性问题即办理
Java进阶(6)——抢购问题中的数据不安全(非原子性问题)& Java中的synchronize和ReentrantLock锁利用 & 死锁及其产生的条件
再论线程,创建、生命周期
Java进阶(再论线程)——线程的4种创建方式 & 线程的生命周期 & 线程的3大特性 & 集合中的线程安全问题
重要内容:
1.线程创建的方式,继续Thread类,实现Runable接口,实现Callable接口,采用线程池;
2.线程生命周期: join():运行结束再下一个, yield():暂时让出cpu的利用权,deamon():保卫线程,最后结束,sleep():假如有锁,不会让出;
3.线程3大特性,原子性,可见性,有序性;
4.list集合中线程安全问题,hash算法问题;
总结
程序人生——Java中字符串利用的发起
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
道家人
论坛元老
这个人很懒什么都没写!
楼主热帖
CentOS7.9使用sealos部署单节点k8s并部 ...
青龙2.10.13 稳定版+Ninja登录面板+傻 ...
日本开放Wi-Fi 6E认证
软件危机与软件过程模型
〖Python接口自动化测试实战篇⑨〗- 实 ...
LyScript 从文本中读写ShellCode
Redis和Mysql保持数据一致性
推荐一款完全开源,功能丰富,界面精美 ...
C#_串口调试助手-网络拓扑显示 ...
如何精简 Prometheus 的指标和存储占用 ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
移动端开发
DevOps与敏捷开发
鸿蒙
备份
物联网
数据仓库与分析
网络安全
快速回复
返回顶部
返回列表