
Java
趣谈编程
就职于世界五十强公司,趣谈编程公众号作者,主要研究并发,算法,Java,欢迎关注趣谈编程微信公众号,所有付费内容免费领,海量资料免费领,国内顶尖程序员一对一解答
展开
-
JVM之类文件结构——上篇(常量池)
Java语言之所以强大的一个原因就在于它具有跨平台性,Java源文件被编译后的结果不是本地机器码(与机器平台相关联)而是字节码(与机器平台无关),然后由JVM将字节码去加载并执行它。 那么Java的字节码文件到底长什么样? 下面就是我们程序员入门的HelloWorld程序的Class文件 源文件public class HelloWorld{ public static void ma原创 2017-04-20 17:17:03 · 1498 阅读 · 1 评论 -
MySQL如何给字段添加注释?
下面的命令行或则图形界面均在软件Navicat中运行MySQL测试版本: 5.5.39问:MySQL如何给字段添加注释?答:给MySQL字段添加注释有两种方式①创建表的时候添加 create table student( s_no int not null comment '学号', s_name varchar(100) comment '姓名') comment = '学生'如上面的创建表语句,字段s_no和s_name...原创 2020-12-10 23:14:43 · 13397 阅读 · 0 评论 -
临界区
本文来自公众号:趣谈编程原创 2018-01-29 21:24:30 · 288 阅读 · 0 评论 -
算法可以这样学 —— 插入排序
本文来自公众号:趣谈编程原创 2018-02-08 22:18:48 · 445 阅读 · 0 评论 -
synchronized与Lock 擂台之战
面试官:说说synchronized和Lock(或ReentrantLock)的区别Java 1.5之后,对共享变量访问的协调机制除了之前的synchronized和volatile又多了一个Lock,深刻理解synchronized与Lock,并熟悉两者的应用场景对编写并发程序有着非常重要的作用部落新添大将话说JDK1.5之前,并发部落 synchronized 和 volatile 可谓红人,无原创 2017-10-13 10:19:45 · 955 阅读 · 3 评论 -
轻而快的CAS
面试官: 讲讲CAS,CAS会有什么问题?慢腾腾的synchronized并发世界,分秒必争,快者为王,synchronized那厮,整天情绪消极,完全一个悲观主义者,怎么说呢?每当他访问一个共享变量的时候,他都认为这个共享变量会被其他人所修改,所以他就给这个共享变量加一个锁,自己独占着,这样别人就不能修改了可是这样导致一个结果就是每当一个线程要来修改这块共享变量的时候,都会被挂起,这样一来,操作系原创 2017-10-04 17:23:55 · 869 阅读 · 2 评论 -
happens-before揭秘
面试官:讲讲happens-beforehappens-before是判断数据是否存在竞争、线程是否安全的重要依据,今天我们来听听程序员与JMM的对话JMM的自我介绍Hello 大家好,我原名叫Java Memory Model(Java 内存模型),大家都叫我JMM,简洁又好听,我挺喜欢。并发编程这块,没有我可是不行的,我要解决的问题就是一个线程对共享变量的写入何时对另一个线程可见比如一个线程给原创 2017-10-01 11:31:28 · 4289 阅读 · 4 评论 -
我是一个垃圾收集器——上篇
面试官:垃圾回收算法介绍一下垃圾回收算法算是一个常问的知识点了,今天我们听听垃圾收集器的叙述原创 2017-09-21 17:16:14 · 807 阅读 · 4 评论 -
Java并发之神修炼之路---创建多线程的三种方式
清晨,阳光明媚,秋早早地就来到了“训练室”,刚进门,只见大师飞一般地敲着键盘,空格键如拍子一样打着节奏,宛如一首美妙的音乐。秋来到了大师身旁,拿出电脑开了机,大师瞅了一眼秋,说,“上次对多线程有了一个大概的认识吧”,秋点了点头,“那今天就让你开开眼吧,见识一下启动多线程的三剑客”。 启动多线程一般由三种方式,我们常用的就两种 第一种: 继承Thread类 只见大师键锋一转,飞速的写了几行代码原创 2017-07-25 00:09:36 · 518 阅读 · 0 评论 -
Java程序中文件目录的跨平台 --- File.separator的作用
最近在看别人的代码,有一段代码中有File.separator,然后就翻阅了一下资料,发现这是一段挺好的跨平台代码,写博客以记之 比如说你要在D盘下的temp目录下创建一个Demo.txt 在Windows下你会这样写:File file = new File("D:\temp\Demo.txt");而在Linux下你要这样写:File file = new File("/temp/Demo原创 2017-08-09 16:20:02 · 933 阅读 · 0 评论 -
JVM之执行引擎
前言在之前的JVM之Class文件中已经对class文件的结构有了一个大致的认识,其中有一个Code属性没有详细的讨论,这里就详细的讨论一下这个Code属性以及执行引擎和它的关系概述class文件经过加载后会在方法区形成一个该类的一些数据结构(或者说是Java虚拟机规定的格式),然后执行引擎会在方法区中找到main方法code属性中的指令,并且去执行它。执行引擎会维护一个虚拟机栈,虚拟机栈中有栈帧,原创 2017-06-06 11:40:47 · 999 阅读 · 0 评论 -
JVM之类文件结构——下篇(字段、方法和属性)
LZ水平有限,如果发现有错误之处,欢迎大家指出,或者觉得那块说的不好,欢迎建议。希望和大家一块讨论学习 LZ QQ:1310368322上篇我们着重讨论了class文件中的常量池,接下来我们来看看下面的十六进制数到底是什么含义?以及它们和我们的Java源码之间有什么联系? 访问标志 常量池之后,紧接着的两个字节代表了访问标志(access_flags),这个标志用于识别一些类或者接口层次的访问原创 2017-05-17 09:42:07 · 884 阅读 · 0 评论 -
Java并发编程系列(一)——Volatile
在讨论Volatile关键字之前,我们先来聊聊并发 什么是并发?为什么需要并发?并发会产生什么问题、是如何解决的?接下来我们就看看这些问题 什么是并发? 并发简单来说就是在一个CPU上(也可以是多个CPU),在一段时间之内,同时启动了多个进程或线程,在宏观上看好像多个进程或线程在同时执行,其实在一个确定的时刻,一个CPU上只有一个线程或者进程在运行。 为什么需要并发? ①提高资源利用率:如原创 2017-05-09 17:29:21 · 401 阅读 · 0 评论 -
初探Java IO 系统
Java的IO家族很是繁荣,刚接触有点让人摸不清关系,今天让我们来认识一下他们。原创 2017-03-10 11:17:20 · 384 阅读 · 0 评论 -
Java中补码的那些事
内存、显示器、键盘都是非常要好的哥们,他们协同合作为人类服务者,但是人类却对键盘和显示器情有独钟,根本不关心内存长什么样子原创 2017-04-09 11:41:51 · 5080 阅读 · 0 评论 -
浅谈匿名内部类
一、什么是匿名内部类? 匿名内部类,顾名思义,就是没有名字的内部类原创 2017-03-19 11:44:08 · 503 阅读 · 0 评论