<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[maxkd的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/maxkd</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; maxkd]]></copyright><item><title><![CDATA[JAVA08-异常]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/117188620</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/117188620</guid><author>maxkd</author><pubDate>Sun, 23 May 2021 10:22:55 +0800</pubDate><description><![CDATA[异常
1. Error和Exception


区别：
Error：不可预见的错误，致命性的错误
Exception：可预见的异常




定义一个基类java.lang.Throwable作为基类

2. 捕获和处理异常
try：监控区域
catch：捕获区域，如果遇到此异常，就会执行该代码块
fianlly：不管怎样都会执行此代码块中的代码

假设要捕获多个异常，则要从小到大，层层递进

throw ：主动抛出异常，一般在方法中使用
throws：主动抛出异常，一般在方法中使用
public void ]]></description><category></category></item><item><title><![CDATA[JAVA07-面向对象]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/117188567</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/117188567</guid><author>maxkd</author><pubDate>Sun, 23 May 2021 10:22:08 +0800</pubDate><description><![CDATA[面向对象
1. 什么是面向对象


以类的方式封装代码，以对象的方式封装数据


三大特性：


封装

把一些代码封装成一个模块，提供一个出口供调用



继承

A类继承B类，A就拥有了B的所有性质



多态

一个类可以有多种不一样的对象





类和对象的关系：类是对象的模版


2. 方法的调用


静态方法：有static进行标记，可以在同一package内直接调用该类的方法
Student.say();                     //直接调用



非静态方法：
Studen]]></description><category></category></item><item><title><![CDATA[JAVA06-数组]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/117188496</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/117188496</guid><author>maxkd</author><pubDate>Sun, 23 May 2021 10:20:45 +0800</pubDate><description><![CDATA[JAVA05-数组
1. 数组的声明和创建
1.1 数组的声明

int[] array; #首选，建议在JAVA中使用
int array[]; #为了过渡C和C++的程序员

1.2 数组的创建
array = new int[num]; #创建num数量内存空间的数组

数组索引从0开始

1.3 数组的赋值
array[index] = number;

通过index对数组进行索引和赋值，默认赋值为0

1.4 数组的长度
通过array.length可以取出array的长度
1.5 数组同时声明]]></description><category></category></item><item><title><![CDATA[JAVA05-方法]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/117188442</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/117188442</guid><author>maxkd</author><pubDate>Sun, 23 May 2021 10:18:22 +0800</pubDate><description><![CDATA[方法
1. 方法的定义及调用


修饰符可选
返回类型必选
方法名必选
参数类型可选
快捷键：command+点击：进入查看源码

2. 重载

在一个类中，有相同的方法名，但形参列表不同
形参列表不同：参数个数或类型或排列方法不同

3. 命令行参数

编译：在地址为最底层的包内编译/src/com/max/www, 使用javac+类名.java
但无法直接在此地址运行：java+类名
要退回/src/内进行操作： java+完整包名, 如：java com.max.www.Demo01
通过空格在命令]]></description><category></category></item><item><title><![CDATA[JAVA04-流程控制]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/117188362</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/117188362</guid><author>maxkd</author><pubDate>Sun, 23 May 2021 10:17:00 +0800</pubDate><description><![CDATA[流程控制
1. Scanner对象
Scanner s = new Scanner(System.in);


通过next(),nextLine()获取输入的字符串
通过hasNext()和hasNextLine()获取是否还有输入的数据



使用玩scanner一定要关闭，
Mac补全代码快捷键：option+command+v
next()不能得到空白格字符串，会将空白做分隔符

2. 顺序结构

顺序执行代码，太基础了，略

3. 选择结构
3.1 if…else…

3.2 switch

JD]]></description><category></category></item><item><title><![CDATA[JAVA03-初学]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/117048671</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/117048671</guid><author>maxkd</author><pubDate>Wed, 19 May 2021 22:46:19 +0800</pubDate><description><![CDATA[JAVA基础
1. 注释


//：单行注释
//这是一个单行注释



/**/: 多行注释
/*
这
是
一
个
多
行
注
释
*/



/** */：双星开头JavaDoc文档注释


/**
* @Description helloworld
* @Author Max
*/

2. 标识符

​	类名、方法名和变量名都是标识符


可以用以下符号开头：

英文字母
下划线
$


首字符之后可以使用以下任意组合：

英文字母
下划线
$
数字


不可以使用关键字做方法名和变量名
标识符大小写]]></description><category></category></item><item><title><![CDATA[JAVA学习02-JDK安装（M1 MAC）]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/116975412</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/116975412</guid><author>maxkd</author><pubDate>Tue, 18 May 2021 09:36:54 +0800</pubDate><description><![CDATA[MACBOOK AIR安装JDK8
JDK8安装网址
1. JDK8下载地址
2. 下载后直接默认选项安装
3. 完成
使用命令：java -version查看是否安装成功


]]></description><category></category></item><item><title><![CDATA[JAVA学习01-Markdown]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/116973773</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/116973773</guid><author>maxkd</author><pubDate>Tue, 18 May 2021 08:38:25 +0800</pubDate><description><![CDATA[MarkDown 语法(Mac)
1. 标题


使用“#” + “ ”的方式：有多少个“#”，就是多少级标题


使用快捷键“command” + “NUM”：创建NUM级标题


2. 有序列表


使用“NUM” + “.”+“ ”的方式：创建有序列表，回车自动换行，双回车退出有序列表


使用快捷键“option” + “command ”+“O”：创建有序列表
示例：

hello
bye




列表右移：“command”+“]”
列表左移：“command”+“[”

3. 无序列表


使]]></description><category></category></item><item><title><![CDATA[p4 language learning :Part 3（学习笔记）]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/113775479</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/113775479</guid><author>maxkd</author><pubDate>Wed, 10 Feb 2021 11:36:30 +0800</pubDate><description><![CDATA[p4 language learning :Part 3（学习笔记）
3.1 Name resolution
引入名称空间的P4对象是以分层方式组织的。有一个顶层未命名的名称空间，其中包含所有顶层声明。
前缀有点的标识符始终在顶级名称空间中解析。
const bit&lt;32&gt; x = 2;
control c() {
   int&lt;32&gt; x = 0;
   apply {
       x = x + (int&lt;32&gt;).x;  // x is the int&lt;32]]></description><category></category></item><item><title><![CDATA[p4 language learning :Part 2（学习笔记）]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/113730888</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/113730888</guid><author>maxkd</author><pubDate>Sat, 06 Feb 2021 23:26:47 +0800</pubDate><description><![CDATA[p4 language learning :Part 2
2.1 String literals
字符串文字（字符串常量）被指定为任意的8位字符序列，并用双引号引起来。P4不会对字符串进行任何有效性检查（即它不会检查字符串是否代表合法的UTF-8编码）。
注：UTF-8（8位元，Universal Character Set/Unicode Transformation Format）是针对Unicode的一种可变长度字符编码。它可以用来表示Unicode标准中的任何字符，而且其编码中的第一个字节仍与ASC]]></description><category></category></item><item><title><![CDATA[p4 language learning :Part 1（学习笔记）]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/113705678</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/113705678</guid><author>maxkd</author><pubDate>Fri, 05 Feb 2021 23:41:29 +0800</pubDate><description><![CDATA[p4 language learning :Part 1
1.1 Syntax and semantics
P416的完整语法在附录E中给出，使用Yacc / Bison语法描述语言。 该文本基于相同的语法。 提供语法摘录时，我们采用了几种标准约定：
大写符号表示语法中的终端。
语法节选以BNF表示法如下：
p4program
  : /* empty */
  | p4program declaration
  | p4program ';'
  ;

注：附录E可以在文章末尾所给的链接中找到
伪代码（P]]></description><category></category></item><item><title><![CDATA[C++ Primer Plus笔记07]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/107485624</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/107485624</guid><author>maxkd</author><pubDate>Fri, 31 Jul 2020 23:44:42 +0800</pubDate><description><![CDATA[C++ Primer Plus笔记07
函数模板
函数模板是统一通用的函数描述，也就是说，其中的泛型可用具体的类型替换。
也就是，编译器允许以泛型（而不是具体类型）的方式来编写程序。
假设定义了一个交换两个int值的函数，假设要交换两个double值，可以复制原本的代码，并用所有的double替换int，但这种方法麻烦且容易出错。用函数模板可以自动完成这一过程。
示例
template &lt;typename AnyType&gt;  
void Swap(AnyType &amp;a, AnyType ]]></description><category></category></item><item><title><![CDATA[C++ Primer Plus 笔记06]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/107436838</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/107436838</guid><author>maxkd</author><pubDate>Tue, 21 Jul 2020 10:55:15 +0800</pubDate><description><![CDATA[C++ Primer Plus 笔记06
格式化设置

]]></description><category></category></item><item><title><![CDATA[C++ Primer Plus笔记05]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/107329033</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/107329033</guid><author>maxkd</author><pubDate>Sat, 18 Jul 2020 22:53:03 +0800</pubDate><description><![CDATA[C++ Primer Plus笔记03
内联函数
为了提高函数运行速度，对于那些经常调用的，而且比较小的函数，如果经常跳到他们的指令地址上去处理就会很浪费时间。
典型实现方法：
执行到函数调用指令时，程序将在函数调用后立即储存该指令的内存地址，并将函数参数复制到堆栈（为此保留内存块），跳到标记函数起点的内存单元，执行函数代码（也许还需将返回值放入到寄存器中），然后跳回到地址被保存的指令处。来回跳跃会有时间开销。
而内联函数：
编译器将使用相应的函数代码替换函数调用。对于内联代码，程序无需跳到另一个位置处执行]]></description><category></category></item><item><title><![CDATA[C++ Primer Plus 笔记04]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/107307485</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/107307485</guid><author>maxkd</author><pubDate>Tue, 14 Jul 2020 00:25:26 +0800</pubDate><description><![CDATA[C++ Primer Plus 笔记03
#函数指针
1.获取函数的地址
如function（）函数来说，function这个函数名就是函数的地址
process(function);      //pass address of function() to process()

2.声明函数指针
若函数原型是：
double pam(int);  //prototype

则指针一个这么定义：
double (*pf)(int);

返回值类型、函数的参数列表一个和原函数一致。
因为表示是一个指针，且这个]]></description><category></category></item><item><title><![CDATA[C++ Primer Plus笔记03]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/107256278</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/107256278</guid><author>maxkd</author><pubDate>Mon, 13 Jul 2020 23:43:54 +0800</pubDate><description><![CDATA[const与指针
int sloth=3;
const int * ps = &amp;sloth;      //a pointer to const int --1
int * const finger = &amp;sloth;  //a const pointer to int --2

对于1来说：是一个指针，指向一个const int 类型
不能通过指针来修改sloth的值，但sloth本身可以通过赋值来修改。
对于2来说：是一个const指针，指向一个int 类型
不能改变指针指向的地址，也就]]></description><category></category></item><item><title><![CDATA[C++ Primer Plus笔记02]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/107249439</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/107249439</guid><author>maxkd</author><pubDate>Fri, 10 Jul 2020 13:52:28 +0800</pubDate><description><![CDATA[C++ Primer Plus02
简述
在输入、输出，以及sprintf()转换中，整数默认是十进制，然后在一些特定的情况下，需要十六进制或八进制来处理，这里就牵涉到转换。
一、sprintf()转换成十六进制
1、%x转换成十六进制
char str[20];
int n = 10;
sprintf(str, 20, “%x”, n);
结果：str = “a”；  十六进制中 10 对应 a
2、转换成大写
char str[20];
int n = 10;
sprintf(str, 20, “%X”]]></description><category></category></item><item><title><![CDATA[C++ Primer Plus 笔记01]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/107227701</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/107227701</guid><author>maxkd</author><pubDate>Thu, 09 Jul 2020 14:24:53 +0800</pubDate><description><![CDATA[C++ Primer Plus 笔记01
#关于C++的精度设置
cout&lt;&lt;fixed ;

//用一般的方式输出浮点型，例如Ｃ＋＋程序在控制台显示的时候大一点的数，显示的时候使用了科学计数法，使用该命令即可像一般的方式显示   --转载自小小妖妖
cout.precision（2） ;

//设置精确度为2，并返回上一次的设置。 --转载自小小妖妖
cout.setf（iOS_base::showpoint） ;

//显示浮点数小数点后面的零。–转载自小小妖妖
而在文件输入时也可使用：
o]]></description><category></category></item><item><title><![CDATA[2020-07-04]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/107109844</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/107109844</guid><author>maxkd</author><pubDate>Sat, 04 Jul 2020 09:48:46 +0800</pubDate><description><![CDATA[get()与getline()	的区别
getline()有两个参数，第一个是要输入到的字符变量的名字，第二个是最大输入数。并不会保留回车符在内存。
get()则会保留回车符，所以使用时要使用两次来消除回车符干扰。

...]]></description><category></category></item><item><title><![CDATA[游戏——TextOut函数]]></title><link>https://blog.youkuaiyun.com/maxkd/article/details/106045241</link><guid>https://blog.youkuaiyun.com/maxkd/article/details/106045241</guid><author>maxkd</author><pubDate>Mon, 11 May 2020 22:34:38 +0800</pubDate><description><![CDATA[用当前选择的字符、背景颜色和正文颜色将一个字符串写道指定位置
原型：
BOOL TextOut(
   HDC hdc,    //需要进行的文本输出的DC的句柄
   int nXStart,  //开始书写的位置的X坐标
   int nYStart,  //开始书写的位置的Y坐标
   LPCTSTR lpString,  //指向字符串的指针，文本默认黑色，背景为白色
   int cbString  //字符串的字符数
   ）；

调用实例：
wchar_t text1[]=L"要有最朴素的生活]]></description><category></category></item></channel></rss>