Java并发编程实战笔记(2)-对象的共享

转载请注明出处 http://www.paraller.com 原文排版地址 点击获取更好阅读体验

核心知识点

  • 同步不仅能够保证原子性; 还能实现内存可见性: 当一个线程修改了对象状态后,其他线程能够看到发生的状态变化

  • 如何让多个线程安全的访问可变状态 ?

可见性

重排序

``` class Test{ private static boolean visible; private static int number;

static class Reader extends Thread{
    void run(){
        while(!visible){
            Thread.yield();
        }
        system.out.println(number);
    }
}

static void main(String[]  args){
    new Reader().start();
    number = 12;
    visible = true;
}

} ```

Reader线程可能看到了visible的值,却没有看到number的,这种现象称为重排序 Jvm为了充分利用现代多核处理器,可能对操作的执行顺序进行调整

如何避免 : 只要有数据在线程之间共享,就使用正确的同步

Volatile
  • 变量不会被缓存在寄存器或者其他处理器不可见的地方,在读取valatile变量时总会返回最新写入的值
  • 变量声明为 volatile,编译器和运行时都会注意到这个变量是共享的,不会将该变量的操作与其他内存操作一起重排序

使用场景:

检查某个状态标记以判断是否退出循环:(因为所有线程修改对其他线程都是可见) while(!asleep){ // TODO }

发布与逸出

核心知识点
  • 发布的概念: 指对象能够在当前作用域之外的代码中使用.
  • 发布内部的状态,会破坏封装性,会影响线程安全
  • 逸出: 某个不应该被发布的对象被发布,就成为逸出(Escape)
  • 当对象在其构造函数中创建一个线程时,this引用都会被新创建的线程共享;解决方案:在构造函数中创建但不是马上启动它,而是通过一个方法来启动。
  • 避免逸出: 要返回一个对象A的时候,拷贝对应的值创建一个对象B,然后返回对象B。(可能在拷贝的时候A对象发生了改变,造成数据不一致,取决于需求是否这样使用)

逸出常见场景1: 将对象保存在共有的静态变量.

``` public static Set hello;

public void init(){ hello = new HashSet() } ```

逸出常见场景2: 非私有方法中返回一个引用.

``` class A{ private Object obj = new Object()''

public get Obj(){
    return this.obj;
}

} ```

线程封闭

核心知识点
  • 避免使用同步的方式就是不共享数据: 如果仅在单线程内访问数据,就不需要同步。
  • 线程封闭: 在数据封闭在一个线程中不共享
栈封闭

定义:栈封闭?其实就是把同步变量写在局部方法中,当然就线程安全了,根本不会共享变量。线程私有。

注意事项:确保栈内对象不会逸出

ThreadLocal

概念:ThreadLocal 提供了get /set等访问接口或方法,这些方法为每个使用该变量的线程都保存一份独立的副本, 因此Get方法总是返回由当前执行线程在调用set时设置的最新值。

使用ThreadLocal,能使线程中的某个值所有改变只在该当前线程中变动,不会被其他线程操作,保证了当前线程的数据不共享,避免竞态条件的发生。

场景: Spring中的事务上下文(Transaction Context),需要对当前线程进行 回滚、提交 操作,为了当前事务不会和其他线程串了,就通过将事务上下文与某个执行线程关联起来。

缺点: 耦合性会更强,并且降低代码的可重用性

不变性

核心知识点
  • 如果某个对象被创建之后就不能被改变(不变性条件是由构造函数创建的),就一定是线程安全的。

  • 即使对象中所有的域都是final类型的,这个对象仍然可能是可变的, 因为final类型的域可以保存对 可变对象的引用

  • 不可变对象需满足的条件,代码示例符合以下三个条件: 1、对象创建以后其所有状态都不能修改。(没有修改状态的方法) 2、对象的所有域都是final类型的。 3、对象是正确创建的(创建期间,this引用没有逸出)。

``` class Demo{ private final Object demoObj;

public Demo(Object obj){
    demoObj = obj;
}

public Object getObj(){
    return demoObj;
}

} ```

  • 保存在不可变对象中的程序状态仍然可以更新,即通过将一个保存新状态的实例来"替换"原有的不可变对象

``` class ImmutableObject{ private final BigDecimal bd;

ImmutableObject(String val){
    bd = new BigDecimal(val);
}

}

...

ImmutableObject io = new ImmutableObject("2"); io = new ImmutableObject("3");

```

io是不可变对象,但它的程序状态 bd仍然可以更新, 因为我创建了一个保存新状态的实例来替换原有的不可变对象io;

Final域
  • final类型的域是不能被修改的(但是所引用的对象可能是可变的)。
  • 除非需要更高的可见性,否则应该将所有的变量声明为私有的。
  • 除非需要某个域是可变的,否则变量应该声明为final类型的
  • 对于在访问和更新 多个相关变量时出现的竞态条件问题,可以通过将这些变量全部保存在一个不可变对象中来消除。

final类型的域初始化之后就不能更改赋值。但如果引用的对象是可变的,比如: public static final Set

文章最后发布于: 2017-10-26 09:48:09
展开阅读全文
0 个人打赏
还能输入1000个字符

Java并发编程实战笔记03之对象共享

08-21 阅读数 27

第二章介绍了如何通过同步来避免多个线程在同一时刻访问相同的数据,而本章将介绍如何共享和发布对象,从而使它们能够安全地由多个线程同时访问。我们已经知道了同步代码块和同步方法可以确保以原子的方式执行操作,... 博文 来自: 方兴未艾

Java并发编程实战--读书笔记(目录)

06-08 阅读数 1898

一、重点章节摘录1、闭锁CountDownLatch2、FutureTask3、计数信号量(Semaphore)4、事实不可变对象5、协作对象间的死锁与开放调用6、通过线程转储信息来分析死锁7、Amd... 博文 来自: 衣舞晨风

java并发编程实战-读书笔记-第1章 简介

02-06 阅读数 176

在早期的计算机中不包含操作系统,它们从头到尾只执行一个程序,并且这个程序能访问计算机中的所有资源。操作系统的出现使得计算机每次运行多个程序,并且不同的程序都在单独的进程中运行:操作系统为各个独立执行的... 博文 来自: joenqc的博客

java并发编程实战阅读笔记(第三章)对象共享

05-09 阅读数 162

如何共享和发布对象,从而使他们能够安全地由多个线程访问。可见性可见性:  可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值... 博文 来自: 吴阳春的博客

Java并发编程实战-----线程基本概念

07-26 阅读数 8555

学习Java并发已经有一个多月了,感觉有些东西学习一会儿了就会忘记,做了一些笔记但是不系统,对于Java并发这么大的“系统”,需要自己好好总结、整理才能征服它。希望同仁们一起来学习Java并发编程,共... 博文 来自: chenssy的博客

JAVA并发编程实战---隐藏迭代器

03-20 阅读数 29

读《JAVA并发编程实战》笔记加锁可以防止迭代器抛出ConcurrentModificationException,必须要记住在所有对共享容器进行迭代的地方都需要加锁。实际情况要更加复杂,因为在某些情... 博文 来自: 早起的鸟儿有虫吃的博客

JAVA并发编程实战---在没有同步的情况下共享变量

03-20 阅读数 34

读《JAVA并发编程实战》笔记代码示例:publicclassNoVisibility{ privatestaticbooleanready; privatestaticintnumber; pr... 博文 来自: 早起的鸟儿有虫吃的博客

java并发实战读书笔记--第一部分基础知识

12-16 阅读数 291

java高并发实战读书笔记javaconcurrencyinpractice目录java高并发实战读书笔记第一章讲解了并发史、线程的优势、线程带来的风险,此处略去总结2.线程安全性2.1线程安全性2.... 博文 来自: cuqa12315的博客

Java并发编程实战笔记02之线程安全性

08-18 阅读数 26

要编写线程安全的代码,其核心在于要对状态访问操作进行管理,特别是对共享的(Shared)和可变的(Mutable)状态的访问。一个对象是否需要是线程安全的,取决于它是否被多个线程访问。这指的是在程序中... 博文 来自: 方兴未艾

java并发编程实战笔记---(第三章)对象共享

06-02 阅读数 4

3.1可见性synchronized不仅实现了原子性操作或者确定了临界区,而且确保内存可见性。*****必须在同步中才能保证:当一个线程修改了对象状态之后,另一个线程可以看到发生的状态变化。1.失效值... 博文 来自: weixin_30586085的博客

java并发编程实战》 第三章 对象如何共享

01-18 阅读数 453

《java并发编程实战笔记》第三章对象的共享可见性失效数据最低安全性volatile变量竞态条件可用原子变量类简单修复计算器的竞态条件内置锁重入用锁来保护共享状态如何保证线程活跃性与安全性第三章对象的... 博文 来自: 乌鸦大大

JAVA并发编程实战---读书笔记1》

04-28 阅读数 245

这是第2章和第3章的读书笔记1.线程安全当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就... 博文 来自: 山鸡哥的专栏

java并发编程实战笔记---(第二章)线程安全:正确性

06-01 阅读数 4

ThreadA__________同步    ______________     异步    ___________异步ThreadB__________    ______________后台进程... 博文 来自: weixin_30439031的博客

java并发编程实战】—–线程基本概念

07-13 阅读数 51

转自http://cmsblogs.com/?p=1638学习Java并发已经有一个多月了,感觉有些东西学习一会儿了就会忘记,做了一些笔记但是不系统,对于Java并发这么大的“系统”,需要自己好好总结... 博文 来自: 早起的鸟儿有虫吃的博客

Java并发编程实战--笔记

06-04 阅读数 1156

第1-3章(线程安全性、对象的共享、对象的组合)   无状态对象一定是线程安全的。   要保持状态的一致性,就需要在单个原子操作中更新所有相关的状态变量。   synchronized修饰方法表示:在... 博文 来自: 衣舞晨风

Java并发JAVA并发编程实战-读书笔记1

10-11 阅读数 371

从今天开始阅读《JAVA并发编程实战》这本书,并记录下自己阅读的记录。   首先感谢该书的原作者,几个外国的大神,也感谢韩锴、方妙两位译者。   程序在各自的进程中运行,相互分离,各自独立执行。由操作... 博文 来自: kingdz618的博客

Java并发编程实战学习笔记——对象共享

03-30 阅读数 13

发布与逸出本章介绍如何共享和发布对象,从而使它们能够安全的由多个线程同时访问。定义。发布:发布一个对象是指使对象能够在当前作用域之外的代码中使用(将一个指向对象的引用保存到其他代码可以访问的地方;在某... 博文 来自: weixin_39045966的博客

Java并发编程实战》读书笔记-第4章 对象共享

06-12 阅读数 236

1,设置线程安全的类的过程中,需要包含以下3个基本要素。找出构成对象状态的所有变量(例如:有的以一个变量作为一种状态,有的以多个变量的组合作为一种状态)找出约束状态变量的不变性条件(例如:一个Long... 博文 来自: 冲吧,不要停!

学会了这些技术,你离BAT大厂不远了

08-26 阅读数 6万+

每一个程序员都有一个梦想,梦想着能够进入阿里、腾讯、字节跳动、百度等一线互联网公司,由于身边的环境等原因,不知道BAT等一线互联网公司使用哪些技术?或者该如何去学习这些技术?或者我该去哪些获取这些技术... 博文 来自: 平头哥的技术博文

程序员实用工具网站

09-04 阅读数 14万+

目录1、搜索引擎2、PPT3、图片操作4、文件共享5、应届生招聘6、程序员面试题库7、办公、开发软件8、高清图片、视频素材网站9、项目开源10、在线工具宝典大全程序员开发需要具备良好的信息检索能力,为... 博文 来自: 不脱发的程序猿

从入门到精通,Java学习路线导航

09-09 阅读数 3万+

引言最近也有很多人来向我"请教",他们大都是一些刚入门的新手,还不了解这个行业,也不知道从何学起,开始的时候非常迷茫,实在是每天回复很多人也很麻烦,所以在这里统一作个回复吧。Java学习路线当然,这里... 博文 来自: wangweijun

我花了一夜用数据结构给女朋友写个H5走迷宫游戏

09-21 阅读数 9万+

起因又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而怨气满满!而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有... 博文 来自: bigsai

100 个网络基础知识普及,看完成半个网络高手

09-23 阅读数 9万+

1)什么是链接?链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。2)OSI参考模型的层次是什么?有7个OSI层:物理层,数据链路层,网络层,传输层,会话层,表示层和... 博文 来自: 华为云官方博客

对计算机专业来说学历真的重要吗?

09-27 阅读数 4万+

我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记... 博文 来自: 启舰

C语言实现推箱子游戏

09-29 阅读数 5万+

很早就想过做点小游戏了,但是一直没有机会动手。今天闲来无事,动起手来。过程还是蛮顺利的,代码也不是非常难。今天给大家分享一下~一、介绍开发语言:C语言开发工具:Dev-C++5.11日期:2019年9... 博文 来自: ZackSock的博客

第二弹!python爬虫批量下载高清大图

10-06 阅读数 2万+

文章目录前言下载免费高清大图下载带水印的精选图代码与总结前言在上一篇写文章没高质量配图?python爬虫绕过限制一键搜索下载图虫创意图片!中,我们在未登录的情况下实现了图虫创意无水印高清小图的批量下载... 博文 来自: bigsai

面试官,不要再问我三次握手和四次挥手

10-08 阅读数 9万+

三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题。很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了。见过比较典型的面试场景是这样的:面... 博文 来自: 猿人谷

感觉自己不会的东西太多了,不知道如何下手?

10-14 阅读数 1万+

GitHub8.8kStar的Java工程师成神之路,不来了解一下吗?GitHub8.8kStar的Java工程师成神之路,真的不来了解一下吗?GitHub8.8kStar的Java工程师成神之路,真... 博文 来自: HollisChuang's Blog

500行代码,教你用python写个微信飞机大战

10-16 阅读数 2万+

这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手/右手有节... 博文 来自: Python专栏

唐僧团队要裁员,你会裁谁?

10-15 阅读数 2万+

提问:西游记取经团为了节约成本,唐太宗需要在这个团队里裁掉一名队员,该裁掉哪一位呢,为什么?为了完成西天取经任务,组成取经团队,成员有唐僧、孙悟空、猪八戒、沙和尚、白龙马。高层领导:观音项目经理:唐僧... 博文 来自: 王学明

史上最全的中高级JAVA工程师-面试题汇总

10-15 阅读数 2万+

史上最全的java工程师面试题汇总,纯个人总结,精准无误。适合中高级JAVA工程师。... 博文 来自: 在广?No,在深? em,或许在专......

Python实现天气查询功能(外加Excel技巧)

10-16 阅读数 1万+

昨天在网上发现了一个非常方便的天气API,就用Python试着用了一下。参数是挺少的,用起来也方便,但是那个城市代码确实是搞了我好长时间。一、介绍我们先来看一下实现的程序有什么功能:功能也是非常简单的... 博文 来自: ZackSock的博客

飞机大战

10-16 阅读数 1万+

项目需求:实现一个简单的飞机大战程序,当消灭掉一个小飞机的时候的5分,当消灭掉一个小蜜蜂的时候有可能火力值增加24也有可能生命值增加1,如果打飞机也就是英雄机和敌人(蜜蜂+小飞机)碰撞之后,英雄机的火... 博文 来自: qq_43498110的博客

只因写了一段爬虫,公司200多人被抓!

10-16 阅读数 7万+

“一个程序员写了个爬虫程序,整个公司200多人被端了。”“不可能吧!”刚从朋友听到这个消息的时候,我有点不太相信,做为一名程序员来讲,谁还没有写过几段爬虫呢?只因写爬虫程序就被端有点夸张了吧。朋友说,... 博文 来自: 纯洁的微笑

我与CSDN的这十年——笔耕不辍,青春热血

10-20 阅读数 1万+

1024程序员的节日就要来了,作者也挤时间写了一篇文章——《我与CSDN的这十年》,分享下程序猿和程序媛的故事,纪念这十年奋斗和感动的日子。十年,说长不长,说短不短,人生进度条的八分之一,都是青春,都... 博文 来自: 杨秀璋的专栏

Docker 大势已去,Podman 万岁

10-17 阅读数 2万+

前言郑重声明:本文不是Podman的入门篇,入门请阅读这篇文章:再见Docker,是时候拥抱下一代容器工具了Podman原来是CRI-O项目的一部分,后来被分...... 博文 来自: 云原生实验室

别在学习框架了,那些让你起飞的计算机基础知识。

10-22 阅读数 2万+

我之前里的文章,写的大部分都是与计算机基础知识相关的,这些基础知识,就像我们的内功,如果在未来想要走的更远,这些内功是必须要修炼的。框架千变万化,而这些通用的底层知识,却是几乎不变的,了解了这些知识,... 博文 来自: 帅地

Docker技术( 容器虚拟化技术 )

10-21 阅读数 9264

Docker虚拟化容器技术第一章Docker简介诞生背景Docker介绍虚拟机技术容器虚拟化技术官方网址第二章Docker安装前提条件安装DockerDocker底层原理Docker结构图工作原理Do... 博文 来自: 时间静止

“来我公司写爬虫吗?会坐牢的那种!”

10-18 阅读数 8292

欢迎关注“技术领导力”博客,每天早上8:30推送“你交代一下,总共抓了多少数据,在哪些网站抓的,数据干什么用了?看看够在里面呆几年。。。”警察语气凝重地对张强说。程序员张强(化名),回忆起这两天来的经... 博文 来自: 技术领导力

Python学习笔记

10-19 阅读数 6078

Python学习笔记(基础)文章目录Python学习笔记(基础)0.简介Python编程第一步模块与包错误和异常注释1.数据类型与运算符数据类型操作符2.控制流分支语句循环语句3.函数函数声名函数调用... 博文 来自: 学渣的备忘录

挑战10个最难的Java面试题(附答案)【上】

09-10 阅读数 3万+

欢迎添加华为云小助手微信(微信号:HWCloud002或HWCloud003),验证通过后,输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术... 博文

漫画 | 外行对程序员误会有多深!

10-11 阅读数 1万+

作者:阿波、纯洁的微笑漫画:宁州枪手程序员如今已经发展成社会的主流职业,以至于街头的王大妈李大爷都能说出一二来,据说他们认为的程序员是这样子的:程序员都是秃头,秃的越狠越...... 博文

据说中台凉了?唔,真香

10-12 阅读数 8314

全文长度: 2200字 阅读时间: 8分钟 TL;DR(too long don'tread) 1、业务中台就是流程模板+扩展点 2、没法很好抽象就别做中台,没那么多需求和业务线就别做中台。 ... 博文

大数据学习之Linux基础

10-18 阅读数 1万+

大数据学习之Linux基础 自定义Linux虚拟机安装网络配置1.node1网络配置2.通过快照克隆虚拟机3.配置其他三个节点虚拟机Linux简单命令shell命令运行原理图1.关机与重启2.判断命令... 博文

JDK8新特性之stream()

10-21 阅读数 4309

学习Stream之前建议先学Lambda的相关知识 使用实例: Class Person { private String name; private int age; ... 博文

三年一跳槽、拒绝“唯学历”,火速 Get 这份程序员求生指南!

10-17 阅读数 1万+

根据埃文斯数据公司(Evans Data Corporation)2019 最新统计的数据显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640 万。但在... 博文

面试官:谈谈你对mysql索引的认识?

10-17 阅读数 1万+

引言 大家好,我渣渣烟。我曾经写过一篇《面试官:谈谈你对表设计的认识?》于是呢,决定再来一个mysql的数据库专题,这篇我们就来谈谈关于索引方面的mysql面试题。还是老规矩,讲的是在Innodb存... 博文

JVM之内存结构详解

10-18 阅读数 1万+

对于开发人员来说,如果不了解Java的JVM,那真的是很难写得一手好代码,很难查得一手好bug。同时,JVM也是面试环节的中重灾区。今天开始,《JVM详解》系列开启,带大家深入了解JVM相关知识。 我... 博文

Java 常用的 4 种加密方式(MD5+Base64+SHA+BCrypt)

10-18 阅读数 5219

一、工具类 md5加密工具类 public class MD5Utils { private static final String hexDigIts[] = {"0","1... 博文

了解 MongoDB 看这一篇就够了

10-18 阅读数 7478

目录 一、简介 二、基本模型 BSON 数据类型 分布式ID 三、操作语法 四、索引 索引特性 索引分类 索引评估、调优 五、集群 分片机制 副本集 六、... 博文

教你搭建一套自己的SVN服务器

10-19 阅读数 8493

想不想自己搭建一套SVN服务器?来吧!Follow me! 博文

快速上手Ajax【一篇文章就搞懂】

10-20 阅读数 1万+

目录:1.什么是 AJAX ?2.快速上手2.1 AJAX工作流程图2.2 readyState 和status3. 具体用法3.1 GET 请求3.2. POST 请求3.3选择GET还是POST?... 博文

Python 爬虫(六):使用 Scrapy 爬取去哪儿网景区信息

10-22 阅读数 4154

都说 Scrapy 强,强不强自己用过才知道。 博文

面试官,不要再问我“Java GC垃圾回收机制”了

10-20 阅读数 6310

Java GC垃圾回收几乎是面试必问的JVM问题之一,本篇文章带领大家了解Java GC的底层原理,图文并茂,突破学习及面试瓶颈。 楔子-JVM内存结构补充 在上篇《JVM之内存结构详解》中有些内容我... 博文

必须要会回答的Java面试题(字符串篇)

10-20 阅读数 7530

最近很多学习java的小白问我字串相关的问题,觉得很有必要整理下,以方便初学者理解字符串以及应对今后面试中考官的提问。... 博文

几道经典逻辑推理题,提高你的逻辑思考能力

10-20 阅读数 7807

整理了一些逻辑推理题,这些逻辑推理题能够提高大家的逻辑思考能力,同时也能给大家的学习带来一定的趣味性。希望大家看到题之后,不要着急看答案,要先独立思考解决。答案的获取可以关注我的公众号:[Albert... 博文

五款高效率黑科技神器工具,炸裂好用,省时间

10-20 阅读数 7025

loonggg读完需要4分钟速读仅需2分钟感觉我好久好久没有给大家分享高质量的软件和插件了。今天周末,难得在家休息一下,痛下决心,分享一些我认为的高效率工具软件给大家。废...... 博文

黑客入门,从HTB开始

10-20 阅读数 1万+

Hack the box 是国外的一个靶机平台,里面的靶机包含多种系统类型,并且里面可以利用的漏洞类型多种多样,有很多靶机其实非常贴近实战情景。因此 HTB 是一个很好的学习渗透测试靶场。 之前... 博文

为何Google、微软、华为将亿级源代码放一个仓库?从全球最大代码管理库说起...

10-20 阅读数 9377

作者 | 夕颜编辑 | Just出品 | AI 科技大本营(ID:rgznai100)【导读】2017 年,在当时微软的一篇官方博客中,时任微软云开发服务副总裁的 Bri...... 博文

动画:用动画给女朋友讲解 TCP 四次分手过程

10-21 阅读数 9003

作者 | 小鹿 来源 | 公众号:小鹿动画学编程 写在前边 大家好,我们又见面了,做为一个业余的动画师,上次的用动画的形式讲解 TCP 三次握手过程再各大平台收到了广大读者的喜爱,说文章有趣、有... 博文

作为技术面试官,我在面试时考虑什么?

10-21 阅读数 6414

最近一段时间,公司大量进行校招,团队也需要很多社招的岗位,作为某个领域的技术负责人,我也因此经常电话面试和现场面试。 求职者每次可能会事后反思,我这次到底表现如何,下次怎么样才能改进。 作为一个面试官... 博文

不就是SELECT COUNT语句吗,竟然能被面试官虐的体无完肤

10-21 阅读数 9348

数据库查询相信很多人都不陌生,所有经常有人调侃程序员就是CRUD专员,这所谓的CRUD指的就是数据库的增删改查。 在数据库的增删改查操作中,使用最频繁的就是查询操作。而在所有查询操作中,统计数量操作更... 博文

10步成为一个优秀的Java开发!

10-21 阅读数 1435

1、拥有坚实的基础并理解面向对象原则 Java开发人员必须深刻理解面向对象编程。如果没有面向对象编程的坚实基础,就无法感受到像Java这样的面向对象编程语言的美感。 如果你不太了解现象对象编程是什么,... 博文

程序员必须掌握的核心算法有哪些?

10-21 阅读数 2万+

由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,... 博文

如何通过个人博客赚钱,走上财务自由?

10-21 阅读数 9746

最近研究个人博客赚钱,看了很多技术人员挣钱的门路的文章,但都只是蜻蜓点水的泛泛而谈,却没有提供具体的方法和策略,也就是挣钱的“术”与“道”。本文与大家分享一下基于个人博客的赚钱方式方法。如果你喜欢这类... 博文

Web前端布局

10-21 阅读数 4632

Web前端布局方式布局的概念什么是布局布局的作用布局的方式浮动布局定位布局静态布局流式布局弹性布局自适应布局响应式布局常见布局问题高度坍塌 布局的概念 什么是布局 布局是前端人员的核心基础技能。... 博文

996工作制,还要抽时间提升自己吗?

10-21 阅读数 4071

有位朋友说,他新近换了工作,9116工作制,打乱了之前所有的计划,几乎没有多余的时间看书和学习,问我应该怎样在这种忙碌中抽出时间提升自己。 工作很忙,无暇提升,这是个普遍性问题,今天特意针对它聊一下,... 博文

程序员如何才能跨过高级级别,譬如腾讯T3.1/阿里P7

10-21 阅读数 3730

首先自我介绍下自己履历:5年前过了腾讯的T3.2,最近又在1年多前过了阿里的P8,目前在B站。 腾讯 在腾讯我是T2.1社招一般水平入职的,3年后到了T3.2。中间是经历过几个转变:刚来的半年到... 博文

高并发技术

10-24 阅读数 3944

高并发技术 第一章 预备知识一 理解大数据二 网工基础知识OSI七层参考模型应用层表示层会话层传输层网络层链路层物理层功能分层总结第二章 LVS技术一 LVS介绍二 LVS调度算法LVS命令监控... 博文

转发和重定向的过程和区别

10-22 阅读数 6672

转发 req.getRequestDispatcher("/要跳转的地址").forward(req, resp); 转发的过程:(以servlet和jsp为例) 浏览器首先发送一个请求到服务器端... 博文

Java多线程常用方法

10-21 阅读数 3238

start()与run() start() 启动线程并执行相应的run()方法 run() 子线程要执行的代码放入run()方法 getName()和setName() getName... 博文

漫画 | 互联网公司面试黑话图鉴:个个奥斯卡!

10-21 阅读数 2674

作者:阿波漫画:最新热歌慢摇面试如一座冰山水面之上的10%是台词水面之下的90%是潜台词看不懂面试的潜台词离沉船就不远了在信任与演技错综复杂的职场中读懂面试潜台词是你成...... 博文

晚十点半之前下班是耻辱?老板干嘛老爱和员工谈创业精神?

10-21 阅读数 957

这两天又有一个话题触动了广大程序员的神经,某互联网公司高管在内部邮件中公开指责员工晚上 10:30 后没有加班,没有创业精神,表示这是公司的耻辱日。刚看到这个消息我也是虎...... 博文

如何通过 Python 分析中国演员排名?

10-21 阅读数 5356

作者 | AJ-Gordon 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 项目背景 上个月笔者的一个同学开了间影视投资公司,出于对创业人员的仰慕和影视投资行业的好奇,... 博文

如何优化MySQL千万级大表,我写了6000字的解读

10-21 阅读数 1万+

这是学习笔记的第2138篇文章 千万级大表如何优化,这是一个很有技术含量的问题,通常我们的直觉思维都会跳转到拆分或者数据分区,在此我想做一些补充和梳理,想和大家做一些这方面的经验总结,也欢迎大家... 博文

小白学 Python(3):基础数据类型(下)

10-22 阅读数 2136

人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符... 博文

python 实现小项目--银行管理系统

10-22 阅读数 1546

python 实现银行管理系统 有的地方方法用的比较复杂,主要是为回顾更多的知识 test1用来存类和函数 #test1.py import random #用来随机产生卡... 博文

面试最后一问:你有什么问题想问我吗?

10-22 阅读数 1万+

尽管,我们之前分享了这么多关于面试的主题: 高薪必备的一些Spring Boot高级面试题 面试必问:设计模式遵循的面向对象设计原则! 面试必问:怎么保证缓存与数据库的双写一致性? 27道高频Spr... 博文

python 程序员进阶之路:从新手到高手的100个模块

10-23 阅读数 6803

在知乎和CSDN的圈子里,经常看到、听到一些 python 初学者说,学完基础语法后,不知道该学什么,学了也不知道怎么用,一脸的茫然。近日,CSDN的公众号推送了一篇博客,题目叫做《迷思:Python... 博文

String str = "abc";和String str =new String("abc");到底分别创建了几个对象?

10-22 阅读数 2095

一、到底创建了几个对象 1、String str = “abc”; 创建了几个对象?0个 或者 1个 2、String str = new String(“abc”);创建了几个对象? 1个或2个 ... 博文

c# 两个字符加一人空格 用户权限才c# c#应用程序实例 c#请求接口数据 c#高效读写plc c#代码规范快捷方式 c#编辑模板 c# 内存存储 c# poi 生成图表 c#页面 弹出页面选择框

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试
  • 点赞 取消点赞

    0

  • 海报

    分享海报说明
  • 评论

  • 目录
  • 收藏
  • 手机看
  • 上一篇
  • 下一篇
  • 更多
    • 上一篇
    • 下一篇
  • 打赏

    打赏

    paraller_15

    “你的鼓励将是我创作的最大动力”

    5C币 10C币 20C币 50C币 100C币 200C币

    确定

Java并发编程实战笔记(2)-对象的共享_第2张图片

分享到微信朋友圈

×

扫一扫,手机浏览

你可能感兴趣的:(Java并发编程实战笔记(2)-对象的共享)