网站后台代码添加图片wordpress怎么弄

news/2025/10/4 8:04:20/文章来源:
网站后台代码添加图片,wordpress怎么弄,自己创建网页,汉口网站建设 优帮云如果项目着眼于尽快无BUG上线#xff0c;那么此时可以抓大放小#xff0c;代码的细节可以不精打细磨#xff1b;但是如果有足够的时间开发、维护代码#xff0c;这时候就必须考虑每个可以优化的细节了#xff0c;一个一个细小的优化点累积起来#xff0c;对于代码的运行效…如果项目着眼于尽快无BUG上线那么此时可以抓大放小代码的细节可以不精打细磨但是如果有足够的时间开发、维护代码这时候就必须考虑每个可以优化的细节了一个一个细小的优化点累积起来对于代码的运行效率绝对是有提升的。 作者程序猿久一 前言 代码优化 一个很重要的课题。可能有些人觉得没用一些细小的地方有什么好修改的改与不改对于代码的运行效率有什么影响呢这个问题我是这么考虑的就像大海里面的鲸鱼一样它吃一条小虾米有用吗没用但是吃的小虾米一多之后鲸鱼就被喂饱了。 代码优化也是一样如果项目着眼于尽快无BUG上线那么此时可以抓大放小代码的细节可以不精打细磨但是如果有足够的时间开发、维护代码这时候就必须考虑每个可以优化的细节了一个一个细小的优化点累积起来对于代码的运行效率绝对是有提升的。 代码优化的目标是 1、减小代码的体积 2、提高代码运行的效率 代码优化细节 1、尽量指定类、方法的final修饰符 带有final修饰符的类是不可派生的。在Java核心API中有许多应用final的例子例如java.lang.String整个类都是final的。为类指定final修饰符可以让类不可以被继承为方法指定final修饰符可以让方法不可以被重写。如果指定了一个类为final则该类所有的方法都是final的。Java编译器会寻找机会内联所有的final方法内联对于提升Java运行效率作用重大具体参见Java运行期优化。 此举能够使性能平均提高50% 。 2、尽量重用对象 特别是String对象的使用出现字符串连接时应该使用StringBuilder/StringBuffer代替。由于Java虚拟机不仅要花时间生成对象以后可能还需要花时间对这些对象进行垃圾回收和处理因此生成过多的对象将会给程序的性能带来很大的影响。 3、尽可能使用局部变量 调用方法时传递的参数以及在调用中创建的临时变量都保存在栈中速度较快其他变量如静态变量、实例变量等都在堆中创建速度较慢。另外栈中创建的变量随着方法的运行结束这些内容就没了不需要额外的垃圾回收。 4、及时关闭流 Java编程过程中进行数据库连接、I/O流操作时务必小心在使用完毕后及时关闭以释放资源。因为对这些大对象的操作会造成系统大的开销稍有不慎将会导致严重的后果。 5、尽量减少对变量的重复计算 明确一个概念对方法的调用即使方法中只有一句语句也是有消耗的包括创建栈帧、调用方法时保护现场、调用方法完毕时恢复现场等。所以例如下面的操作 for (int i 0; i list.size; i) {...} 建议替换为 for (int i 0, int length list.size; i length; i) {...} 这样在list.size很大的时候就减少了很多的消耗 6、尽量采用懒加载的策略即在需要的时候才创建 例如 String str aaa;if (i 1) { list.add(str); } 建议替换为 if (i 1) { String str aaa; list.add(str); } 7、慎用异常 异常对性能不利。抛出异常首先要创建一个新的对象Throwable接口的构造函数调用名为fillInStackTrace的本地同步方法fillInStackTrace方法检查堆栈收集调用跟踪信息。只要有异常被抛出Java虚拟机就必须调整调用堆栈因为在处理过程中创建了一个新的对象。异常只能用于错误处理不应该用来控制程序流程。 8、不要在循环中使用try…catch…应该把其放在最外层 除非不得已。如果毫无理由地这么写了只要你的领导资深一点、有强迫症一点八成就要骂你为什么写出这种垃圾代码来了。 9、如果能估计到待添加的内容长度为底层以数组方式实现的集合、工具类指定初始长度 比如ArrayList、LinkedLlist、StringBuilder、StringBuffer、HashMap、HashSet等等以StringBuilder为例 1StringBuilder // 默认分配16个字符的空间 2StringBuilder(int size) // 默认分配size个字符的空间 3StringBuilder(String str) // 默认分配16个字符str.length个字符空间 可以通过类这里指的不仅仅是上面的StringBuilder的来设定它的初始化容量这样可以明显地提升性能。比如StringBuilder吧length表示当前的StringBuilder能保持的字符数量。因为当StringBuilder达到最大容量的时候它会将自身容量增加到当前的2倍再加2无论何时只要StringBuilder达到它的最大容量它就不得不创建一个新的字符数组然后将旧的字符数组内容拷贝到新字符数组中—-这是十分耗费性能的一个操作。试想如果能预估到字符数组中大概要存放5000个字符而不指定长度最接近5000的2次幂是4096每次扩容加的2不管那么 1在4096 的基础上再申请8194个大小的字符数组加起来相当于一次申请了12290个大小的字符数组如果一开始能指定5000个大小的字符数组就节省了一倍以上的空间 2把原来的4096个字符拷贝到新的的字符数组中去。 这样既浪费内存空间又降低代码运行效率。所以给底层以数组实现的集合、工具类设置一个合理的初始化容量是错不了的这会带来立竿见影的效果。但是注意像HashMap这种是以数组链表实现的集合别把初始大小和你估计的大小设置得一样因为一个table上只连接一个对象的可能性几乎为0。初始大小建议设置为2的N次幂如果能估计到有2000个元素设置成new HashMap(128)、new HashMap(256)都可以。 10、当复制大量数据时使用System.arraycopy命令 11、乘法和除法使用移位操作 例如 for (val 0; val 100000; val 5) { a val * 8; b val / 2; } 用移位操作可以极大地提高性能因为在计算机底层对位的操作是最方便、最快的因此建议修改为 for (val 0; val 100000; val 5) { a val 3; b val 1; } 移位操作虽然快但是可能会使代码不太好理解因此最好加上相应的注释。 12、循环内不要不断创建对象引用 例如 for (int i 1; i count; i) {Object obj new Object; } 这种做法会导致内存中有count份Object对象引用存在count很大的话就耗费内存了建议为改为 Object obj ; for (int i 0; i count; i) { obj new Object; } 这样的话内存中只有一份Object对象引用每次new Object的时候Object对象引用指向不同的Object罢了但是内存中只有一份这样就大大节省了内存空间了。 13、基于效率和类型检查的考虑应该尽可能使用array无法确定数组大小时才使用ArrayList 14、尽量使用HashMap、ArrayList、StringBuilder除非线程安全需要否则不推荐使用Hashtable、Vector、StringBuffer后三者由于使用同步机制而导致了性能开销 15、不要将数组声明为public static final 因为这毫无意义这样只是定义了引用为static final数组的内容还是可以随意改变的将数组声明为public更是一个安全漏洞这意味着这个数组可以被外部类所改变。 16、尽量在合适的场合使用单例 使用单例可以减轻加载的负担、缩短加载的时间、提高加载的效率但并不是所有地方都适用于单例简单来说单例主要适用于以下三个方面 1控制资源的使用通过线程同步来控制资源的并发访问 2控制实例的产生以达到节约资源的目的 3控制数据的共享在不建立直接关联的条件下让多个不相关的进程或线程之间实现通信 17、尽量避免随意使用静态变量 要知道当某个对象被定义为static的变量所引用那么gc通常是不会回收这个对象所占有的堆内存的如 public classA { private static B b new B; } 此时静态变量b的生命周期与A类相同如果A类不被卸载那么引用B指向的B对象会常驻内存直到程序终止 18、及时清除不再需要的会话 为了清除不再活动的会话许多应用服务器都有默认的会话超时时间一般为30分钟。当应用服务器需要保存更多的会话时如果内存不足那么操作系统会把部分数据转移到磁盘应用服务器也可能根据MRU最近最频繁使用算法把部分不活跃的会话转储到磁盘甚至可能抛出内存不足的异常。如果会话要被转储到磁盘那么必须要先被序列化在大规模集群中对对象进行序列化的代价是很昂贵的。因此当会话不再需要时应当及时调用HttpSession的invalidate方法清除会话。 19、实现RandomAccess接口的集合比如ArrayList应当使用最普通的for循环而不是foreach循环来遍历 这是JDK推荐给用户的。JDK API对于RandomAccess接口的解释是实现RandomAccess接口用来表明其支持快速随机访问此接口的主要目的是允许一般的算法更改其行为从而将其应用到随机或连续访问列表时能提供良好的性能。实际经验表明实现RandomAccess接口的类实例假如是随机访问的使用普通for循环效率将高于使用foreach循环反过来如果是顺序访问的则使用Iterator会效率更高。可以使用类似如下的代码作判断 if (list instanceof RandomAccess) { for(int i 0; i list.size; i){}}else Iterator? iterator list.iterable; while (iterator.hasNext){iterator.next} } foreach循环的底层实现原理就是迭代器Iterator参见Java语法糖1可变长度参数以及foreach循环原理。所以后半句”反过来如果是顺序访问的则使用Iterator会效率更高”的意思就是顺序访问的那些类实例使用foreach循环去遍历。 20、使用同步代码块替代同步方法 这点在多线程模块中的synchronized锁方法块一文中已经讲得很清楚了除非能确定一整个方法都是需要进行同步的否则尽量使用同步代码块避免对那些不需要进行同步的代码也进行了同步影响了代码执行效率。 21、将常量声明为static final并以大写命名 这样在编译期间就可以把这些内容放入常量池中避免运行期间计算生成常量的值。另外将常量的名字以大写命名也可以方便区分出常量与变量 22、不要创建一些不使用的对象不要导入一些不使用的类 这毫无意义如果代码中出现”The value of the local variable i is not used”、”The import java.util is never used”那么请删除这些无用的内容 23、程序运行过程中避免使用反射 关于请参见反射。反射是Java提供给用户一个很强大的功能功能强大往往意味着效率不高。不建议在程序运行过程中使用尤其是频繁使用反射机制特别是Method的invoke方法如果确实有必要一种建议性的做法是将那些需要通过反射加载的类在项目启动的时候通过反射实例化出一个对象并放入内存—-用户只关心和对端交互的时候获取最快的响应速度并不关心对端的项目启动花多久时间。 24、使用数据库连接池和线程池 这两个池都是用于重用对象的前者可以避免频繁地打开和关闭连接后者可以避免频繁地创建和销毁线程 25、使用带缓冲的输入输出流进行IO操作 带缓冲的输入输出流即BufferedReader、BufferedWriter、BufferedInputStream、BufferedOutputStream这可以极大地提升IO效率 26、顺序插入和随机访问比较多的场景使用ArrayList元素删除和中间插入比较多的场景使用LinkedList这个理解ArrayList和LinkedList的原理就知道了 27、不要让public方法中有太多的形参 public方法即对外提供的方法如果给这些方法太多形参的话主要有两点坏处 违反了面向对象的编程思想Java讲求一切都是对象太多的形参和面向对象的编程思想并不契合参数太多势必导致方法调用的出错概率增加 至于这个”太多”指的是多少个3、4个吧。比如我们用JDBC写一个insertStudentInfo方法有10个学生信息字段要插如Student表中可以把这10个参数封装在一个实体类中作为insert方法的形参。 28、字符串变量和字符串常量equals的时候将字符串常量写在前面 这是一个比较常见的小技巧了如果有以下代码 String str 123; if (str.equals(123)) {...}建议修改为String str 123; if (123.equals(str)) { ... } 这么做主要是可以避免空指针异常 29、请知道在java中if (i 1)和if (1 i)是没有区别的但从阅读习惯上讲建议使用前者 平时有人问”if (i 1)”和”if (1 i)”有没有区别这就要从C/C讲起。 在C/C中”if (i 1)”判断条件成立是以0与非0为基准的0表示false非0表示true如果有这么一段代码 int i 2; if (i 1) { ... }else{ ... } C/C判断”i1″不成立所以以0表示即false。但是如果 int i 2;if (i 1) { ... }else{ ... } 万一程序员一个不小心把”if (i 1)”写成”if (i 1)”这样就有问题了。在if之内将i赋值为1if判断里面的内容非0返回的就是true了但是明明i为2比较的值是1应该返回的false。这种情况在C/C的开发中是很可能发生的并且会导致一些难以理解的错误产生所以为了避免开发者在if语句中不正确的赋值操作建议将if语句写为 int i 2;if (1 i) { ... }else{ ... } 这样即使开发者不小心写成了”1 i”C/C编译器也可以第一时间检查出来因为我们可以对一个变量赋值i为1但是不能对一个常量赋值1为i。 但是在Java中C/C这种”if (i 1)”的语法是不可能出现的因为一旦写了这种语法Java就会编译报错”Type mismatch: cannot convert from int to boolean”。但是尽管Java的”if (i 1)”和”if (1 i)”在语义上没有任何区别但是从阅读习惯上讲建议使用前者会更好些。 30、不要对数组使用toString方法 看一下对数组使用toString打印出来的是什么 public static void main(String[] args) {int is new int{1, 2, 3}; System.out.println(is.toString); } 结果是 [I18a992f  本意是想打印出数组内容却有可能因为数组引用is为空而导致空指针异常。不过虽然对数组toString没有意义但是对集合toString是可以打印出集合里面的内容的因为集合的父类AbstractCollections重写了Object的toString方法。 31、不要对超出范围的基本数据类型做向下强制转型 这绝不会得到想要的结果 public static void main(String[] args) { long l 12345678901234L;inti (int)l;System.out.println(i); } 我们可能期望得到其中的某几位但是结果却是 1942892530  解释一下。Java中long是8个字节64位的所以12345678901234在计算机中的表示应该是 0000 0000 0000 0000 0000 1011 0011 1010 0111 0011 1100 1110 0010 1111 1111 0010  一个int型数据是4个字节32位的从低位取出上面这串二进制数据的前32位是 0111 0011 1100 1110 0010 1111 1111 0010  这串二进制表示为十进制1942892530所以就是我们上面的控制台上输出的内容。从这个例子上还能顺便得到两个结论 整型默认的数据类型是intlong l 12345678901234L这个数字已经超出了int的范围了所以最后有一个L表示这是一个long型数。顺便浮点型的默认类型是double所以定义float的时候要写成””float f 3.5f”接下来再写一句”int ii l i;”会报错因为long int是一个long不能赋值给int 32、公用的集合类中不使用的数据一定要及时remove掉 如果一个集合类是公用的也就是说不是方法里面的属性那么这个集合里面的元素是不会自动释放的因为始终有引用指向它们。所以如果公用集合里面的某些数据不使用而不去remove掉它们那么将会造成这个公用集合不断增大使得系统有内存泄露的隐患。 3 3、把一个基本数据类型转为字符串基本数据类型.toString是最快的方式、String.valueOf(数据)次之、数据””最慢 把一个基本数据类型转为一般有三种方式我有一个Integer型数据i可以使用i.toString、String.valueOf(i)、i””三种方式三种方式的效率如何看一个测试 public static void main(String[] args) { int loopTime 50000; Integer i 0; long startTime System.currentTimeMillis;for (int j 0; j loopTime; j){String str String.valueOf(i); } System.out.println(String.valueOf (System.currentTimeMillis - startTime) ms); startTime System.currentTimeMillis;for (int j 0; j loopTime; j) { String str i.toString; } System.out.println(Integer.toString (System.currentTimeMillis - startTime) ms); startTime System.currentTimeMillis; for (int j 0; j loopTime; j) { String str i ; } System.out.println(i \\ (System.currentTimeMillis - startTime) ms); } 运行结果为 String.valueOf11ms Integer.toString5ms i  25ms  所以以后遇到把一个基本数据类型转为String的时候优先考虑使用toString方法。至于为什么很简单 String.valueOf方法底层调用了Integer.toString方法但是会在调用前做空判断Integer.toString方法就不说了直接调用了i “”底层使用了StringBuilder实现先用append方法拼接再用toString方法获取字符串 三者对比下来明显是2最快、1次之、3最慢 34、使用最有效率的方式去遍历Map 遍历Map的方式有很多通常场景下我们需要的是遍历Map中的Key和Value那么推荐使用的、效率最高的方式是 public static void main(String[] args) { HashMapString, String hm new HashMapString, String;hm.put(111, 222);SetMap.EntryString,String entrySet hm.entrySet;IteratorMap.EntryString, String iter entrySet.iterator; while(iter.hasNext){ Map.EntryString, String entry iter.next; System.out.println(entry.getKey \t entry.getValue); } } 如果你只是想遍历一下这个Map的key值那用”Set keySet hm.keySet;”会比较合适一些 35、对资源的close建议分开操作 意思是比如我有这么一段代码 try{ XXX.close; YYY.close; }catch (Exception e) {...} 建议修改为 try{ XXX.close; }catch (Exception e) { ... }try{ YYY.close; }catch (Exception e) { ... }  虽然有些麻烦却能避免资源泄露。我想如果没有修改过的代码万一XXX.close抛异常了那么就进入了cath块中了YYY.close不会执行YYY这块资源就不会回收了一直占用着这样的代码一多是可能引起资源句柄泄露的。而改为上面的写法之后就保证了无论如何XXX和YYY都会被close掉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机网站菜单栏怎么做东莞网站建设推广技巧

博主是搞是个FPGA的,一直没有真正的研究过以太网相关的技术,现在终于能静下心学习一下,希望自己能更深入的掌握这项最基本的通信接口技术。下面就开始搞了。 一、OSI参考模型 今天我们先学习一下以太网最基本也是重要的知识——OSI参考模型。…

电商网站界面规范新型建筑模板

SA8000认证流程 SA8000认证流程的第一步是申请组织参加管理体系在线自我评估。Social Fingerprint自我评估可以帮助该组织了解 SA8000管理体系要求并判断是否已做好认证申请准备。当该组织认为其管理实践足够成熟,具备认证条件时,可以从20 多家独立的SAA…

用wang域名做购物网站怎么样网站建设预算策划

http://blog.csdn.net/lu_embedded/article/details/60469851 由于 Linux 所具备的开源、稳定、高效、易裁剪、硬件支持广泛等优点,使得它在嵌入式系统领域最近十几年内迅速崛起。目前嵌入式 Linux 系统开发已经开辟了很大的市场,同时也开发出很多成型的…

const在for用不了

js中关于const在for in或者for of中的使用_for in const-CSDN博客

新闻静态网站模板自建视频网站

🌟博主主页:我是一只海绵派大星 📚专栏分类:软件测试笔记 📚参考教程:黑马教程❤️感谢大家点赞👍收藏⭐评论✍️ 目录 1、操作系统 2、Linux发展历程 3、命令行程序 4、cd 切换文件夹…

苏州做网站优化社交电商系统开发

引言 原文链接 近日,一场由微软视窗系统软件更新引发的全球性"微软蓝屏"事件震惊了整个科技界。这次事件源于美国电脑安全技术公司"众击"提供的一个带有"缺陷"的软件更新,如同一颗隐形炸弹在全球范围内引爆,…

网站开发毕业设计摘要范文剪辑师培训班有用吗

IIS-HTTPS(TSL)强制开启的方法和解决过时的安全问题 系统为:Windows server 2008R2 工具为:IIS6 数据库为: Windows Sql server 2014 证书为:腾讯云颁发的AC证书 首先你需要这几个工具 IISCrypto | 检测和为你配置最安全的 策略环境 手写reg注册表 | 来关闭本地的事件 Windo…

有做外贸的平台网站吗永城网站建设

鸿蒙是面向5G物联网、面向全场景的分布式操作系统,其不是安卓系统的分支或修改而来的,与安卓、iOS是不一样的操作系统。鸿蒙将打通手机、电脑、平板、电视、电器设备、工业自动化控制、无人驾驶、车机设备 、智能穿戴统一成一个操作系统,并且…

需要锦州网站建设自己电脑wordpress

数据对齐 数据对齐是一种计算机内存管理技术,确保数据存储在内存中的特定地址上,以提高访问效率和性能。 不同的数据类型(如整数、浮点数、指针等)在内存中的存储位置通常需要满足特定的边界要求,即数据的起始地址是其…

10月北京中学集训随笔

10.4~10.8计划 长达5天的模拟赛 根据刚哥的压力提前释放理论 所以这五天的模拟赛一定要给予最高级别的重视

公司网站域名com好还是cn好视频拍摄剪辑培训班

【说明:转载于http://blog.csdn.net/jojo52013145/article/details/5783677】 1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业级开发"&…

icp备案网站用不了淄博网站建设 招聘

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…

专业做俄语网站建设网站建设公司哪好

在此实现了一个基本的IL汇编程序; 了解MSIL汇编和IL汇编评估堆栈_bcbobo21cn的博客-CSDN博客 它用了下面两句来在屏幕输出字符串, ldstr "I am from the IL Assembly Language..." call void [mscorlib]System.Console::WriteLine (string) …

为什么做的网站在浏览器搜不到做暧暧视频免费视频中国网站

在攻击中,命令注入是比较常见的方式,今天我们细说在软件开发中如何避免命令执行漏洞 我们通过DVWA中不同的安全等级来细说命令执行漏洞 1、先调整DVWA的安全等级为Lower,调整等级在DVWA Security页面调整 2、在Command Injection页面输入127.0.0.1&…

使用100%缩放比例重新启动Visual Studio 界面模糊的解决方案

问题描述 建议:如果是刚开始写WinForm项目 ,建议刚开始就去进行一个替换 ,要不然后面会很麻烦的 ,不仅要计算size 还要去 计算 location 的值 昨天碰到了这个问题 ,当时设置完之后界面就非常的模糊 ,虽然说界面变…

做flash网站遇到函数新手学习做网站

文章目录 22.1 引用其他程序集22.2 命名空间22.2.1 命名空间名称22.2.2 命名空间的补充22.2.3 命名空间跨文件伸展22.2.4 嵌套命名空间 22.3 using 指令22.3.1 using 命名空间指令22.3.2 using 别名指令22.3.3 using static 指令 22.4 程序集的结构22.5 程序集标识符22.6 强命名…

西宁北京网站建设杨浦集团网站建设

blockquote元素的使用已经非常多样化&#xff0c;但语义上它只适用于一件事–标记了一段你的网页被引用从另一来源。这意味着&#xff0c;如果你想让那些花俏的引文&#xff0c;<blockquote>是不是你应该使用元素。让我们看一看如何你应该使用此元素&#xff1a; <art…

什么网站做的产品海报比较多网站怎么开启gzip

好多小伙伴使用win7系统的电脑版微信的时候会收到很多文件资料&#xff0c;平时可以进入微信直接获取文件&#xff0c;那么当我们碰到断网的情况下如何准确找到这些文件呢?并且如果想对文件默认保存位置做出修改又该如何解决呢?小伙伴不要急&#xff0c;现证小编就教大家怎样…

公司网站开发的核心技术企业 网站 程序

简介&#xff1a; 云原生架构本质上也是一种软件架构&#xff0c;最大的特点是在云环境下运行&#xff0c;也算是微服务的一种延伸。 起源 1. 云原生&#xff08;Cloud Native&#xff09;的由来 云原生的概念最早开始于 2010 年&#xff0c;在当时 Paul Fremantle 的一篇博…

网站定制开发公司推荐为什么不用wordpress

nodejs中使用modbus-serial库创建Modbus TCP读取设备的数据在nodejs中安装modbus-serial库本人使用的开发环境是Windows10下的VSCode&#xff0c;安装并配置好了npm、node、cnpm等工具&#xff0c;使用cnpm安装了modbus-serial库&#xff0c;可以在npm中搜到modbus-serial包以及…