<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[微信公众号：老张聊天，一个为了你能进步操碎心的公众号。]]></title><description><![CDATA[来啊，一起改变！一起提升！一起进步啊！]]></description><link>https://blog.youkuaiyun.com/qiruibbb</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qiruibbb]]></copyright><item><title><![CDATA[oracle数据库通过数据泵实现导入导出]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/107692644</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/107692644</guid><author>qiruibbb</author><pubDate>Thu, 30 Jul 2020 16:07:20 +0800</pubDate><description><![CDATA[【注意】
在10g之前，传统的导出导入分别使用exp工具和imp工具。从oracle database 10g开始，不仅保留了原有的
exp和imp工具，还提供了数据泵导出导入工具expdp和impdp。
从11g开始，在传统的export和import应用程序中可用的任何特性在data pump中都可用。
在使用expdp和impdp工具时，应该注意以下几点：
1 exp和imp是客户端工具程序，它们既可以在客户端使用，也可以在服务器端使用。
2 expdp和impdp是服务器工具程序，它们只能在orac]]></description><category></category></item><item><title><![CDATA[JUC练习代码-力扣多线程1126题目：哲学家进餐，解题详解]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/107097545</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/107097545</guid><author>qiruibbb</author><pubDate>Fri, 03 Jul 2020 08:08:54 +0800</pubDate><description><![CDATA[想起来上学的时候好像就挺经典的一道算法题，一直没有自己试过去解决。刚好力扣上有这道题，于是试试看。
题目描述就简单说了。5个哲学家5只筷子，要保证每个哲学家都能吃上饭。。
哲学家从 0 到 4 按 顺时针 编号。请实现函数 void wantsToEat(philosopher, pickLeftFork, pickRightFork, eat, putLeftFork, putRightFork)：
philosopher 哲学家的编号。
pickLeftFork 和 pickRightFork 表示拿起]]></description><category></category></item><item><title><![CDATA[JUC练习代码-力扣多线程1195题目：交替打印字符串，解题详解]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/107097523</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/107097523</guid><author>qiruibbb</author><pubDate>Fri, 03 Jul 2020 08:01:10 +0800</pubDate><description><![CDATA[题目描述
编写一个可以从 1 到 n 输出代表这个数字的字符串的程序，但是：
如果这个数字可以被 3 整除，输出 “fizz”。
如果这个数字可以被 5 整除，输出 “buzz”。
如果这个数字可以同时被 3 和 5 整除，输出 “fizzbuzz”。
例如，当 n = 15，输出： 1, 2, fizz, 4, buzz, fizz, 7, 8, fizz, buzz, 11, fizz, 13, 14, fizzbuzz。
假设有这么一个类：
class FizzBuzz {
public FizzBu]]></description><category></category></item><item><title><![CDATA[JUC练习代码-力扣多线程1117题目：H2O 生成，解题详解]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/107097514</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/107097514</guid><author>qiruibbb</author><pubDate>Fri, 03 Jul 2020 07:56:01 +0800</pubDate><description><![CDATA[题目描述
现在有两种线程，氧 oxygen 和氢 hydrogen，你的目标是组织这两种线程来产生水分子。
存在一个屏障（barrier）使得每个线程必须等候直到一个完整水分子能够被产生出来。
氢和氧线程会被分别给予 releaseHydrogen 和 releaseOxygen 方法来允许它们突破屏障。
这些线程应该三三成组突破屏障并能立即组合产生一个水分子。
你必须保证产生一个水分子所需线程的结合必须发生在下一个水分子产生之前。
换句话说:
如果一个氧线程到达屏障时没有氢线程到达，它必须等候直到两个氢线]]></description><category></category></item><item><title><![CDATA[JUC练习代码-力扣多线程1116题目：打印零与奇偶数，解题详解]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/107097484</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/107097484</guid><author>qiruibbb</author><pubDate>Fri, 03 Jul 2020 07:52:14 +0800</pubDate><description><![CDATA[题目描述
假设有这么一个类：
class ZeroEvenOdd {
public ZeroEvenOdd(int n) { … }      // 构造函数
public void zero(printNumber) { … }  // 仅打印出 0
public void even(printNumber) { … }  // 仅打印出 偶数
public void odd(printNumber) { … }   // 仅打印出 奇数
}
相同的一个 ZeroEvenOdd 类实例将会传递给三个不同的]]></description><category></category></item><item><title><![CDATA[JUC练习代码-力扣多线程1115题目：交替打印FooBar，解题详解]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/107097472</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/107097472</guid><author>qiruibbb</author><pubDate>Fri, 03 Jul 2020 07:43:11 +0800</pubDate><description><![CDATA[题目描述
我们提供一个类：
class FooBar {
public void foo() {
for (int i = 0; i &lt; n; i++) {
print(“foo”);
}
}
public void bar() {
for (int i = 0; i &lt; n; i++) {
print(“bar”);
}
}
}
两个不同的线程将会共用一个 FooBar 实例。其中一个线程将会调用 foo() 方法，另一个线程将会调用 bar() 方法。
请设计修改程序，以确保 “foobar]]></description><category></category></item><item><title><![CDATA[JUC练习代码-力扣多线程1114题目：按续打印，解题详解]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/107097458</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/107097458</guid><author>qiruibbb</author><pubDate>Fri, 03 Jul 2020 07:39:20 +0800</pubDate><description><![CDATA[经同事发现力扣上有多线程的题，于是花了1天多一些时间来尝试解答，在不参考答案的情况下。终于都搞定了。
1114题目：
我们提供了一个类：
public class Foo {
public void one() { print(“one”); }
public void two() { print(“two”); }
public void three() { print(“three”); }
}
三个不同的线程将会共用一个 Foo 实例。
线程 A 将会调用 one() 方法
线程 B 将会调用 two]]></description><category></category></item><item><title><![CDATA[JUC练习代码-Semaphore简易用法]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/107055655</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/107055655</guid><author>qiruibbb</author><pubDate>Wed, 01 Jul 2020 08:49:30 +0800</pubDate><description><![CDATA[public class SemaphoreTest {
    public static void main(String[] args) {
        //6辆车抢三个停车位
        Semaphore semaphore = new Semaphore(3);
        for(int i=0;i&lt;6;i++){

            new Thread(()-&gt;{
                try {
                    semaph]]></description><category></category></item><item><title><![CDATA[JUC练习代码-CyclicBarrier的简单用法]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/107055420</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/107055420</guid><author>qiruibbb</author><pubDate>Wed, 01 Jul 2020 08:31:36 +0800</pubDate><description><![CDATA[public class CyclicBarrierTest {


    public static void main(String[] args) {
        CyclicBarrier cyclicBarrier=new CyclicBarrier(7,()-&gt;{
            System.out.println("导游：大家都到齐啦，准备上车");
        });
        for (int i = 0; i &lt;7; i++) {
         ]]></description><category></category></item><item><title><![CDATA[JUC练习代码-CountDownLatch用法]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/107032997</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/107032997</guid><author>qiruibbb</author><pubDate>Tue, 30 Jun 2020 08:53:44 +0800</pubDate><description><![CDATA[public class CountDownLatchTest01 {
    public static void main(String[] args) throws InterruptedException {
        //发令枪准备
        CountDownLatch startSignal=new CountDownLatch(1);
        //5个线程要一起到终点
        CountDownLatch endSignal=new CountDownLatch(]]></description><category></category></item><item><title><![CDATA[JUC练习代码-JUC版本实现生产者消费者问题]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/106928838</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/106928838</guid><author>qiruibbb</author><pubDate>Tue, 23 Jun 2020 18:15:00 +0800</pubDate><description><![CDATA[public class JUCTest02 {
    public static void main(String[] args) throws InterruptedException {
        Data2 data = new Data2();
        new Thread(() -&gt; {
            for (int i = 0; i &lt; 20; i++) {
                try {
                    data.i]]></description><category></category></item><item><title><![CDATA[JUC练习代码-Synchronized实现生产者消费者问题]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/106915138</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/106915138</guid><author>qiruibbb</author><pubDate>Tue, 23 Jun 2020 08:35:30 +0800</pubDate><description><![CDATA[生产者消费者问题，用Synchronized关键字解决方法如下：
两个线程操作同一个对象，一个进行+1操作，一个进行-1操作。
本代码仅用于练习操作，不要直接在生产环境执行。
public class JUCTest01 {
    public static void main(String[] args) throws InterruptedException {
        Data data = new Data();
        new Thread(()-&gt;{
          ]]></description><category></category></item><item><title><![CDATA[奥利给！搞定JVM就靠它了！不看感觉错过一个亿！吐血整理两个月，原创！全网第一份超详细JVM知识点导图！！！]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/106818531</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/106818531</guid><author>qiruibbb</author><pubDate>Thu, 18 Jun 2020 09:22:07 +0800</pubDate><description><![CDATA[吐血两个月整理，学习JVM必备超详细知识导图，自己学习jvm的经历分享。原创不易，欢迎支持转关注。]]></description><category></category></item><item><title><![CDATA[每天早起2小时，坚持32天后（亲身经历）]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/106583473</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/106583473</guid><author>qiruibbb</author><pubDate>Sat, 06 Jun 2020 09:58:17 +0800</pubDate><description><![CDATA[微信公众号：【老张聊天】
一起改变，一起提升，一起进步啊！！
[欢迎大家扫码关注，转发，点赞！]

无数的文章书籍，都谈论过时间宝贵，我们要珍惜。各种理论铺天盖地，比如番茄时钟法，如何开高效会议等等，道理我们懂了很多，也尝试运用，但是能坚持下来的人却很少，大部分人依旧过着和往常一样的生活。
说理论、发鸡汤口号很响，但是缺乏说服力，所以我将自己亲身体验分享给大家，希望您看完能有一些行动。
一、那些年踩点的日子
老张也过了很.]]></description><category></category></item><item><title><![CDATA[深入理解Java虚拟机（第三版）-02-HotSpot虚拟机对象探秘（2）]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/106103646</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/106103646</guid><author>qiruibbb</author><pubDate>Thu, 14 May 2020 08:42:09 +0800</pubDate><description><![CDATA[微信公众号：【老张聊天】
一起改变，一起提升，一起进步啊！！
[欢迎大家扫码关注，转发，点赞！]

以下大部分内容基于周志明的《深入理解Java虚拟机 第三版》，第三版相比第二版更新了很多知识点。pdf版本已经上传到网盘，微信扫码关注回复【jvm】获取网盘地址和提取码

接着上一篇对象的创建，现在来讲下对象的内存布局。
二、对象的内存布局
HotSpot虚拟机中，对象的内存布局分为三个部分：【对象头（Head.]]></description><category></category></item><item><title><![CDATA[深入理解Java虚拟机（第三版）-02-HotSpot虚拟机对象探秘（1）]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/106089762</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/106089762</guid><author>qiruibbb</author><pubDate>Wed, 13 May 2020 09:22:10 +0800</pubDate><description><![CDATA[微信公众号：[攻城狮老张]
又稳又重的老码农，分享工作生活经验。
风趣幽默的段子手，总结编程专业知识。
希望能用通俗易懂的语言，给小伙伴带来收获~
[如果觉得对您有帮助，欢迎关注，转发，点赞！]

以下大部分内容基于周志明的《深入理解Java虚拟机 第三版》，第三版相比第二版更新了很多知识点。pdf版本已经上传到网盘，微信扫码关注回复【jvm】获取网盘地址和提取码

一、对象的创建
创建对象，通常仅仅是一个new关键字（例外：复制，反序列化）,本次讨论的对象限于普通Java对象，不包括数组和Class对象.]]></description><category></category></item><item><title><![CDATA[深入理解Java虚拟机（第三版）01-Java虚拟机运行时数据区介绍]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/106058234</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/106058234</guid><author>qiruibbb</author><pubDate>Tue, 12 May 2020 08:27:54 +0800</pubDate><description><![CDATA[微信公众号：[攻城狮老张]
又稳又重的老码农，分享工作生活经验。
风趣幽默的段子手，总结编程专业知识。
希望能用通俗易懂的语言，给小伙伴带来收获~
[如果觉得对您有帮助，欢迎关注，转发，点赞！]

一、开篇说明
老张最近在看多线程、锁的源码，但是在学习源码过程中，发现需要对Java虚拟机，以及JMM等有一个全面的理解，能更快的吸收源码中的知识。所以先更新Java虚拟机专栏内容。
之前没有接触过的小伙伴也不用怕不用怂，其实这部分知识，大部分还是理论。推荐先看一遍视频学习，对整体有印象和概念后，再来看书补充细.]]></description><category></category></item><item><title><![CDATA[如何向老婆解释HashMap]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/105914264</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/105914264</guid><author>qiruibbb</author><pubDate>Mon, 04 May 2020 10:40:42 +0800</pubDate><description><![CDATA[微信公众号：[攻城狮老张]
又稳又重的老码农，分享工作生活经验。
风趣幽默的段子手，总结编程专业知识。
希望能用通俗易懂的语言，给小伙伴带来收获~
[如果觉得对您有帮助，欢迎关注，转发，点赞！]

一、看视频最好带耳机
晚上在家看视频学习中，开了外放，刚好在讲HashMap，老婆在旁边问道：“HashMap是啥？”
大脑中飞速闪过，前阵子看过另外一篇文章《如何向老婆解释RPC》，文章中作者怕老婆...]]></description><category></category></item><item><title><![CDATA[工作后如何快速高效的学习专业知识]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/105896534</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/105896534</guid><author>qiruibbb</author><pubDate>Sat, 02 May 2020 22:30:42 +0800</pubDate><description><![CDATA[微信公众号：【老张聊天】
一起改变，一起提升，一起进步啊！！
[欢迎大家扫码关注，转发，点赞！]

###一、学习咋就这么难？
看过电影《夏洛特烦恼》的小伙伴们，应该都记得下面这位可爱的大爷，也记住了"马冬什么"这个梗。

但是笑过之后，回想现实中的我们，是否也经常会遇到"马冬什么"的尴尬呢？

几...]]></description><category></category></item><item><title><![CDATA[工作后为什么攒不到钱？]]></title><link>https://blog.youkuaiyun.com/qiruibbb/article/details/105896515</link><guid>https://blog.youkuaiyun.com/qiruibbb/article/details/105896515</guid><author>qiruibbb</author><pubDate>Sat, 02 May 2020 22:29:32 +0800</pubDate><description><![CDATA[微信公众号：【老张聊天】
一起改变，一起提升，一起进步啊！！
[欢迎大家扫码关注，转发，点赞！]

时光飞逝、老张从年轻小伙子，变成了油腻大叔，从“稳重”变成了更稳更重。
不过对攒钱的观念也发生了变化，下面详细说下我的理解。
（本文内容不含广告理财课程保险推销等）
###一、钱不是省出来的，是靠赚出...]]></description><category></category></item></channel></rss>