我是福克斯,闲来无事,随便写写。欢迎大家多多交流
一,什么是yield()二,什么是wait()wait()方法,让当前线程处于"等待状态",直到其它线程调用此对象的notify()方法或notifyAll()方法,当前线程被唤醒(进入"就绪状态")三,wait()与yield()方法的对比
java的线程是通过java.lang.Thread类来实现的。VM启动时会有一个由主方法所定义的线程。可以通过创建Thread的实例来创建新的线程。每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。通过调用Thread类的start()方法来启动一个线程。在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。 第一是创建状态。在生成线程对象,并没有调用该对象的start方法,这是线程处于创建状态。 第二是就绪状态。当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当前线程,此时处于就绪状态。在线程运行之后,从等待或者睡眠中回来之后,也会处于就绪状态。 第三是运行状态。线程调度程序将处于就绪状态的线程设置为当前线程,此时线程就进入了运行状态,开始运行run函数当中的代码。 第四是阻塞状态。线程正在运行的时候,被暂停,通常是为了等待某个时间的发生(比如说某项资源就绪)之后再继续运行。sleep,suspend,wait等方法都可以导致线程阻塞。 第五是死亡状态
「一辆车子多少钱?一个房子多少钱?」这问题在工程师或设计师的眼里就如「一辆车子多少钱?一个房子多少钱?」,这个问题实在空泛到一个让人无法言语的境界,这也是我最常被问到的问题「做一个网站多少钱?」。说真的我大概能了解提问人的想法,或许只要说出个大概就是他们要的答案,例如说个多少X千和多少X万之间,或许我的职业病,我实在没有办法容忍这种不明确的答案。为何我回答不了这个问题的原因大概是,最起码,给我一个参考的范例嘛,例如你问「这一台这样的车子,二手的,T牌2005年产,你估多少?」虽然提供的资讯不是很多但是起码还是可以计算的。就是大概会落在某个价格区间上,而影响最后价格的大概就是细节!没错,就是细节,或许大家对于网站的理解不是很深所以没有办法提供什么明确的资讯,所以一般我都会把这类问题归类为「随便问问」,所以我都会「随便答答」。「嗯~大概是XX万」其实真正的数字是多少我已经不在乎了,我只是想随便打发他一下,毕竟对于一点概念都没有日后也不知道怎么沟通,我仿佛变成一个商业大师而脑袋就出现一道光,隐隐约约有那么一句话「有案子来很好,但是拒绝一些案子会让妳日子过得更好!」「我只想要一个简单的网站」马
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:MySQL: CONCAT()Oracle: CONCAT(), ||SQL Server: +CONCAT() 的语法如下:CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。请注意,Oracle的CONCAT()只允许两个参数;换言之,一次只能将两个字串串连起来。不过,在Oracle中,我们可以用'||'来一次串连多个字串。来看几个例子。假设我们有以下的表格:Geography 表格region_namestore_nameEastBostonEastNew YorkWestLos AngelesWestSan Diego例子1:MySQL/Oracle:SELECT CONCAT(region_name,store_name) FROM GeographyWHERE store_name = 'Boston';结果:'EastBoston'例子2:Oracle:SELECT region_nam
本篇文章主要讨论一下我们经常会用到的一些对象:VO、DTO、DO和PO。由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念:概念:VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。模型:下面以一个时序图建立简单模型来描述上述对象在三层架构应用中的位置用户发出请求(可能是填写表单),表单的数
在简单的vue实例中看到的Vue实例中data属性是如下方式展示的: let app= newVue({ el:"#app", data:{ msg:'' }, methods:{ } }) 在使用组件化的项目中使用的是如下形式: export default{ data(){ return { }  
一、创建分支 a.在合并之前,我们先建立一个自己的分支,如图所示,点击右下角的git状态栏,然后选择New Branch,设置一个分支的名称。b.填写分支的名称。c.由于上面的对话框中勾选了checkout branch,所以默认创建分支就切换到分支了,最新版本直接创建好默认切换到分支。d.然后在分支代码中改动一个文件用来演示效果,然后提交代码到本地仓库,接着push到远程。e.检查本地的代码变化,并进行commit和push。f.右键并选择commitg.填写代码注释,并选择commit and push的按钮操作。h.直接进行pushi.检查远程仓库是否有提交的记录和分支二、合并分支j.分支创建完成了,下面开始介绍分支代码合并到主干,首先需要切换到到master主干上,切换到主干之后,我们上面在分支上改动的类回到改动之前的样子(因为还没有合并)。k.在remote branch上选择分支,点击后面的三角图标,展开之后选择Merge into current。合并过程可能会出现主干代码和自己分支代码冲突,需要解决冲突,合并完成之后会如图提示信息。o.此时合并合
Stream.of("AAA","BBB","CCC").parallel().forEach(s->System.out.println("Output:"+s));Stream.of("AAA","BBB","CCC").parallel().forEachOrdered(s->System.out.println("Output:"+s);第二行输出的一直是: AAA BBB CCC 而第一种输出的情况不确定。应为是并行处理。 其实两者完成的功能类似,主要区别在并行处理上,forEach是并行处理的,forEachOrder是按顺序处理的,显然前者速度更快。parallel()采用并行化来处理stream流;当普通stream流时,即:Stream.of("AAA","BBB","CCC").forEa
有时候面试会提到,用的时候又不在意,今天有空挨个做了测试,总结如下:foreach: continue;:退出本次循环 break;:退出循环 return;:退出循环List.Foreach: return;:退出本次循环小结:list.Foreach中不能退出循环,foreach中的return;和List.Foreach中的return;用法不同
5.x版本是:spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc\:mysql\://localhost\:3306/test1?useUnicode\=true&characterEncoding\=UTF-8&zeroDateTimeBehavior\=convertToNullspring.datasource.username=xxxspring.datasource.password=xxxx8.x版本就是spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc\:mysql\://localhost\:3306/test1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior\=CONVERT_TO_NULL&serverTi
admin
这个人很懒,什么都没写!!!