精华内容
下载资源
问答
  • java使用Comparator对List进行自定义排序,为null的放到最后
    万次阅读
    2019-03-05 12:30:59

    一、问题说明

    项目中碰到需要对List中的实体类Student(id,name,age)进行排序,年龄从小到大进行排序,为null的数据排到最后

    现在把问题做个简化,List中只存放Integer(表示年龄),然后按以上规则进行排序

    比如:

    原有数组为[1, null, 5, null, null, 3,  6, null, 4]

    经过排序后为[1, 3, 4, 5, 6, null, null, null, null]

    二、问题解决

    我们只要实现compare方法即可,该方法的参数是需要比较的两个数据(Integer o1,Integer o2)

    如果两者都不为null,就直接进行数字比较;其中如果有一个为null,就将null排到后面

    public static void main(String[] args) {
    	List<Integer> list = new ArrayList<Integer>();
    	list.add(1);
    	list.add(null);
    	list.add(5);
    	list.add(null);
    	list.add(null);
    	list.add(3);
    	list.add(6);
    	list.add(null);
    	list.add(4);
    	System.out.println("之前" + list);
    	Collections.sort(list, new Comparator<Integer>() {
    		@Override
    		public int compare(Integer o1, Integer o2) {
    			// 写法1:
    			if (o1 != null && o2 != null) {
    				return o1.compareTo(o2);
    			} else {
    				return o1 == null ? 1 : -1;
    			}
    			// 写法2:
    			/*return o1 == null ?
    					1 :
    					(o2 == null ? -1 : o1.compareTo(o2));*/
    		}
    	});
    	System.out.println("之后" + list);
    }

    参考链接:http://www.itkeyword.com/doc/0528696999367324818/what-to-do-with-null-fields-in-compare

    更多相关内容
  • chrome在页面渲染过程中的,绿色标志线是First Paint的时间。为什么会出现firstpaint,页面的paint不是在渲染树生成之后吗?其实现代浏览器为了更好的用户体验,渲染引擎将尝试尽快在屏幕上...假如我们将js放在heade...

    将script放在body中内容的最后的两点原因

    1. 避免JavaScript操作DOM失效
    2. 在解析JavaScript代码之前,将页面的内容完全呈现在浏览器中,用户会因为浏览器显示空白页面的时间缩短而感到打开页面的速度变快了

    下面,对这两点原因进行说明。

    原因分析:JavaScript阻塞HTML解析

    下面这张图来自HTML规范,图中清晰地描述了外部JavaScript对HTML解析的阻塞(内联脚本没有加载脚本这一环节,而是直接执行)。

    图中,
    parser:解析
    fetch:获取资源
    execution:执行
    在这里插入图片描述
    可以看到,解析JavaScript代码时(不管是嵌入式代码还是没有deferasync属性的外部JavaScript),页面的处理会暂时停止,此时浏览器窗口将是一片空白。也就是说,<script>标签会阻塞HTML的解析。

    阻塞过程:
    浏览器遇到<script>标签时,会唤醒JavaScript解释器,暂停HTML的解析,等到CSSOM构建完成(如果有的话),开始执行JavaScript脚本,JavaScript执行完毕后继续解析HTML。也就是说,浏览器会等待JavaScript资源下载完毕并执行完毕后才会继续解析HTML。

    这时,我们就会发现一个矛盾。JavaScript是无法操作位于它下方的DOM的,因为此时DOM还没有构建出来。因此最好将<script>放在<body>之后,也就是等到所有的HTML都解析完成之后,再进行JavaScript的相关操作。而CSS会阻塞JavaScript的执行,因此CSS资源应优先于JavaScript资源被引入

    ps:由于JavaScript在操作DOM时,可能会引起浏览器的回流(reflow)或重绘(repaint),影响页面渲染性能,因此应该尽可能避免用JavaScript操作DOM。

    对于有defer属性的脚本,将script放在页面底部依然是最佳选择

    下面这张图来自Can I use…
    在这里插入图片描述
    从图中,我们可以知道:

    1. defer属性只适用于外部脚本文件
    2. 当有多个延迟脚本时(也就是下面的情况),虽然HTML5规范要求脚本按照他们出现的先后顺序执行(也就是第一个延迟脚本先于第二个延迟脚本执行,而两个脚本都会先于DOMContentLoaded事件执行),但现实中,延迟脚本不一定会按照顺序执行,也不一定会在DOMContentLoaded事件触发前执行,因此最好只有一个延迟脚本
    3. 不支持defer属性的浏览器会忽略这个属性,像平常一样处理这个脚本(上图红色部分均不支持该属性,但可以看到支持它的浏览器已达到97.82%,该属性还是很普遍的)。为了使该属性完美地发挥作用,把延迟脚本放在页面底部依然是最佳选择
    <script type='text/javascript' src='example1.js' defer></script>
    <script type='text/javascript' src='example2.js' defer></script>
    

    JavaScript代码编写建议

    最后,根据以上描述,对于javaScript代码编写给出几点建议:

    1. 把全部JavaScript引入放到body元素中页面内容的后面
    2. 最好只包含一个延迟脚本
    3. 将延迟脚本也放在页面底部
    4. 将样式文件放在JavaScript之前(将css放在头部)
    展开全文
  • Linux的日志文件放在哪个目录下

    千次阅读 2021-05-09 06:24:08
    Linux的日志文件放在哪个目录下以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!RedHat Linux常见的日志文件详述如下◆/var/log/boot.log该文件记录了...

    Linux的日志文件放在哪个目录下以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    b86f5d714d8f98b97b29822382135680.png

    RedHat Linux常见的日志文件详述如下

    ◆/var/log/boot.log

    该文件记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息。

    ◆/var/log/cron

    该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID,以及派生出的进程的动作。

    CMD的一个动作是cron派生出一个调度进程的常见情况。

    REPLACE(替换)动作记录用户对它的cron文件的更新,该文件列出了要周期性执行的任务调度。

    RELOAD动作在REPLACE动作后不久发生,这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存。

    该文件可能会查到一些反常的情况。

    ◆/var/log/maillog

    该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动。

    它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统。

    该文件的格式是每一行包含日期、主机名、程序名,后面是包含PID或内核标识的方括号、一个冒号和一个空格,最后是消息。

    该文件有一个不足,就是被记录的入侵企图和成功的入侵事件,被淹没在大量的正常进程的记录中。

    但该文件可以由/etc/syslog文件进行定制。

    由/etc/syslog.conf配置文件决定系统如何写入/var/messages。

    有关如何配置/etc/syslog.conf文件决定系统日志记录的行为,将在后面详细叙述。

    ◆/var/log/syslog

    默认RedHat Linux不生成该日志文件,但可以配置/etc/syslog.conf让系统生成该日志文件。

    它和/etc/log/messages日志文件不同,它只记录警告信息,常常是系统出问题的信息,所以更应该关注该文件。

    要让系统生成该日志文件,在/etc/syslog.conf文件中加上:*.warning /var/log/syslog 该日志文件能记录当用户登录时login记录下的错误口令、Sendmail的问题、su命令执行失败等信息。

    该日志文件记录最近成功登录的事件和最后一次不成功的登录事件,由login生成。

    在每次用户登录时被查询,该文件是二进制文件,需要使用lastlog命令查看,根据UID排序显示登录名、端口号和上次登录时间。

    如果某用户从来没有登录过,就显示为"**Never logged in**"。

    该命令只能以root权限执行。

    系统账户诸如bin、daemon、adm、uucp、mail等决不应该登录,如果发现这些账户已经登录,就说明系统可能已经被入侵了。

    若发现记录的时间不是用户上次登录的时间,则说明该用户的账户已经泄密了。

    ◆/var/log/wtmp

    该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。

    因此随着系统正常运行时间的增加,该文件的大小也会越来越大,增加的速度取决于系统用户登录的次数。

    该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端 tty或时间显示相应的记录。

    命令last有两个可选参数:

    last -u 用户名 显示用户上次登录的情况。

    last -t 天数 显示指定天数之前的用户登录情况。

    ◆/var/run/utmp

    该日志文件记录有关当前登录的每个用户的信息。

    因此这个文件会随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录,不会为用户保留永久的记录。

    系统中需要查询当前用户状态的程序,如 who、w、users、finger等就需要访问这个文件。

    该日志文件并不能包括所有精确的信息,因为某些突发错误会终止用户登录会话,而系统没有及时更新 utmp记录,因此该日志文件的记录不是百分之百值得信赖的。

    以上提及的3个文件(/var/log/wtmp、/var/run/utmp、/var/log/lastlog)是日志子系统的关键文件,都记录了用户登录的情况。

    这些文件的所有记录都包含了时间戳。

    这些文件是按二进制保存的,故不能用less、cat之类的命令直接查看这些文件,而是需要使用相关命令通过这些文件而查看。

    其中,utmp和wtmp文件的数据结构是一样的,而lastlog文件则使用另外的数据结构,关于它们的具体的数据结构可以使用man命令查询。

    每次有一个用户登录时,login程序在文件lastlog中查看用户的UID。

    如果存在,则把用户上次登录、注销时间和主机名写到标准输出中,然后login程序在lastlog中记录新的登录时间,打开utmp文件并插入用户的utmp记录。

    该记录一直用到用户登录退出时删除。

    utmp文件被各种命令使用,包括who、w、users和finger。

    下一步,login程序打开文件wtmp附加用户的utmp记录。

    当用户登录退出时,具有更新时间戳的同一utmp记录附加到文件中。

    wtmp文件被程序last使用。

    ◆/var/log/xferlog

    该日志文件记录FTP会话,可以显示出用户向FTP服务器或从服务器拷贝了什么文件。

    该文件会显示用户拷贝到服务器上的用来入侵服务器的恶意程序,以及该用户拷贝了哪些文件供他使用。

    该文件的格式为:第一个域是日期和时间,第二个域是下载文件所花费的秒数、远程系统名称、文件大小、本地路径名、传输类型(a:ASCII,b:二进制)、与压缩相关的标志或tar,或"_"(如果没有压缩的话)、传输方向(相对于服务器而言:i代表进,o代表出)、访问模式(a:匿名,g:输入口令,r:真实用户)、用户名、服务名(通常是ftp)、认证方法(l:RFC931,或0),认证用户的ID或"*"。

    RedHat Linux默认没有记录该日志文件。

    要启用该日志文件,必须在/etc/syslog.conf文件中添加一行:kern.* /var/log/kernlog 。

    这样就启用了向/var/log/kernlog文件中记录所有内核消息的功能。

    该文件记录了系统启动时加载设备或使用设备的情况。

    一般是正常的操作,但如果记录了没有授权的用户进行的这些操作,就要注意,因为有可能这就是恶意用户的行为。

    该日志文件记录了X-Window启动的情况。

    另外,除了/var/log/外,恶意用户也可能在别的地方留下痕迹,应该注意以下几个地方:root和其他账户的shell历史文件;用户的各种邮箱,如.sent、mbox,以及存放在/var/spool/mail/ 和 /var/spool/mqueue中的邮箱;临时文件/tmp、/usr/tmp、/var/tmp;隐藏的目录;其他恶意用户创建的文件,通常是以"."开头的具有隐藏属性的文件等。

    分页:123

    展开全文
  • 为什么要将script脚本放在body底部

    千次阅读 2018-07-18 18:52:50
    指的是 StepA、StepB、StepC 中的哪一个是非常关键的(虽然至今还没有一个应聘者尝试这么做过),如果 “页面渲染出来了” 指的是 StepC,那么我的最后一问的答案是肯定的——script标签不放在body底部不会拖慢页面...

    说明:

    本文提到的浏览器均是指Chrome。
    “script标签“指的都是普通的不带其他属性的外联javascript。
    web性能优化的手段并不是非黑即白的,有些手段过头了反而降低性能,所以在讨论条件和结论的时候,虽然很多条件本身会带来其他细微的负面或正面影响,为了不使论述失去重点,不会扩展太开。
    一、从一个面试题说起
    面试前端的时候我喜欢问一些看上去是常识的问题。比如:为什么大家普遍把这样的代码放在body最底部?(为了沟通效率,我会提前和对方约定所有的讨论都以chrome为例)

    应聘者一般会回答:因为浏览器生成Dom树的时候是一行一行读HTML代码的,script标签放在最后面就不会影响前面的页面的渲染。

    我很鸡贼地接着问:既然Dom树完全生成好后页面才能渲染出来,浏览器又必须读完全部HTML才能生成完整的Dom树,script标签不放在body底部是不是也一样?











    这其实是个开放性的问题,里面涉及的概念的界定本身就很重要。

    “页面渲染出来了” 指的是什么?
    严格来说,我的最后一问是有歧义的:我们需要统一一下什么叫我们经常挂在嘴边的“页面渲染出来了” —— 指的是是 “首屏显示出来了” 还是 “页面完整地加载好了”(后面统称StepC) ?
    如果指的是首屏显示出来了,那么问题又来了:假设网页首屏有图片,这里的“首屏” 指的是 “显示了全部图片的首屏”(后面统称StepB) 还是 “没有图片的首屏”(后面统称StepA)。

    确定清楚 “页面渲染出来了” 指的是 StepA、StepB、StepC 中的哪一个是非常关键的(虽然至今还没有一个应聘者尝试这么做过),如果 “页面渲染出来了” 指的是 StepC,那么我的最后一问的答案是肯定的——script标签不放在body底部不会拖慢页面完整地加载好的时间。

    显然,我们往往更关心首屏时间,所以,如果 “页面渲染出来了” 特指“没有图片的首屏”,那我的最后一问变成了下面这样,又该如何回答呢?

    既然Dom树完全生成好后才能显示“没有图片的首屏”,浏览器又必须读完全部HTML才能生成完整的Dom树,script标签不放在body底部是不是也一样?

    陷阱
    然而上面的问题还是存在一个陷阱——既然Dom树完全生成好后才能显示“没有图片的首屏”这句话是带欺骗性的,“没有图片的首屏”并不以“完整的Dom树”为必要条件。也就是说:在生成Dom树的过程中只要某些条件具备了,“没有图片的首屏”就能显示出来。

    所以,抛开这些歧义和陷阱,我的问题变成了:

    script标签的位置会影响首屏时间么?

    然而答案并不是那么显而易见,这得从浏览器的渲染机制说起。(再一次说明:本文所说的浏览器都是指chrome)

    二、浏览器的渲染机制
    Google Web Fundamentals 是一个非常优秀的文档,里面讲到了跟web、浏览器、前端的方方面面。我总结一下其中的 Ilya Grigorik 写的 Critical rendering path 浏览器渲染机制部分的内容如下:

    几个概念

    1、DOM:Document Object Model,浏览器将HTML解析成树形的数据结构,简称DOM。
    
    2、CSSOM:CSS Object Model,浏览器将CSS代码解析成树形的数据结构。
    
    3、DOM 和 CSSOM 都是以 Bytes → characters → tokens → nodes → object model. 这样的方式生成最终的数据。如下图所示:
    
    bVsaO
    
    DOM 树的构建过程是一个深度遍历过程:当前节点的所有子节点都构建好后才会去构建当前节点的下一个兄弟节点。
    
    4、Render Tree:DOM 和 CSSOM 合并后生成 Render Tree,如下图:

    bVsaP

    Render Tree 和DOM一样,以多叉树的形式保存了每个节点的css属性、节点本身属性、以及节点的孩子节点。

    注意:display:none 的节点不会被加入 Render Tree,而 visibility: hidden 则会,所以,如果某个节点最开始是不显示的,设为 display:none 是更优的。(具体可以看这里)

    浏览器的渲染过程
    Create/Update DOM And request css/image/js:浏览器请求到HTML代码后,在生成DOM的最开始阶段(应该是 Bytes → characters 后),并行发起css、图片、js的请求,无论他们是否在HEAD里。

    注意:发起 js 文件的下载 request 并不需要 DOM 处理到那个 script
    节点,比如:简单的正则匹配就能做到这一点,虽然实际上并不一定是通过正则:)。这是很多人在理解渲染机制的时候存在的误区。

    Create/Update Render CSSOM:CSS文件下载完成,开始构建CSSOM
    Create/Update Render Tree:所有CSS文件下载完成,CSSOM构建结束后,和 DOM 一起生成 Render Tree。
    Layout:有了Render Tree,浏览器已经能知道网页中有哪些节点、各个节点的CSS定义以及他们的从属关系。
    下一步操作称之为Layout,顾名思义就是计算出每个节点在屏幕中的位置。
    Painting:Layout后,浏览器已经知道了哪些节点要显示(which nodes are visible)、每个节点的CSS属性是什么(their computed styles)、每个节点在屏幕中的位置是哪里(geometry)。就进入了最后一步:Painting,按照算出来的规则,通过显卡,把内容画到屏幕上。
    以上五个步骤前3个步骤之所有使用 “Create/Update” 是因为DOM、CSSOM、Render Tree都可能在第一次Painting后又被更新多次,比如JS修改了DOM或者CSS属性。

    Layout 和 Painting 也会被重复执行,除了DOM、CSSOM更新的原因外,图片下载完成后也需要调用Layout 和 Painting来更新网页。

    看 Timeline,一目了然
    我扒了一段有赞PC首页的代码到本地,通过Node跑起来。Node作为Server端,对/js/jquery.js 做了延时2s返回的处理,并且把 放到导航栏的下面,结果是这样的:

    bVsaO

    bVsaO

    bVsaO

    bVsaO

    从上面的Timeline我们可以看出:

    首屏时间和DomContentLoad事件没有必然的先后关系
    所有CSS尽早加载是减少首屏时间的最关键
    js的下载和执行会阻塞Dom树的构建(严谨地说是中断了Dom树的更新),所以script标签放在首屏范围内的HTML代码段里会截断首屏的内容。
    script标签放在body底部,做与不做async或者defer处理,都不会影响首屏时间,但影响DomContentLoad和load的时间,进而影响依赖他们的代码的执行的开始时间。
    三、问题的答案
    回到前面的问题:

    script标签的位置会影响首屏时间么?

    答案是:不影响(如果这里里的首屏指的是页面从白板变成网页画面——也就是第一次Painting),但有可能截断首屏的内容,使其只显示上面一部分。

    为什么说是“有可能”呢?,如果该js下载地比css还快,或者script标签不在第一屏的html里,实际上是不影响的。明白这一影响边界非常重要,这样我们在考察页面性能瓶颈的时候就有的放矢了。举个例子:在网页的第二屏有一个通用模块,实际上我们是可以把它的js逻辑独立成一个文件,将模块的html和js标签放在一起做成独立的模板引进来的(如果它的js比较小或者说因为多了一个文件会多占用一个TCP连接和带宽,这实际上是另外一个话题了,请参考我文章开头的声明)。

    四、总结、再进一步
    所以,总算弄清楚这个众所周知的常识了。我们来总结一下:

    如果script标签的位置不在首屏范围内,不影响首屏时间 所有的script标签应该放在body底部是很有道理的
    但从性能最优的角度考虑,即使在body底部的script标签也会拖慢首屏出来的速度,
    因为浏览器在最一开始就会请求它对应的js文件,而这,占用了有限的TCP链接数、带宽甚至运行它所需要的CPU。
    这也是为什么script标签会有async或defer属性的原因之一。

    可是,在复杂的实际应用场景中,要贯彻这几条结论可能会遇到问题,比如:

    你的页面是分模块来写的,每一个模块都有自己的html、js甚至css,当把这些模块凑到一个页面中的时候就会出现js自然而然地出现在HTML中间部分。你很难把script标签都放到底部
    即使你把script标签都放到底部,但script标签的存在终究是拖慢了首屏时间、DomContendLoad和loaded的时间。如果只有一个script标签,我们可以加一个async,但多个async的script标签的结果会是js文件被乱序执行的,这显然不是我们想要的。
    我们也遇到了这样的问题,所以就做了一个开源项目:Tiny-Loader —— A small loader that load CSS/JS in best way for page performance 简单好用。

    来自:https://blog.csdn.net/garvisjack/article/details/71077986#t1

    相关文章
    聊聊前端排序的那些事 601Views

    浏览器的布局绘制与DOM操作 214Views
    小技巧:一行代码让浏览器瞬间变成临时编辑器 761Views
    浅析渲染引擎与前端优化 245Views
    JS放在head和放在body中的区别 286Views

    展开全文
  • 我们经常会用到各种表连接(left join, right join, inner join, full join),还有各种分组聚合函数(sum, min, max, avg, count),那么我们在写SQL的时候,对于不同的过滤条件具体是应该放在连接操作中的 ...
  • 以上是把一个值添加到集合中,但是怎么放在指定位置呢 记录一下,亲测有效.  有图中红色部分为list数据,全部为添加进去的值,我放置在首位。   直接上代码: 、       LabelZoneEntity...
  • JS<script> 一定要放在 Body 的最底部吗

    千次阅读 2017-05-02 10:17:32
    指的是 StepA、StepB、StepC 中的哪一个是非常关键的(虽然至今还没有一个应聘者尝试这么做过),如果 “页面渲染出来了” 指的是 StepC,那么我的最后一问的答案是肯定的——script标签不放在body底部不会拖慢页面...
  • 所以根据以上两个原则,再看上面这段代码,就很清楚了,DerivedException异常抛出,根据就近匹配原则,找到最近的catch(BaseException be)处理单元。然后又根据向上转型原则BaseException处理单元可以处理它的派生...
  •  其实以上结果的关键原因就是left join,right join,full join的特殊性, 不管on上的条件是否为真都会返回left或right表中的记录 ,full则具有left和right的特性的并集。 而inner jion没这个特殊性,则条件放在on...
  • 五年了,我在 CSDN 的两个一百万。

    万次阅读 多人点赞 2021-04-16 00:24:00
    公众号写了 100 多篇文章,都放在了这里: Jack Cui 原创合集 我也将所有的文章整理整理好放到了 Github 。 https://github.com/Jack-Cherish/PythonPark 后续计划,会将一些系列的内容,整理成 PDF 发出来,方便...
  • java获取每月最后一天

    万次阅读 多人点赞 2018-02-10 06:37:27
    其实,不纠结于最后一天啦,也可以是上个月的最后一天,下个月的第一天,等等之类的。我发现网上都是写好的一些例子,提供给大家解决那些固定要获取的一个月的最后一天或者第一天,但是代码注释却又惜字如金,导致...
  • 文章目录一. 文章起因二. 大龄转行的困惑点在哪里1....如果我是培训机构的招生老师,我肯定会给这位朋友发几个自己同事的联系方式,比如QQ, 然后让这个同事冒充大龄转行成功的学员,以身试法讲成功故事,最后总能骗得
  • git clone下来的代码放在哪里,如何放在指定路径

    万次阅读 多人点赞 2019-01-23 18:15:55
    今天从github上clone了代码,最后出来形如: 但是话说我的东西下载到哪里去了呢????摸不着头脑,然后百度之,发现一般会放在命令行对应的路径下,也就是 win + R &gt; cmd 查看命令行地址: 然后去此...
  • el-cascader级联组件动态加载数据 ...也就是说通过change获取到的value是string类型,如果获取到的是个对象,那么就可以把当前数据的索引放在当前数据的某个键里,再通过索引将后台返回的数据放入选项里. 总结下来,就...
  • } 以上代码首先创建了一个变量 a 存储的值是0,随后使用 scanf 接收用户输入的值存储至变量 a中,最后使用 if 语句判断用户输入的值是否为3。 if 是关键字,我们可以理解关键字为有特殊功能的字符,在这里 if 就是...
  • 算法学习总结(2)——温故十大经典排序算法

    万次阅读 多人点赞 2019-08-29 14:57:51
    一、什么是排序算法 1.1、排序定义 对一序列对象根据某个关键字进行排序。...外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行;时间复杂度:一个算法执行所耗费的时间。空间...
  • 华为C语言编程规范(精华总结)

    万次阅读 多人点赞 2020-03-24 09:48:55
    根据业界经验,维护期变更代码的成本,小型系统是开发期的5倍,大型系统(100万行代码以上)可以达到100倍。业界的调查指出,开发组平均大约一半的人力用于弥补过去的错误,而不是添加新的功能来帮助公司提高竞争力...
  • //先把这m个数据取出来放在数组b中 *ptr_b = *(ptr_q + (N - m)); ptr_b++; ptr_q++; } //原数组前面的N-m个数向后移动m个位置 for(i = 0; i ;i++) { *ptr_q = *q; q++; ptr_q++; } //把数组b...
  • 亲身试验熟桐油涂装家具,最后更新,出结论 1、桐油适合涂装的方式是:一天2-4次,第一天可以稀料可以1倍以上,真正的熟桐油很容易干的,用好的棉布涂擦,按照我的经验2小时内绝对可以再涂; 2、第二天打磨打磨...
  • 一、冒泡排序 冒泡排序(Bubble Sort)是一种比较简单的排序算法,它重复地走访过要排序的元素,依次比较相邻两个元素,如果它们的顺序错误就把它们...对剩下的元素继续重复以上的步骤,直到没有任何一个元素需要比
  • 大学计算机系最努力的同学都是如何学习的?

    千次阅读 多人点赞 2021-06-23 17:47:54
    以上是建立在有数据结构的基础上,如果对数据结构不了解的话可以先看一下《大话数据结构》或者极客时间上有一门关于数据结构的课程。 算法这方面的话一定不要一直闷头刷题,要学会总结题型和方法。 做的多了你拿到...
  • Android4.0网络操作必须放在子线程中

    千次阅读 2013-10-22 16:22:47
    当你在Android4.0中写以上类似的方法时,如果总是在connection.getOutputStream()处抛异常,那么检查一下是否在子线程中调用; Android4.0中的这一个特性很坑爹,因为如果你在主线程中进行网络操作,它只是...
  • 好了,以上几个就是python中非常神奇的代码,不知道大家看完之后是不是对python的喜爱又加深了一分,那就不枉我大半夜敲这么多字了(说实话敲的有点手疼),其实 简洁高效 就是Python的代名词. 为您准备了贴心的...
  • 以上就是设置电脑桌面文件默认放到D盘和C盘清理的方法了。 最后,如果这篇文章对你有所帮助可以收藏或分享给好友;若今后想要学习了解更多有用有趣的电脑知识或操作技巧,欢迎持续关注我们的最新资讯。返回搜狐,...
  • 前几天一同事去xx头条面试前端开发,遇到了一个面试问题,当时面试官是希望他通过当场思考以后说出答案,并说出解答的思路,问题是这样的: 我手中有一堆扑克牌, 但是观众不知道它的...最后, 观众可以看到桌子...
  • MySQL 数据库规范

    万次阅读 多人点赞 2019-08-30 15:35:48
    order by 最后的字段是组合索引的一部分,并且放在索引组合顺序的最后,避免出现 file_sort 的情况,影响查询性能。正例:where a=? and b=? order by c; 索引应建为 a_b_c;反例:索引中有范围查找,那么索引有序性...
  • 最后更新2021年1月1日) WSL,即Windows Subsystem on Linux。中文叫Linux子系统。可以在windows里,直接启动一个linux系统,用过通过命令行控制。就和远程ssh差不多。但是,比远程ssh方便。你可以用熟悉的Linux...
  • jdk8以上jvm常用参数

    万次阅读 2018-09-19 15:08:53
    值得注意的是我使用的是jdk1.8以上,所以Metaspace代替了之前的Perm。Metaspace使用的是物理内存,而不是像perm从heap中分割出来一部分。而且metaspace会动态扩展,但是我们仍然设置限制一下他的大小,以免系统内存...
  • unity2017以上版本的Assetbundle打包

    千次阅读 2018-04-09 15:15:57
    serialized file:资源被打碎放在一个对象中,最后统一被写进一个单独的文件(只有一个) resource files:某些二进制资源(图片、声音)被单独保存,方便快速加载 它是一个AssetBundle对象,我们可以通过代码...
  • 程序员到底要不要读研,过来人给你几点建议!

    万次阅读 多人点赞 2019-03-13 17:28:56
    在上了贼船之后,我压根没把考研这件事放在心上,买来的参考书更是一字没看(看一眼算我输)直到大三暑假我开始意识到问题的严重性。   那时候有个不大不小的理想,就是想进一个互联网大厂,特别是对游戏公司...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 432,848
精华内容 173,139
关键字:

以上放在最后