<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[u012919240的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u012919240</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u012919240]]></copyright><item><title><![CDATA[开发中常遇到的加密算法]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/121350183</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/121350183</guid><author>u012919240</author><pubDate>Tue, 16 Nov 2021 10:34:20 +0800</pubDate><description><![CDATA[DES    分组密码（block cipher）
des对称加密（Des symmetric encryption），是一种比较传统的加密方式，其加密运算、解密运算使用的是同样的密钥，信息的发送者和信息的接收者在进行信息的传输与处理时，必须共同持有该密码（称为对称密码），是一种对称加密算法。
填充方式：
NoPadding
PKCS5Padding
AES
高级加密标准（Advanced Encryption Standard，AES）

...]]></description><category></category></item><item><title><![CDATA[数据结构&算法题]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/120901485</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/120901485</guid><author>u012919240</author><pubDate>Wed, 27 Oct 2021 17:14:07 +0800</pubDate><description><![CDATA[1. 红色树
特征：
1.结点是红色或黑色。
2.根结点是黑色。
3.每个叶子结点都是黑色的空结点（NIL结点）。
4 每个红色结点的两个子结点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色结点)
5.从任一结点到其每个叶子的所有路径都包含相同数目的黑色结点。

...]]></description><category></category></item><item><title><![CDATA[cocos creator 性能优化]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/117512662</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/117512662</guid><author>u012919240</author><pubDate>Thu, 14 Oct 2021 20:34:20 +0800</pubDate><description><![CDATA[基于Cocos Creator2.0.9 &amp; Cocos Creator 2.1.0
1. 节点的显示及隐藏
优化原因： 在子节点较多的UI界面、重新遍历整个渲染树，效率很低。
解决方案： setPosition | setOpacity
其它问题： drawcall会降不下来
补充解决： 使用Camera进行剔除，能够降低drawcall。
2. 节点添加。
代码片段：
for ( let i = 0, len = array.length; i &lt; len; i++)
{
let node]]></description><category></category></item><item><title><![CDATA[设计原则与模式]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/120481443</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/120481443</guid><author>u012919240</author><pubDate>Sun, 26 Sep 2021 09:13:01 +0800</pubDate><description><![CDATA[软件架构设计原则
1.1 开闭原则 （open-closed principle, OCP） 开放扩展（抽象）， 关闭修改
1.2 依赖倒置原则 （dependence inversion principle， DIP） 高层模块不应该依赖底层模块，二者都应该依赖其抽象
1.3 单一职责原则 （simple responsibility principle， SRP） 不要存在多余一个导致类变更的原因。
1.4 接口隔离原则 （Interface Segregation principle， ISP） 用.]]></description><category></category></item><item><title><![CDATA[cocos creator 数学计算]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/118733296</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/118733296</guid><author>u012919240</author><pubDate>Wed, 14 Jul 2021 17:38:51 +0800</pubDate><description><![CDATA[1. 两个点 组成的直线 相对于水平的斜率
let startPos
let endPos

let dt = cc.pSub(startPos, endPos);
//计算角度
let radian = Math.atan2(dt.x, dt.y); 
let rotation = (180 * radian / Math.PI + 90) % 360;
	
线条长度
cc.pDistance(startPos,endPos)


...]]></description><category></category></item><item><title><![CDATA[cocos creator 启动流程]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/117533420</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/117533420</guid><author>u012919240</author><pubDate>Thu, 03 Jun 2021 20:50:34 +0800</pubDate><description><![CDATA[CCGame
prepare：
_loadConfig : project.json  —&gt; initConfig: debugMode,exposeClassName,frameRate, renderMode,registerSystemEvent,showFPS,scenes,collisionMatrix,groupList,
//
cc.initEngine: cc.game.config/cc.game._loadConfig();_determineRenderType(webgl(o.]]></description><category></category></item><item><title><![CDATA[java String 形参值传递问题 StringBuffer StringBuilder引用传递 ----- jvm的功劳]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/115583354</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/115583354</guid><author>u012919240</author><pubDate>Sat, 10 Apr 2021 20:21:55 +0800</pubDate><description><![CDATA[java string 的 形参值传递方法
调试后 走的此 构造方法
发现当把 String 当形参传递时，调用的构造方法 如下：
 * Allocates a new {@code String} that contains characters from a subarray
 * of the character array argument. The {@code offset} argument is the
 * index of the first character of the subar]]></description><category></category></item><item><title><![CDATA[ios14升级后 出现黑屏问题]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/115332695</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/115332695</guid><author>u012919240</author><pubDate>Tue, 30 Mar 2021 18:46:18 +0800</pubDate><description><![CDATA[h5 处理方法：
var element = (el instanceof HTMLElement) ? el : (document.querySelector(el) || document.querySelector(’#’ + el));
        if (element.tagName === "CANVAS") {
            width = element.width;
            height = element.height;

            //i]]></description><category></category></item><item><title><![CDATA[十步学习法]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/115097324</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/115097324</guid><author>u012919240</author><pubDate>Mon, 22 Mar 2021 20:43:13 +0800</pubDate><description><![CDATA[十步学习法
LDLT (Learning,Doing,Learning And Teaching)
第一部分： 一次性完成  1~6
第二部分： 循环往复 7~10

最后 导师商店

]]></description><category></category></item><item><title><![CDATA[springboot 热部署]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/109228155</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/109228155</guid><author>u012919240</author><pubDate>Fri, 23 Oct 2020 14:25:21 +0800</pubDate><description><![CDATA[原理解析
热部署与热加载
联系
不重启服务器编译/部署项目
基于java类加载器实现
区别
热部署在服务器运行时重新部署项目
热加载在运行时重新加载class
实现原理
热部署直接重新加载整个应用
热加载在运行时重新加载class
使用场景
热部署              生产环境
热加载              开发环境



案例分析


项目演示


test


发布程序


课程总结



...]]></description><category></category></item><item><title><![CDATA[webpack --- state-machine.js]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/109022461</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/109022461</guid><author>u012919240</author><pubDate>Mon, 12 Oct 2020 17:04:40 +0800</pubDate><description><![CDATA[webpack 引入模块原理
webpackUniversalModuleDefinition(root, factory)

后手 factory 函数
将 state-machine 模块赋值
引入模块 7个


]]></description><category></category></item><item><title><![CDATA[creator 3d 快上车 旋转]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/109030142</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/109030142</guid><author>u012919240</author><pubDate>Mon, 12 Oct 2020 16:26:08 +0800</pubDate><description><![CDATA[以Y为例
弧度点 ----------------相对中心点位置

]]></description><category></category></item><item><title><![CDATA[cocos creator animation]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/108650940</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/108650940</guid><author>u012919240</author><pubDate>Thu, 17 Sep 2020 19:16:14 +0800</pubDate><description><![CDATA[* !#zh 播放指定的动画（将不会停止当前播放的动画）。如果没有指定动画，则播放默认动画。

playAdditive

]]></description><category></category></item><item><title><![CDATA[day10 string color 尺寸资源 布局资源 选项菜单上下文菜单 actionbar animation  补间动画]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/108305124</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/108305124</guid><author>u012919240</author><pubDate>Sun, 30 Aug 2020 16:22:53 +0800</pubDate><description><![CDATA[#string ignore
#color   透明度（可以不填 表示 0xff）  R G B
#6f00  #f00 #6600ff00 #00ff00
#尺寸资源  dp sp   dimens.xml
名义						作用范围
dp: 设备独立像素  边距 组件大小
sp:可伸缩像素         字体大小
#布局资源
#数组资源
 子元素 						尺寸、颜色、字符串…
 子元素			
 子元素

	
调用 ardoid:entries=
#drawable 资源
drawable 9 pat]]></description><category></category></item><item><title><![CDATA[day09 event ViewFlipper GestureDetector]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/108185677</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/108185677</guid><author>u012919240</author><pubDate>Sun, 23 Aug 2020 17:55:41 +0800</pubDate><description><![CDATA[监听事件   特定的事件
listener
回调方法   通用性的事件
onTouchEvent
onKeyDown
onKeyUp
onKeyLongPress
常用的物理按钮
KEYCODE_VOLUME_UP
KEYCODE_VOLUME_DOWN
KEYCODE_POWER
KEYCODE_BACK
KEYCODE_HOME
KEYCODE_MENU

自定义 上下文菜单
textView.setOnLongClickListener(new View.OnLongClickListener() .]]></description><category></category></item><item><title><![CDATA[day08activity close app progressbar ratingbar seekbar intent]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/108168799</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/108168799</guid><author>u012919240</author><pubDate>Sat, 22 Aug 2020 16:35:14 +0800</pubDate><description><![CDATA[intent activities loop

	//创建Intent对象
	Intent intent = new Intent(MainActivity.this, PasswordActivity.class);
	startActivity(intent); //启动Activity


close app

    static List&lt;Activity&gt; activityList = new LinkedList&lt;Activity&gt;();
        static.]]></description><category></category></item><item><title><![CDATA[day07 brower 2 app]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/108166314</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/108166314</guid><author>u012919240</author><pubDate>Sat, 22 Aug 2020 12:12:51 +0800</pubDate><description><![CDATA[add activity for BROWSABLE intent and url scheme protocol

    &lt;intent-filter&gt;
                &lt;action android:name="android.intent.action.VIEW" /&gt;

                &lt;category android:name="android.intent.category.DEFAULT" /&gt;
            .]]></description><category></category></item><item><title><![CDATA[day06 RelativeLayout LinearLayout FrameLayout]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/108035358</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/108035358</guid><author>u012919240</author><pubDate>Mon, 17 Aug 2020 09:48:54 +0800</pubDate><description><![CDATA[相对布局管理器使用

&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="mat.]]></description><category></category></item><item><title><![CDATA[day05 UI 操作]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/108027265</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/108027265</guid><author>u012919240</author><pubDate>Sat, 15 Aug 2020 20:46:12 +0800</pubDate><description><![CDATA[背景图   和 文字属性

android:background="@mipmap/kucaiba"

 android:text="@string/start"
 android:layout_gravity="center"
 android:textSize="18sp"
 android:textColor="#115572"


动态创建UI

        // code dyna ui
        FrameLayout frameLayout = new FrameLayout(th.]]></description><category></category></item><item><title><![CDATA[android day03 使用Fragment建立动态UI]]></title><link>https://blog.youkuaiyun.com/u012919240/article/details/107823964</link><guid>https://blog.youkuaiyun.com/u012919240/article/details/107823964</guid><author>u012919240</author><pubDate>Fri, 14 Aug 2020 10:42:19 +0800</pubDate><description><![CDATA[Fragment建立动态UI
为了在 Android 上为用户提供动态的、多窗口的交互体验，需要将 UI 组件和 Activity 操作封装成模块进行使用，这样我们就可以在 Activity 中对这些模块进行切入切出操作。可以用 Fragment 创建这些模块，Fragment 就像一个嵌套的 Activity，拥有自己的布局（Layout）并管理自己的生命周期。
Fragment 定义了自己的布局后，它可以在 Activity 中与其他 Fragment 生成不同的组合，从而为不同的屏幕尺寸生成不同的布局]]></description><category></category></item></channel></rss>