<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fengdl123的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fengdl123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fengdl123]]></copyright><item><title><![CDATA[Java中string的intern()方法]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/122237520</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/122237520</guid><author>fengdl123</author><pubDate>Thu, 30 Dec 2021 15:31:16 +0800</pubDate><description><![CDATA[讨论的是jdk1.8的情况。

1.8之后，常量池存放在heap上。intern的作用，从英文上看，"囚禁"，因此我们可以理解成intern的就是把字符常量“囚禁”存放到常量池上(严格定义看jdk文档)。

如果常量池存在字符串字符串，就返回引用，否则就把字符串copy到常量池。

String初始化字符串有以下几种:

String str = "11";

String str = new String("11");

String str = new String("1")+new String("1]]></description><category></category></item><item><title><![CDATA[Java抽象类与C++抽象类]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/119728097</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/119728097</guid><author>fengdl123</author><pubDate>Mon, 16 Aug 2021 10:56:13 +0800</pubDate><description><![CDATA[Java中的抽象类与C++抽象类有一个明显的区别：

C++中，抽象类不能作为参数类型、返回值，强转类型。

而Java可以。
]]></description><category></category></item><item><title><![CDATA[UE4-蓝图实现时间戳转yyyy-MM-dd格式字符串]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/119637303</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/119637303</guid><author>fengdl123</author><pubDate>Thu, 12 Aug 2021 10:53:55 +0800</pubDate><description><![CDATA[原生的蓝图的没有时间戳转成yyyy-MM-dd的时间格式的，朋友们不要再趟坑了。

唯一的是办法，就是c++写一个，然后暴露，编译交给蓝图调用。

c++的写法可参考下图：

声明：以下创建c++的图来源于http://zhy.world/?p=131，并非本人。







ue4生成c++类时候，需要选择BlueprintFunctionLibrary为父类



创建完成后，就可以直接调用了。

对了，还有个坑，蓝图上的时间转换，会跟真是的unix时间差一个时区，也就是8个小时。所以要转换下才能..]]></description><category></category></item><item><title><![CDATA[UE4-UMG蓝图动态生成Text并设置位置]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/119636590</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/119636590</guid><author>fengdl123</author><pubDate>Thu, 12 Aug 2021 10:31:59 +0800</pubDate><description><![CDATA[正常来说，蓝图中调用Construct 动态生成Text后，就可以setPosition了。但是蓝图直接setPosition是不起作用的，原因是canvas slot还没有赋值。所以正确的操作应该是，先在父panel上AddChild先，然后再setPosition。

操作如图：




...]]></description><category></category></item><item><title><![CDATA[操作系统-多核篇]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/117953742</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/117953742</guid><author>fengdl123</author><pubDate>Wed, 16 Jun 2021 12:24:15 +0800</pubDate><description><![CDATA[一、多处理器与多核、超线程结构

x86体系结构下，经过了多处理器结构(SMP)，超线程结构，多核结构，多核超线程结构。简单来说，就是越往后推移，都是几个核心技术点的叠加。

1.多处理器结构

顾名思义，就是一条总线上挂着多个处理器。多处理器结构又分为对称和非对称处理器结构(很合理的演进)，对称没有主从之分，非对称有主从之分。

图1位对称多处理器结构



图1

2.超线程结构

超线程技术能让一个cpu同时执行多重线程,一个物理cpu分成多个逻辑cpu，但当不同线程访问同一资源时，其中一个要暂时停止]]></description><category></category></item><item><title><![CDATA[深入了解Java中“==”与“equals”的区别]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/53282812</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/53282812</guid><author>fengdl123</author><pubDate>Tue, 22 Nov 2016 10:15:38 +0800</pubDate><description><![CDATA[1.“==”比较的是对象或者基础数据类型的地址是否相同
给出例子:
	Son son1 = new Son();
	Son son2 = new Son();
	System.out.println(son1==son2);
很明显，结果是false。解释为：运行时，两个实例对象分别加载到堆的不同地址。
再来看:
     int a = 3;
     int b = 3;]]></description><category></category></item><item><title><![CDATA[Hibernate关于inverse与cascade属性的一些理解]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/53099918</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/53099918</guid><author>fengdl123</author><pubDate>Wed, 09 Nov 2016 14:59:32 +0800</pubDate><description><![CDATA[1.inverse
网上关于inverse的理解大都是决定主表还是从表维护关系，但这实在有点抽象，经过进行实验观察sql语句终于有了一下理解。]]></description><category></category></item><item><title><![CDATA[Java基于UDP用Socket实现点对点聊天]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/52232411</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/52232411</guid><author>fengdl123</author><pubDate>Wed, 17 Aug 2016 16:51:20 +0800</pubDate><description><![CDATA[基于UDP的聊天实现,采用读，写分离，用不同的线程实现。


主要实现类为DatagramSocket()与DatagramPacket()，默认端口为8009，Ip地址需要自己输入。
Reader线程：
package com.java.gui;

import java.io.IOException;
import java.net.DatagramPacket;
import ja]]></description><category></category></item><item><title><![CDATA[回车符与换行符的区别]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/52177495</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/52177495</guid><author>fengdl123</author><pubDate>Thu, 11 Aug 2016 00:05:22 +0800</pubDate><description><![CDATA[\r是回车符,\n是换行符
计算机还没有出现之前，有一种叫做电传打字机（Teletype Model 33）的玩意，每秒钟可以打10个字符。
但是它有一个问题，就是打完一行换行的时候，要用去0.2秒，正好可以打两个字符。
要是在这0.2秒里面，又有新的字符传过来，那么这个字符将丢失。 
于是，研制人员想了个办法解决这个问题，就是在每行后面加两个表示结束的字符。
一个叫做“回车”，告诉打字]]></description><category></category></item><item><title><![CDATA[Oracle中常用的三种数据字典表]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/52124457</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/52124457</guid><author>fengdl123</author><pubDate>Thu, 04 Aug 2016 23:48:20 +0800</pubDate><description><![CDATA[1.user_tables
   表的字典表,查看命令：
desc user_tables;
select * from user_tables;
2.user_views
  视图的字典表，查看命令:
desc user——views;
select * from user_tables;
3.user_constrants
  约束条件字典表,查看命令:
desc user]]></description><category></category></item><item><title><![CDATA[Java中TreeMap()与HashMap()]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/52089771</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/52089771</guid><author>fengdl123</author><pubDate>Mon, 01 Aug 2016 22:31:09 +0800</pubDate><description><![CDATA[#TreeMap()与HashMap()相对于Hashset(),LinkedList（)等都是双列容器,继承于接口Map();
1.TreeMap()构建后打印出来的顺序是从上到下，从左到右按照从小到大的顺序排列，Tree顾名思义是一种树形结构。其中，可以通过Comparator接口来给TreeMap()赋予参数，从而实现自定义顺序，下面是一个简单的例子：
import java.util.]]></description><category></category></item><item><title><![CDATA[JAVA中的Date类与Calendar类]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/52066267</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/52066267</guid><author>fengdl123</author><pubDate>Fri, 29 Jul 2016 16:29:30 +0800</pubDate><description><![CDATA[#Calendar类
1.Calendar类不能调用构造函数，只能使用单例模式来操作，例如：Calendar test = Calendar.getInstance()，并且只能用在static方法下。
2.Calendar默认是获取当前系统距离1970年1月一日到现在的时间，可以通过test.getTime()转化成功Date类型。


#Date类
1.Date类默认情况下也是获取]]></description><category></category></item><item><title><![CDATA[ANSI，Unicode, UTF-8，GBK简单区别]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/52059393</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/52059393</guid><author>fengdl123</author><pubDate>Thu, 28 Jul 2016 21:38:22 +0800</pubDate><description><![CDATA[四者主要区别:    
1.ANSI即为ASCII编码，为一个字节，只用到0~127号字符。
2.Unicode编码为万国码，包含几乎世界上的所有字符，一般情况下为两个字节。
3.GBK编码为中国特有编码，但也是在ANSI基础上演变出来的，包含两个字节，其中中文编码与Unicode的中文编码不一样。
4.UTF-8为Unicode的一种实现编码，Unicode编码可以通过一定的规则进行转变]]></description><category></category></item><item><title><![CDATA[利用JAVA创建简单的菜单界面]]></title><link>https://blog.youkuaiyun.com/fengdl123/article/details/52044852</link><guid>https://blog.youkuaiyun.com/fengdl123/article/details/52044852</guid><author>fengdl123</author><pubDate>Wed, 27 Jul 2016 13:55:33 +0800</pubDate><description><![CDATA[package com.Gui.test3;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.J]]></description><category></category></item></channel></rss>