游戏引擎
UE5 https://www.unrealengine.com/zh-CN unity
godot
UE5 https://www.unrealengine.com/zh-CN unity
godot
人力资源领域中有个专业名词叫“胜任力模型”。它的具体含义为,对组织或企业中的某一个职位,依据提出的职责要求,为完成本职责而需要的能力要素的集中表示。简而言之,胜任力模型会告诉你,如果要胜任某个职位,需要哪些知识、哪些技能,只有具备了这些知识和能力,你才有可能胜任这个职位。这个模型在企业中常被用来当作人才招聘的评估工具和培训辅导工具。对于个人来说,胜任力模型也可以是我们自身做职业生涯规划时的一个很好的工具。如果你5年后,想成为一名HRD(人力资源总监),那么利用胜任力模型,你可以评估自己现在与HRD的差距。明确差距后,你的所有学习行动都是为了缩小这个差距。一般企业的职位胜任力模型由企业的专家、资深人士确定, 而对于刚毕业的学生或者一名中基层的职场人士来说,往往对于自己要从事的岗位需要哪些知识技能是模糊不清的。这时,建议你利用招聘网站上已经发布的岗位招聘需求,来做学习内容萃取,这种方式我们简称为“岗位描述萃取法”。
#todo
首选 socket,本机用socket其实和那些管道之类的性能差距不是特别大, 最关键是 socket 可以从单机多进程扩展到多机多进程,也就是分布式的环境。 当然了,如果确实是单机多进程,也可以看下常见的进程间通信方式 1 匿名管道通信 匿名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动 ,而且只能在具有亲缘关系的进程间使用。 2 高级管道通信 3. 有名管道通信 4. 消息队列通信 5. 信号量通信 6. 共享内存等

https://cloud.tencent.com/developer/article/1890758
http://visualvm.github.io/download.html
[[jvm 参数]]
visualvm_jdkhome="C:\jdk-17"
[[Java读取文件内容的六种方式]]
[[Java字符串和16进制数转换]]
[[Java密封类]]
[[弱引用]]
[[Java虚拟机规范]]
[[Objects.requireNonNull]]
import java.io.IOException;
public class HeStrTest {
public static void main(String[] args) throws IOException {
String he = string2Unicode("汉字123abcAb!@slc");
System.out.println(he);
System.out.println("=====16进制========");
he =strTo16(he);
System.out.println(he);
System.out.println("-------------------------");
System.out.println("16转字符串");
he = hexStringToString(he);
System.out.println(he);
System.out.println("unicode转文字11111111111111111");
he =unicode2String(he);
System.out.println(he);
}
public static String hexStringToString(String s) {
if (s == null || s.equals("")) {
return null;
}
s = s.replace(" ", "");
byte[] baKeyword = new byte[s.length() / 2];
for (int i = 0; i < baKeyword.length; i++) {
try {
baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(i * 2, i * 2 + 2), 16));
} catch (Exception e) {
e.printStackTrace();
}
}
try {
s = new String(baKeyword, "UTF-8");
} catch (Exception e1) {
e1.printStackTrace();
}
return s;
}
/**
* 字符串转换unicode
*/
public static String string2Unicode(String string) {
StringBuffer unicode = new StringBuffer();
for (int i = 0; i < string.length(); i++) {
// 取出每一个字符
char c = string.charAt(i);
// 转换为unicode
unicode.append("\\u" + Integer.toHexString(c));
}
return unicode.toString();
}
/**
* unicode 转字符串
*/
public static String unicode2String(String unicode) {
StringBuffer string = new StringBuffer();
String[] hex = unicode.split("\\\\u");
for (int i = 1; i < hex.length; i++) {
// 转换出每一个代码点
int data = Integer.parseInt(hex[i], 16);
// 追加成string
string.append((char) data);
}
return string.toString();
}
/**
* 字符串转化成为16进制字符串
* @param s
* @return
*/
public static String strTo16(String s) {
String str = "";
for (int i = 0; i < s.length(); i++) {
int ch = (int) s.charAt(i);
String s4 = Integer.toHexString(ch);
str = str + s4;
}
return str;
}
}