为什么不用volatile关键字声明的变量,却能在多线程共享变量改变数据? [问题点数:40分,结帖人liangxingchao]

一键查看最优答案

确认一键查看最优答案?
本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!
Bbs1
本版专家分:0
结帖率 100%
Bbs7
本版专家分:11630
Bbs12
本版专家分:382290
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs7
本版专家分:11685
Bbs8
本版专家分:33509
Blank
黄花 2014年7月 C/C++大版内专家分月排行榜第二
2014年5月 C/C++大版内专家分月排行榜第二
Blank
蓝花 2014年10月 C/C++大版内专家分月排行榜第三
2014年4月 C/C++大版内专家分月排行榜第三
Bbs8
本版专家分:33509
Blank
黄花 2014年7月 C/C++大版内专家分月排行榜第二
2014年5月 C/C++大版内专家分月排行榜第二
Blank
蓝花 2014年10月 C/C++大版内专家分月排行榜第三
2014年4月 C/C++大版内专家分月排行榜第三
Bbs6
本版专家分:6735
Bbs12
本版专家分:382290
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs2
本版专家分:448
Blank
蓝花 2012年12月 硬件/嵌入开发大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs2
本版专家分:211
Java线程教程(三)之volatile关键字与synchronized区别
目录 一、基本概念 二、<em>volatile</em>的使用 三、留意复合类操作 四、synchronized与<em>volatile</em>辨析 4.1重排序与happen-before规则 4.2 happen-before规则 4.3 内存屏障指令(memory barriers) 4.4 <em>volatile</em>实现原理 五、<em>volatile</em><em>关键字</em>语义 一、基本概念 先补充一下概念:Java 内...
多线程变量共享的一个坑(volatile)
public class Test implements Runnable{ boolean flag = false; public static void main(String[] args) { Test test = new Test(); Thread thread = new Thread(test); thread...
Java多线程中的volatile变量
首先,<em>volatile</em>的作用是保证内存的可见性,但是不能保证操作的原子性。 在Java中内存模型中,将内存模型分为主内存和工作内存。 主内存是对所有线程所<em>共享</em>的,而每个线程都有自己的工作内存(比如cpu缓存,寄存器等等都是一个原理的,都是为了加快读取速度),工作内存是不<em>共享</em>的。 在线程工作时,会从主内存中拷贝一份需要的<em>变量</em>放在工作内存。线程对<em>变量</em>的所有操作,都是先操作工作内存中的副本,然后由副本对...
volatile关键字能否保证线程安全?
单纯使用 <em>volatile</em> <em>关键字</em>是不能保证线程安全的 <em>volatile</em> 只提供了一种弱的同步机制,用来确保将<em>变量</em>的更新操作通知到其他线程 <em>volatile</em> 语义是禁用 CPU 缓存,直接从主内存读、写<em>变量</em>。表现为:更新 <em>volatile</em> <em>变量</em>时,JMM 会把线程对应的本地内存中的<em>共享</em><em>变量</em>值刷新到主内存中;读<em>volatile</em> <em>变量</em>时,JMM 会把线程对应的本地内存设置为无效,直接从主内存中读...
Java多线程volatile关键字和内存屏障
前面一篇文章在介绍Java内存模型的三大特性(原子性、可见性、有序性)时,在可见性和有序性中都提到了<em>volatile</em><em>关键字</em>,那这篇文章就来介绍<em>volatile</em><em>关键字</em>的内存语义以及实现其特性的内存屏障。 <em>volatile</em>是JVM提供的一种最轻量级的同步机制,因为Java内存模型为<em>volatile</em>定义特殊的访问规则,使其可以实现Java内存模型中的两大特性:可见性和有序性。正因为<em>volatile</em><em>关键字</em>...
并发volatile关键字如何保证可见性和有序性及底层实现原理
<em>volatile</em>用法 首先我们先了解一下<em>volatile</em><em>关键字</em>的用法 ,<em>volatile</em>被喻为轻量级的"synchronized",它只是一个<em>变量</em>修饰符,只能用来修饰<em>变量</em>不能修饰方法和代码块。 经典的用法:双重校验锁实现单例 public class Singleton { private <em>volatile</em> static Singleton singleton; pri...
第四章:java 多线程volatile关键字 atomic类学习 java 原子性讲解,变量可见与不可见说明
  <em>volatile</em>概念:<em>volatile</em><em>关键字</em>的主要作用是使<em>变量</em>在多个线程间可见。       在说<em>volatile</em><em>关键字</em>之前,先来看两个小例子:package com.xiaoyexinxin.ThreadLearn; public class RunThread extends Thread{ private int num=0; public void setNum(int num)...
volatile实现线程之间的通信原理分析
<em>volatile</em> 写 - 读建立的 happens before 关系 内容摘自深入理解Java内存模型(四)——<em>volatile</em> <em>volatile</em> 对线程的内存可见性的影响比 <em>volatile</em> 自身的特性更为重要,需要我们去关注。从 JSR-133 开始,<em>volatile</em> <em>变量</em>的写 - 读可以实现线程之间的通信。 从内存语义的角度来说,<em>volatile</em> 与监视器锁有相同的效果:<em>volatile</em> ...
请教不用volatile的情况
开启编译器的优化功能,一些跟寄存器相关的<em>变量</em>要加上<em>volatile</em>, 那什么样的<em>变量</em>可以不加?感觉好像都要加。有哪位大神知道吗
智能小车48:不用volatile,编译器会优化什么?
有网友评论了我前面的中断实验的c代码,说全局<em>变量</em>需加上<em>volatile</em><em>关键字</em>。平时写Java程序也没有用到这个,只知道这个用于<em>多线程</em>,但也不能完全解决<em>多线程</em>并发修改<em>共享</em><em>变量</em>的问题。这几天我都在思考这个问题,向干了多年嵌入式开发的同学请教,还问了下韦东山老师,然后下文就是我的这个问题的理解。 测试两种情况 ,分别给全局<em>变量</em>INTNUM加上<em>volatile</em>和不加<em>volatile</em>,然后在AtmelSt
哪位大神解释下[volatile不能保证原子性,也就不能保证线程安全]这句话
哪位大神解释下[<em>volatile</em>不能保证原子性,也就不能保证线程安全]这句话 哪位大神解释下[<em>volatile</em>不能保证原子性,也就不能保证线程安全]这句话 哪位大神解释下[<em>volatile</em>不能保证原子性,也就不能保证线程安全]这句话
初学Valotile关键字需要掌握的3个原则
初学Valotile<em>关键字</em>需要掌握的三个原则:原子性、有序性、可见性。 一:原子性 相信了解过<em>数据</em>库的都知道在<em>数据</em>库中也有个原子性,不错,Valotile<em>关键字</em>的原子性是和<em>数据</em>库中的原子性是相差不大的,都是某个<em>变量</em>或者字段是最小的、不可再分的。但Valotile<em>关键字</em>的原子性主要是指一种原子操作,也就是只有简单的读取、赋值(而且必须是将数字赋值给某个<em>变量</em>,<em>变量</em>之间的相互赋值不是原子操作)才是原...
多线程对各种变量共享(经典)
静态方法(Static Method)与静态成员<em>变量</em>一样,属于类本身,在类装载的时候被装载到内存(Memory),不自动进行销毁,会一直存在于内存中,直到JVM关闭。非静态方法(Non-Static Method)又叫实例化方法,属于实例对象,实例化后才会分配内存,必须通过类的实例来引用。不会常驻内存,当实例对象被JVM 回收之后,也跟着消失。静态<em>变量</em>:线程非安全。静态<em>变量</em>即类<em>变量</em>,位于方法区,为...
valotile关键字-自我理解
<em>多线程</em>问题如何解决呢? 按照传统的方法,我们会给想要同步的代码加上同步锁(synchronized),但是这样效率又很低,那么有没有更好的解决办法呢? 当然是有的,比如valotile<em>关键字</em>,用来确保将<em>变量</em>的更新操作通知到其他线程。当把<em>变量</em><em>声明</em>为<em>volatile</em>类型后,编译器与运行时都会注意到这个<em>变量</em>是<em>共享</em>的,因此不会将该<em>变量</em>上的操作与其他内存操作一起重排序。<em>volatile</em><em>变量</em>不会被缓存在寄...
为什么volatile关键字保证不了线程安全
    在当前高并发的时代,不懂一点高并发<em>多线程</em>都不好意思出去,即使没地方使用,网上大多数相关文档博客也都讲解了这些部分。    我并不想具体介绍什么是<em>volatile</em>,我写这篇博客目的是说明白为什么<em>volatile</em>保证不了线程安全。想要线程安全必须保证原子性,可见性,有序性。而<em>volatile</em>只能保证可见性和有序性    在说明这个问题之前,首先还是要说明下cpu和内存,cpu和内存直接是有高速...
为什么在多线程程序中要慎用volatile关键字
花了一天时间总结了一下“为什么在<em>多线程</em>程序中要慎用<em>volatile</em><em>关键字</em>?” 我写这篇文章的初衷是帮助消除社区长久以来对<em>volatile</em><em>关键字</em>的误解和错误用法。 这篇文章详细剖析了为什么在多核时代进行
volatile和static在多线程中疑问
在单例中静态<em>变量</em>除了存储和用法不同和实例<em>变量</em>不同以外,其是可以相当于<em>volatile</em> 修饰的实例<em>变量</em>
多线程,static变量volatile
static<em>变量</em>加载到了不同线程的各自工作缓存中,为什么B线程对init<em>变量</em>值的修改在A线程中可见了,这边并未使用<em>volatile</em>修饰init。但是在A线程中添加局部<em>变量</em>后,B线程对init值的修改
多线程之可见性:volatile
一.什么是<em>volatile</em>,它的作用是什么 我们知道线程安全的三大核心就是原子性、可见性和顺序性,synchronized可以实现原子性,而<em>volatile</em>就是来实现可见性。 那么什么是可见性呢? 我们知道,在现代计算机中,由于 CPU 直接从主内存中读取<em>数据</em>的效率不高,所以都会对应的 CPU 高速缓存,先将主内存中的<em>数据</em>读取到缓存中,线程修改<em>数据</em>之后首先更新到缓存,之后才会更新到主内存。如...
java中volatile关键字的含义--volatile并不能做到线程安全
java中<em>volatile</em><em>关键字</em>的含义--<em>volatile</em>并不能做到线程安全在Java线程并发处理中,有一个<em>关键字</em><em>volatile</em>的使用目前存在很大的混淆,以为使用这个<em>关键字</em>,在进行<em>多线程</em>并发处理的时候就可以万事大吉。Java语言是支持<em>多线程</em>的,为了解决线程并发的问题,在语言内部引入了同步块 和 <em>volatile</em> <em>关键字</em>机制。synchronized 同步块大家都比较熟悉,通过 synchroni...
volatile多线程编程的最好伙伴
voaltile<em>关键字</em>被设计成在现存的某个异步事件中防止会导致代码错误的编译器优化。 仅仅是一个小小的<em>关键字</em> 当谈及到线程时,尽管所有的C和C++标准都明显的沉默,但是它们以<em>volatile</em><em>关键字</em>的形式对<em>多线程</em>做了小小的让步。 就像更知名的极其相似的const一样,<em>volatile</em>是一个类型修饰符。它的目的是用于在不同线程中访问和修改的<em>变量</em>协同工作。基本上,没有<em>volatile</em>,
多线程volatile关键字
之前讲解了<em>多线程</em>的synchronized<em>关键字</em>,现在再学习一下<em>volatile</em><em>关键字</em>。1 <em>volatile</em><em>关键字</em>用来做什么?线程安全包括两个方面:原子性和可见性。Java的同步机制都是围绕这两个方面来确保线程安全的。其中原子性是指多个动作必须依次连续完成,必须保持一致性和完整性,这可以通过synchronized<em>关键字</em>来实现;可见性是指<em>变量</em>在多个线程之间是可见的,即如果其中一个线程<em>改变</em>了<em>变量</em>的值,
C++多线程有必要加volatile么?
1<em>volatile</em>的作用是: 作为指令<em>关键字</em>,确保本条指令不会因编译器的优化而省略, 且要求每次直接读值.简单地说就是防止编译器对代码进行优化.比如如下程序: XBYTE[2] = 0x55; XBYTE[2] = 0x56; XBYTE[2] = 0x57; XBYTE[2] = 0x58; 对外部硬件而言,上述四条语句分别表示不同的操作,会产生四种不同的动作,
多线程---volatile关键字
在<em>多线程</em>中,<em>volatile</em><em>关键字</em>是很重要的一个知识点,在<em>多线程</em><em>共享</em>资源的时候,每个线程<em>数据</em>对外都是不可见的,这就容易出现”脏读”现象,其实就是线程私有堆栈中的<em>数据</em>和公共堆栈中的<em>数据</em>不同步造成的.解决这样的问题,就要使用<em>volatile</em><em>关键字</em>了。 内存结构 有这个结构图,就能很清晰的知道为毛会造成<em>数据</em>的不同步了。每个线程都会有各自的线程栈,执行运算的时候,是从公共堆栈读取<em>数据</em>到线程堆栈中,线程
多线程之内存可见性Volatile(一)
从这篇博文开始,我们开始分享一些<em>多线程</em>的内容,毕竟在工作中,使用<em>多线程</em>比较多。多总结一下,终归没有坏处。这个系列的文章不会特别长,争取在3到5分钟之间结束,主要以说明白内容,给出相应的解决方案,重点在于实践。如标题所示,这篇博文我们简单的介绍一下内存可见性问题,之前,要简单的介绍一下什么是内存模型?内存模型什么是JAVA 内存模型?Java Memory Model (JAVA 内存模型)是描述线程
volatile关键字用法
剖析为什么在多核<em>多线程</em>程序中要慎用<em>volatile</em><em>关键字</em>? 转: http://www.parallellabs.com/2010/12/04/why-should-we-be-care-of-<em>volatile</em>-keyword-in-multithreaded-applications/ 这篇文章详细剖析了为什么在多核时代进行<em>多线程</em>编程时需要慎用<em>volatile</em><em>关键字</em>。 主要内容有:
Volatile与多线程
随着多核的日益普及,越来越多的程序将通过<em>多线程</em>并行化的方式来提升性能。然而,编写正确的<em>多线程</em>程序一直是一件非常困的事情,<em>volatile</em><em>关键字</em>的使用就是其中一个典型的例子。 C/C++中的<em>volatile</em>一般不能用于<em>多线程</em>同步 在C/C++中,如果想把一个<em>变量</em><em>声明</em>为<em>volatile</em>,就相当于告诉编译器这个<em>变量</em>是“易变的”,他随时可能在其他地方被修改,所以编译器不能对其做任何变化:即每次读写该变
多线程volatile关键字解析
<em>volatile</em>主要的作用就是保证<em>变量</em>的可见性,使用<em>volatile</em>修饰的<em>变量</em>每次修改后会立刻从缓存行刷回主内存,也会使已经加载的失效,所以每次获取的时候都是最新的,但是不能保证原子性。另外一点就是可以防止指令重排序。 一. <em>volatile</em><em>多线程</em>可见性 如下代码: public class PrintStringA { private boolean isContinuePrin...
多线程并发问题第一篇--volatile
你真的了解volitile<em>关键字</em>吗?1.java内存模型想要理解<em>volatile</em>为什么能确保可见性,就要先理解Java中的内存模型是什么样的。java内存模型规定了所有的<em>变量</em>都存储在主内存中,每条线程中还有自己的工作内存,线程工作内存中保存了该线程所使用到的<em>变量</em>,这些<em>变量</em>是从主内存中拷贝出来的,Java内存模型定义了<em>多线程</em>之间<em>共享</em><em>变量</em>的可见性以及如何在需要的时候对<em>共享</em><em>变量</em>进行同步,线程对<em>变量</em>的所有...
java volatile关键字多线程环境下的作用
提到<em>volatile</em>之前,我们首先来看看java的内存模型,因为他们之间有密切的关系。 计算机在执行的过程中,每条指令都有cpu来完成运算,势必要涉及读取<em>数据</em>和写入<em>数据</em>,由于程序执行过程中,<em>数据</em>是存放在主内存中,因此任何对<em>数据</em>的操作都需要与主内存交互进行,大大的降低了指令的执行速度,因此cpu中就出现了高速缓存。         也就是说,先从主内存中复制一份<em>数据</em>到cpu的高速缓存中,这样cp...
volatile 与 线程安全
服务端编程的3大性能杀手:1、大量线程导致的线程切换开销。2、锁。3、非必要的内存拷贝。所以说锁在<em>多线程</em>编程中的地位是很重要的。我们找工作的时候,经常会谈到<em>多线程</em>,貌似<em>多线程</em>挺难的,很值得技术人员拿出来说说。那么我们讲来讲去,<em>多线程</em>到底难在什么地方?会不会是因为编程语言在<em>多线程</em>编程方面的基础设施没有理清楚,导致新手不能正确和安全的编写<em>多线程</em>程序?我们知道<em>多线程</em>编程中有三个核心概念,分别是可见性、原...
Java 多线程之 synchronized 和 volatile 的比较
概述 在做<em>多线程</em>并发处理时,经常需要对资源进行可见性访问和互斥同步操作。有时候,我们可能从前辈那里得知我们需要对资源进行 <em>volatile</em> 或是 synchronized <em>关键字</em>修饰处理。可是,我们却不知道这两者之间的区别,我们无法分辨在什么时候应该使用哪一个<em>关键字</em>。本文就针对这个问题,展开讨论。 版权说明 著作权归作者所有。 商业转载请联系作者获得授权,非商业...
为什么volatile也无法保证线程安全
要了解Volatile首先要从java内存模型说起
volatile关键字的线程安全问题总结
简介<em>volatile</em><em>关键字</em>保证了在<em>多线程</em>环境下,被修饰的<em>变量</em>在别修改后会马上同步到主存,这样该线程对这个<em>变量</em>的修改就是对所有其他线程可见的,其他线程能够马上读到这个修改后值. Thread的本地内存每个Thread都拥有自己的线程存储空间Thread何时同步本地存储空间的<em>数据</em>到主存是不确定的例子借用Google JEREMY MANSON 的解释,上图表示两个线程并发执行,而且代码顺序上为Thre...
【JAVA】线程安全的懒汉模式为什么要使用volatile关键字
来看这样一段代码,为什么一定要用<em>volatile</em><em>关键字</em>修饰instance<em>变量</em>呢? public class Singleton{ private static <em>volatile</em> Singleton instance; private Singleton(){ } public static Singleton getInstance(){ if(instance=...
volatile关键字无法保证线程安全的讨论
讨论之前还是先就内存模型及相关概念进行简单的介绍 内存模型: 我们都知道CPU与内存之间有一个高速缓存,当程序在运行过程中,会将运算需要的<em>数据</em>从主存复制一份到CPU的高速缓存当中,那么CPU进行计算时就可以直接从它的高速缓存读取<em>数据</em>和向其中写入<em>数据</em>,当运算结束之后,再将高速缓存中的<em>数据</em>刷新到主存当中。 缓存一致性问题: 看如下代码 i =...
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本<em>变量</em>工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调<em>数据</em>结构以及算法学习的重要性,所以就有一些读者经常问我,<em>数据</em>结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与<em>数据</em>结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及<em>数据</em>结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
《阿里巴巴开发手册》读书笔记-编程规约
Java编程规约命名风格 命名风格 类名使用UpperCamelCase风格 方法名,参数名,成员<em>变量</em>,局部<em>变量</em>都统一使用lowerCamelcase风格 常量命名全部大写,单词间用下划线隔开, 力求语义表达完整清楚,不要嫌名字长 ...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取<em>数据</em>。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回<em>数据</em>。 2.解析<em>数据</em>。爬虫程序会把服务器返回的<em>数据</em>解析成我们能读懂的格式。 3.提取<em>数据</em>。爬虫程序再从中提取出我们需要的<em>数据</em>。 4.储存<em>数据</em>。爬虫程序把这些有用的<em>数据</em>保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取<em>数据</em>。 首先,我们将会利用一个强大的库——requests来获取<em>数据</em>。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口<em>数据</em>吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频<em>数据</em>的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大<em>数据</em>平台中,播放<em>数据</em>的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的<em>数据</em>进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型<em>数据</em>库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在<em>数据</em>库的访问速度上 随着应用程序的运行,<em>数据</em>库的中的<em>数据</em>会越来越多,处理时间会相应变慢 <em>数据</em>是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Linux 命令(122)—— watch 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] watch(1) manual
Linux 命令(121)—— cal 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] cal(1) manual
记jsp+servlet+jdbc实现的新闻管理系统
1.工具:eclipse+SQLyog 2.介绍:实现的内容就是显示新闻的基本信息,然后一个增删改查的操作。 3.<em>数据</em>库表设计 列名 中文名称 <em>数据</em>类型 长度 非空 newsId 文章ID int 11 √ newsTitle 文章标题 varchar 20 √ newsContent 文章内容 text newsStatus 是否审核 varchar 10 news...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情<em>数据</em>存入Mysql 进行<em>数据</em>分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做<em>数据</em>屏幕 使用Tableau做<em>数据</em>分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送<em>数据</em>统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
新来个技术总监,禁止我们使用Lombok!
我有个学弟,在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范、日志规范、甚至是要求大家统一使用某一款IDE。 但是这些都不是我这个学弟和我吐槽的点,他真正和我吐槽的是,他很不能理解,这位新来的技术总监竟然禁止公司内部所有开发使用Lombok。但是又没给出十分明确的,可以让人信服的理由。 于...
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
2020金三银四,一篇文章教你如何征服面试官,拿到offer
2020年,跳槽面试就靠它们了,现在每天刷题,看源码文档,最近看的这些题目还是有些难度,有一部分我都要好好想一想才能回答出来,或者回答不出来,总的来说知识宽度够了深度还跟不上。所以要重点突破下底层的东西。这篇文章我总结了很久,希望对正在准备面试的同仁们有点帮助。没错我就是传说中的面霸!! 一. 面试准备 首先,是笔试题,这点是初级程序员绕不过去的坎。 笔试题一般的公司都会出的,除非你是大牛,可以选...
用Python开发实用程序 – 计算器
作者:隋顺意 一段时间前,自己制作了一个库 “sui-math”。这其实是math的翻版。做完后,python既然可以轻易的完成任何的数学计算,何<em>不用</em>python开发一个小程序专门用以计算呢? 现在我们越来越依赖于计算器,很多复杂的计算都离不开它。我们使用过各式各样的计算器,无论是电脑自带的,还是网也上的计算器,却都没有自己动手编写属于自己计算器。今天就让我们走进计算器的世界,用python来编写...
Python学习笔记(语法篇)
本篇博客大部分内容摘自埃里克·马瑟斯所著的《Python编程:从入门到实战》(入门类书籍),采用举例的方式进行知识点提要 关于Python学习书籍推荐文章 《学习Python必备的8本书》 Python语法特点: 通过缩进进行语句组织 不需要<em>变量</em>或参数的<em>声明</em> 冒号 1 <em>变量</em>和简单<em>数据</em>结构 1.1 <em>变量</em>命名 只能包含字母、数字和下划线,且不能以数字打头。 1.2 字符串 在Python中,用引号...
小白也会用的情人节表白神器
鉴于情人节女朋友总说直男,上网找了个模板,改了一下,发现效果还不错。然后又录了一个视频,发现凑合,能用。现在免费分享给程序员,去表白去吧。​​​​​​。当然比较low因为考研没时间优化,懒着优化了。 先看一下效果吧:页面太多了,这里我只放几个页面里面有音乐,还凑合不是太单调。 所有页面最后的合成效果: 接下来教大家如何使用: 新建文件夹:love 然后建立这几个...
论如何用python发qq消息轰炸虐狗好友
因为我的某个好友在情人节的时候秀恩爱,所以我灵光一闪制作了qq消息轰炸并记录了下来。 首先 我的编程环境是: windows 10系统 python3.6 记得要下载win32 pip install win32 思路介绍 其实也非常简单 将要发出去的句子储存在列表中 然后用随机模块调用 将随机出来的元素储存在剪贴板中 连接QQ 找到指定对象 疯狂输出 怎么样,简单吧 开始打代码吧 imp...
Python爬取冠状病毒“谣言”新闻进行数据分析
一、前言 今天给大家介绍的爬虫项目是爬取冠状病毒谣言<em>数据</em>,因为最近网络上有很多关于冠状病毒的谣言,官方也积极的出来辟谣,作为一名<em>数据</em>爱好者,我也想尽自己一份微薄之力,分享一些有用的<em>数据</em>分享,希望大家在特殊情况下能明辨是非,保护好自己和家人! 二、爬取<em>数据</em> 话不多说了,直接上代码( copy即可用 ) import requests import pandas as pd class Sp...
情人节闲着无聊写个python程序
用python在图片上写字 ''' 依赖,需要安装Pillow pip install Pillow ''' from PIL import Image, ImageDraw, ImageFont import sys #判断参数个数,可以不要 import os #判断文件是否存在,可以不要 image_path = "1.jpg" font_path = "SIMLI.TTF" tex...
2020程序员面试必备!58道精选面试题,这样学习,大厂没问题!
面试题目: 1-10题: 1、java中==和equals和hashCode的区别 2、int与integer的区别 3、String、StringBuffer、StringBuilder区别 4、什么是内部类?内部类的作用 5、进程和线程的区别 6、final,finally,finalize的区别 7、Serializable 和Parcelable 的区别 8、静态属性和静态方法是否可以被...
新型冠状病毒,疫情实时追踪。
说来惭愧,享受CSND的帮助已经16年了,却从来没有为他人做过贡献。今天开始本人将坚持在CSDN发布个人技术文章,为自己巩固理解、也为他人排忧解难。 最近,新型冠状病毒的实时疫情一直牵动着每个人的心,作为一名程序员在这非常时期希望能通过技术手段为大家提供实时的调情播报。 项目名称:新型冠状病毒,疫情实时追踪 技术标签:Html5、Css、JavaScript、Jquery、Ajax、Echa...
MySQL 性能优化的 21 个最佳实践
1. 为查询缓存优化你的查询  大多数的 MySQL 服务器都开启了查询缓存。这是提高性最有效的方法之 一,而且这是被 MySQL 的<em>数据</em>库引擎处理的。当有很多相同的查询被执行了多 次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不 用操作表而直接访问缓存结果了。   这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因 为,我们某些查询语句会让 MySQL 不使用缓...
2020美赛A题解题思路(Moving North)
Problem A:Moving North 由于海洋温度升高的原因,美国东北海岸的龙虾种群正在往北迁移到海洋温度更低的加拿大海岸附近。 但是这会影响到加拿大东岸(即苏格拉北大西洋)的渔业公司的经营。他们想知道,如果全球温度继续升温,苏格拉渔场的鲱鱼和鲭鱼会如何迁移,因为这两种鱼是他们主要的经济来源(而他们的渔船又没有制冷设备,无法长期保存活鱼)。 问题1:建立数学模型,预测50年内该两种鱼群的迁...
在三线城市工作爽吗?
我是一名程序员,从正值青春年华的 24 岁回到三线城市洛阳工作,至今已经 6 年有余。一不小心又暴露了自己的实际年龄,但老读者都知道,我驻颜有术,上次去看房子,业务员肯定地说:“小哥肯定比我小,我今年还不到 24。”我只好强颜欢笑:“你说得对。” 从我拥有记忆到现在进入而立之年,我觉得,我做过最明智的选择有下面三个: 1)高中三年,和一位女同学保持着算不上朋友的冷淡关系;大学半年,把这位女同学追到...
京东抢购Python脚本
京东购物车抢购商品Python代码1.准备工作2.代码 1.准备工作 环境要求: Python3.8.1;Firefox浏览器 插件安装: 1.安装Python相关库(在Windows的cmd里面安装) pip install selenium pip install datetime 2.安装Firefox浏览器驱动:GeckoDriver提取码:e4tv(确保电脑已经有Firefox),...
记录每天背的单词,准备考研。(2月15日)
一、每日感想 Nothing in the world is difficult for one who sets his mind to it。 世上无难事,只怕有心人。 考研路上,艰险不断,诱惑不断,但我们永远无法停止自己的脚步,要像一个战士那样无畏冲锋。每个人在自己的领域上,学精学通便是对社会的最大贡献,最忌就是每种都学,样样都不精通,那样是最可悲的,就像船帆没有方向,在大海中肆意漂泊,最后...
Java实现 LeetCode 54 螺旋矩阵
54. 螺旋矩阵 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。 示例 1: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,3,6,9,8,7,4,5] 示例 2: 输入: [ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12] ] 输出: [1,...
python用pip install时安装失败的一系列问题
昨天想下载python的pillow库,结果遇到各种问题 一些注意事项和问题的解决方案如下: 先检查python是否安装成功 命令行直接输入python 安装成功会显示如下图 如果发现不对,可查看控制面板–系统与安全–系统–高级系统设置–环境<em>变量</em>–PATH 添加你python应用程序所在的位置 如,我添加的是F://python 确保python安装成功后,输入pip install pill...
python编程实战-----飞机大战
飞机大战 500行代码实现飞机大战 import pygame import sys from pygame.sprite import Sprite from pygame.sprite import Group from time import sleep import pygame.font # 修改游戏的一些新设置 class Settings(): """存储《外星人入侵》的所有...
【面试题总结一】JAVA基础
前言 因为比较喜欢写JAVA,所以之前面试的时候看了不少的面试的问题,但是面了两家完全没有问到我这些,十分的尴尬,所以我觉得花点时间把之前看过的东西总结一下。 自动装箱和拆箱 基本<em>数据</em>类型与对应的包装类的自动转换 和C++的强制类型转换有点像。 String,StringBuffer,StringBuilder String是字符串,一般来说一个字符串被定义了就不可变了,如果要使用可变的字符串,...
windows programming example下载
winndows 程序设计的一个小例子,用visual c#编写 相关下载链接:[url=//download.csdn.net/download/chaomeng1225/2257223?utm_source=bbsseo]//download.csdn.net/download/chaomeng1225/2257223?utm_source=bbsseo[/url]
game of life的x10文件下载
著名的game of life的x10代码,算法请查找维基百科 相关下载链接:[url=//download.csdn.net/download/hellohellojavajava/3928637?utm_source=bbsseo]//download.csdn.net/download/hellohellojavajava/3928637?utm_source=bbsseo[/url]
大整数加法 代码实现 下载
华为上机试题,主要是字符串处理,但细节太多,所以下来重新整理。 del_sub_str.cpp 源码实现 从字符串中左匹配查找一子串,统计数目并反回删除子串后的结果。 add.cpp 实现两个大整数的加法,包括带-号的数相加。 相关下载链接:[url=//download.csdn.net/download/skyhacer/2643674?utm_source=bbsseo]//download.csdn.net/download/skyhacer/2643674?utm_source=bbsseo[/url]
相关热词 c#开发的dll注册 c#的反射 c# grid绑定数据源 c#多线程怎么循环 c# 鼠标左键 c# char占位符 c# 日期比较 c#16进制转换为int c#用递归求顺序表中最大 c#小型erp源代码
我们是很有底线的