
JAVA(安卓)
AIGPTchina
姓名: 性别: 男 年龄:24岁
目前所在地:深圳 工作年限: 1年
英语级别: 四级 计算机级别:程序员
最高学历: 本科 专业: 计算机科学与技术;
展开
-
学而时习之---状态模式
当你允许一个对象在其内部状态改变时改变其行为,这就意味着该对象具有某种形式的条件行为或状态依赖行为。换句话说,对象的行为会根据其当前的状态而变化。当调温器的状态(加热或冷却)改变时,它的行为(加热或冷却)也会相应地改变。状态模式允许一个对象在其内部状态改变时改变其行为,同时保持其接口不变。对象在不同状态下行为不相同时可以使用状态模式。允许一个对象在其内容状态改变时改变它的行为,这样,对象的行为是根据它的状态动态地决定的。从该对象中分离出来,封装到专门的状态类中,而且对象在不同的状态下具有不同的行为。原创 2024-01-04 15:54:20 · 698 阅读 · 0 评论 -
等待超时模式
可以看出,等待超时模式就是在等待/通知范式基础上增加了超时控制,这使得该模式相比原有范式更具有灵活性,因为即使方法执行时间过长,也不会“永久”阻塞调用者,而是会按照调用者的要求“按时”返回。开发人员经常会遇到这样的方法调用场景:调用一个方法时等待一段时间(一般来说是给定一个时间段),如果该方法能够在给定的时间段之内得到结果,那么将结果立刻返回,反之,超时返回默认结果。前面的章节介绍了等待/通知的经典范式,即加锁、条件循环和处理逻辑3个步骤,而这种范式无法做到超时等待。上述描述等待超时模式的伪代码如下。原创 2024-02-27 08:59:29 · 390 阅读 · 0 评论 -
java线程
现代操作系统调度的最小单元是线程,也叫轻量级进程(Light Weight Process),在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。处理器在这些线程上高速切换,让使用者感觉到这些线程在同时执行。线程开始运行,拥有自己的栈空间,就如同一个脚本一样,按照既定的代码一步一步地执行,直到终止。但是,每个运行中的线程,如果仅仅是孤立地运行,那么没有一点儿价值,或者说价值很少,如果多个线程能够相互配合完成工作,这将会带来巨大的价值。原创 2024-02-27 08:34:04 · 155 阅读 · 0 评论 -
java内存模型的基础
从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(Main Memory)中,每个线程都有一个私有的本地内存(Local Memory),本地内存中存储了该线程以读/写共享变量的副本。当线程A和线程B需要通信时,线程A首先会把自己本地内存中修改后的x值刷新到主内存中,此时主内存中的x值变为了1。随后,线程B到主内存中去读取线程A更新后的x值,此时线程B的本地内存的x值也变为了1。在消息传递的并发模型里,由于消息的发送必须在消息的接收之前,因此同步是隐式进行的。原创 2024-02-27 07:49:53 · 373 阅读 · 0 评论 -
volatile是如何来保证可见性的呢?
如果对声明了volatile的变量进行写操作,JVM就会向处理器发送一条Lock前缀的指令,将这个变量所在缓存行的数据写回到系统内存。但是,就算写回到内存,如果其他处理器缓存的值还是旧的,再执行计算操作就会有问题。缓存是一致的,就会实现缓存一致性协议,每个处理器通过嗅探在总线上传播的数据来检查自己缓存的值是不是过期了,当处理器发现自己缓存行对应的内存地址被修改,就会将当前处理器的缓存行设置成无效状态,当处理器对这个数据进行修改操作的时候,会重新从系统内存中把数据读到处理器缓存里。volatile的应用。原创 2024-02-26 07:59:20 · 398 阅读 · 0 评论 -
android 12系统加上TTS引擎
android 12系统加上TTS引擎!原创 2023-08-15 16:54:43 · 1139 阅读 · 0 评论 -
JAVA Workspace in use or cannot be created, choose a different one
Workspace in use or cannot be created, choose a different one.--错误解决办法 eclipse 使用一段时间后,有时会因为一些故障自己就莫名奇妙的关闭了,再打开时有时没有问题,有时有会提示错误 Workspace Unavailable: Workspace in use or cannot be crea转载 2014-08-13 14:16:06 · 816 阅读 · 0 评论