<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[caojunjia的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/caojunjia</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; caojunjia]]></copyright><item><title><![CDATA[【详识C语言】程序环境和预处理]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136518478</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136518478</guid><author>caojunjia</author><pubDate>Wed, 06 Mar 2024 23:57:18 +0800</pubDate><description><![CDATA[_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__//文件被编译的日期__TIME__  //文件被编译的时间__STDC__ //如果编译器遵循ANSI C，其值为1，否则未定义这些预定义符号都是语言内置的。#define reg register //为 register这个关键字，创建一个简短的名字;) //用更形象的符号来替换一种实现case //在写case语句的时候自动把 break写上。]]></description><category></category></item><item><title><![CDATA[【详识C语言】C语言文件操作]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136517812</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136517812</guid><author>caojunjia</author><pubDate>Wed, 06 Mar 2024 21:26:42 +0800</pubDate><description><![CDATA[磁盘上的文件是文件。但是在程序设计中，我们一般谈的文件有两种：程序文件、数据文件（从文件功能的角度来分类的）。]]></description><category></category></item><item><title><![CDATA[【详识C语言】动态内存管理]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136517175</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136517175</guid><author>caojunjia</author><pubDate>Wed, 06 Mar 2024 20:52:34 +0800</pubDate><description><![CDATA[这个函数向内存申请一块连续可用的空间，并返回指向这块空间的指针。如果开辟成功，则返回一个指向开辟好空间的指针。如果开辟失败，则返回一个NULL指针，因此malloc的返回值一定要做检查。返回值的类型是 void* ，所以malloc函数并不知道开辟空间的类型，具体在使用的时候使用者自己 来决定。如果参数 size 为0，malloc的行为是标准是未定义的，取决于编译器。free函数用来释放动态开辟的内存。如果参数 ptr 指向的空间不是动态开辟的，那free函数的行为是未定义的。]]></description><category></category></item><item><title><![CDATA[【详识C语言】自定义类型之三：联合]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136516993</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136516993</guid><author>caojunjia</author><pubDate>Wed, 06 Mar 2024 20:29:50 +0800</pubDate><description><![CDATA[联合也是一种特殊的自定义类型这种类型定义的变量也包含一系列的成员，特征是这些成员公用同一块空间（所以联合也叫共用体）。//联合类型的声明 union Un {char c;int i;//联合变量的定义//计算连个变量的大小。]]></description><category></category></item><item><title><![CDATA[【详识C语言】自定义类型之二：枚举]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136516414</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136516414</guid><author>caojunjia</author><pubDate>Wed, 06 Mar 2024 20:25:25 +0800</pubDate><description><![CDATA[enum Day//星期Mon,Tues,Wed,Thur,Fri,Sat,Sunenum Sex//性别MALE,FEMALE,SECRET }；enum Color//颜色 {RED,GREEN,BLUE以上定义的enum Dayenum Sexenum Color都是枚举类型。{}中的内容是枚举类型的可能取值，也叫枚举常量。这些可能取值都是有值的，默认从0开始，一次递增1，当然在定义的时候也可以赋初值。enum Color//颜色RED=1,GREEN=2,]]></description><category></category></item><item><title><![CDATA[【详识C语言】自定义类型之一：结构体]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136511045</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136511045</guid><author>caojunjia</author><pubDate>Wed, 06 Mar 2024 17:14:14 +0800</pubDate><description><![CDATA[有了结构体类型，那如何定义变量，其实很简单。int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化：定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化int data;//结构体嵌套初始化//结构体嵌套初始化位段的声明和结构是类似的，有两个不同：1.位段的成员必须是int、unsigned int 或signed int2.位段的成员名后边有一个冒号和一个数字。struct A {]]></description><category></category></item><item><title><![CDATA[【详识JAVA语言】认识异常]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136491302</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136491302</guid><author>caojunjia</author><pubDate>Tue, 05 Mar 2024 23:13:12 +0800</pubDate><description><![CDATA[程序先执行 try 中的代码如果 try 中的代码出现异常, 就会结束 try 中的代码, 看和 catch 中的异常类型是否匹配.如果找到匹配的异常类型, 就会执行 catch 中的代码如果没有找到匹配的异常类型, 就会将异常向上传递到上层调用者. 无论是否找到匹配的异常类型, ﬁnally 中的代码都会被执行到(在该方法结束之前执行).如果上层调用者也没有处理的了异常, 就继续向上传递.一直到 main 方法也没有合适的代码处理异常, 就会交给 JVM 来进行处理, 此时程序就会异常终止.]]></description><category></category></item><item><title><![CDATA[【详识JAVA语言】String类oj练习]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136485670</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136485670</guid><author>caojunjia</author><pubDate>Tue, 05 Mar 2024 18:10:05 +0800</pubDate><description><![CDATA[1. 第一个只出现一次的字符 2.

最后一个单词的长度 3. 检测字符串是否为回文]]></description><category></category></item><item><title><![CDATA[【详识JAVA语言】String类2]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136485031</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136485031</guid><author>caojunjia</author><pubDate>Tue, 05 Mar 2024 18:00:42 +0800</pubDate><description><![CDATA[由于String的不可更改特性，为了方便字符串的修改，Java中又提供StringBuilder和StringBuﬀer类。这两个类大 部分功能是相同的，这里介绍 StringBuilder常用的一些方法。方法说明在尾部追加，相当于String的+=，可以追加：boolean、char、char[]、 double、ﬂoat、int、long、Object、String、StringBuﬀ的变量获取index位置的字符获取字符串的长度获取底层保存字符串空间总的大小扩容。]]></description><category></category></item><item><title><![CDATA[【详识JAVA语言】String 类1]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136483352</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136483352</guid><author>caojunjia</author><pubDate>Tue, 05 Mar 2024 17:36:38 +0800</pubDate><description><![CDATA[在C语言中已经涉及到字符串了，但是在C语言中要表示字符串只能使用字符数组或者字符指针，可以使用标准库提 供的字符串系列函数完成大部分操作，但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想，而字 符串应用又非常广泛，因此Java语言专门提供了String类。在开发和校招笔试中，字符串也是常客，比如：字符串转整形数字字符串相加而且在面试中也频繁被问到，比如：String、StringBuﬀ和StringBulider之间的区别等。String类提供的构造方式非常多，常用的就以下三种：


【注意】
]]></description><category></category></item><item><title><![CDATA[【详识JAVA语言】Java图形化界面-JOptionPane]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136481098</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136481098</guid><author>caojunjia</author><pubDate>Tue, 05 Mar 2024 16:28:26 +0800</pubDate><description><![CDATA[使用JOptionPane方法输出多行。showMessageDialog，将新的行字符'\n'插入用作第二个参数的字符串中。•如果省略最后一行(System.exit(0))，即使单击输出窗口中的OK按钮，程序也不会结束。JOptionPane.showInputDialog可用于输入任何数字类型。JOptionPane类产生用于获取输入或显示输出的窗口。要将输入值从字符串转换为整数，请使用integer类中的。•如果输入格式不正确，程序将崩溃。包含多行输出的对话框窗口。•总是标记任何输出。]]></description><category></category></item><item><title><![CDATA[C语言指针详解进阶2]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/132839002</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/132839002</guid><author>caojunjia</author><pubDate>Tue, 05 Mar 2024 15:03:14 +0800</pubDate><description><![CDATA[数组是一个存放相同类型数据的存储空间，那我们已经学习了指针数组，比如：那要把函数的地址存到一个数组中，那这个数组就叫，那函数指针的数组如何定义呢？答案是：parr1parr1先和[]结合，说明parr1是数组，数组的内容是什么呢？是int (*)()类型的函数指针。函数指针数组是一个数组，每个元素都是一个函数指针。函数指针指向函数的内存地址，可以用来动态地调用函数。通过定义一个函数指针数组，可以将多个不同的函数作为数组的元素，便于根据需要选择并调用特定的函数。]]></description><category></category></item><item><title><![CDATA[【详识JAVA语言】抽象类和接口]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136437721</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136437721</guid><author>caojunjia</author><pubDate>Sun, 03 Mar 2024 21:23:53 +0800</pubDate><description><![CDATA[在面向对象的概念中，所有的对象都是通过类来描绘的，但是反过来，并不是所有的类都是用来描绘对象的，如果 一个类中没有包含足够的信息来描绘一个具体的对象，这样的类就是抽象类。 通过上述例子可以看出：接口就是公共的行为规范标准，大家在实现时，只要符合规范标准，就可以通用。

在Java中，接口可以看成是：多个类的公共规范，是一种引用数据类型。]]></description><category></category></item><item><title><![CDATA[【详识JAVA语言】面向对象程序三大特性之三：多态]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136435484</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136435484</guid><author>caojunjia</author><pubDate>Sun, 03 Mar 2024 20:23:29 +0800</pubDate><description><![CDATA[多态的概念：通俗来说，就是多种形态，具体点就是去完成某个行为，当不同的对象去完成时会产生出不同的状态。在java中要实现多态，必须要满足如下几个条件，缺一不可：

1. 必须在继承体系下

2. 子类必须要对父类中方法进行重写

3. 通过父类的引用调用重写的方法

多态体现：在代码运行时，当传递不同类对象时，会调用对应类中的方法。]]></description><category></category></item><item><title><![CDATA[【详识JAVA语言】面向对象程序三大特性之二：继承]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136434530</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136434530</guid><author>caojunjia</author><pubDate>Sun, 03 Mar 2024 18:06:44 +0800</pubDate><description><![CDATA[成员方法没有同名时，在子类方法中或者通过子类对象访问方法时，则优先访问自己的，自己没有时 再到父类中找，如果父类中也没有则报错。上述图示中，Dog和Cat都继承了Animal类，其中：Animal类称为父类/基类或超类，Dog和Cat可以称为Animal的 子类/派生类，继承之后，子类可以复用父类中成员，子类在实现时只需关心自己新增加的成员即可。

从继承概念中可以看出继承最大的作用就是：实现代码复用，还有就是来实现多态(后序讲)。

继承的语法

在Java中如果要表示类之间的继承关系，需要借助exte]]></description><category></category></item><item><title><![CDATA[【详识JAVA语言】面向对象程序三大特性之一：封装]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136433157</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136433157</guid><author>caojunjia</author><pubDate>Sun, 03 Mar 2024 17:06:40 +0800</pubDate><description><![CDATA[1. 在文件的最上方加上一个 package 语句指定该代码在哪个包中.2. 包名需要尽量指定成唯一的名字, 通常会用公司的域名的颠倒形式(例如 com.bit.demo1).3. 包名要和代码路径相匹配. 例如创建 com.bit.demo1 的包, 那么会存在一个对应的路径com/bit/demo1 来存储代码.4. 如果一个类没有 package 语句, 则该类被放到一个默认包中.]]></description><category></category></item><item><title><![CDATA[【详识JAVA语言】类和对象]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136429114</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136429114</guid><author>caojunjia</author><pubDate>Sun, 03 Mar 2024 16:00:00 +0800</pubDate><description><![CDATA[Java是一门纯面向对象的语言(Object Oriented Program，简称OOP)，在面向对象的世界里，一切皆为对象。面向对象是解决问题的一种思想，主要依靠对象之间的交互完成一件事情。用面向对象的思想来涉及程序，更符合人 们对事物的认知，对于大型程序的设计、扩展以及维护都非常友好。面相对象程序设计关注的是对象，而对象是现实生活中的实体，比如：洗衣机。但是洗衣机计算机并不认识，需要开发人员告诉给计算机什么是洗衣机。该过程称为对洗衣机对象(实体)进行抽象(对一个复杂事物的重新认知)]]></description><category></category></item><item><title><![CDATA[【详识JAVA语言】数组练习]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136428809</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136428809</guid><author>caojunjia</author><pubDate>Sun, 03 Mar 2024 11:58:29 +0800</pubDate><description><![CDATA[可以看到, 针对一个长度为 10000 个元素的数组查找, 二分查找只需要循环 14 次就能完成查找. 随着数组元素个数越多, 二分的优势就越大.思路 设定两个下标, 分别指向第一个元素和最后一个元素. 交换两个位置的元素. 然后让前一个下标自增, 后一个下标自减, 循环继续即可.1. 将数组中相邻元素从前往后依次进行比较，如果前一个元素比后一个元素大，则交换，一趟下来后最大元素 就在数组的末尾。给定一个数组, 再给定一个元素, 找出该元素在数组中的位置.给定一个数组, 将里面的元素逆序排列.]]></description><category></category></item><item><title><![CDATA[【详识JAVA语言】数组的应用场景]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136428738</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136428738</guid><author>caojunjia</author><pubDate>Sun, 03 Mar 2024 11:40:31 +0800</pubDate><description><![CDATA[所谓的 "引用" 本质上只是存了一个地址. Java 将数组设定成引用类型, 这样的话后续进行数组参数传参, 其实 只是将数组的地址传入到函数形参中. 这样可以避免对整个数组的拷贝(数组可能比较长, 那么拷贝开销就会很大).]]></description><category></category></item><item><title><![CDATA[【详识JAVA语言】数组的定义与使用]]></title><link>https://blog.youkuaiyun.com/caojunjia/article/details/136405484</link><guid>https://blog.youkuaiyun.com/caojunjia/article/details/136405484</guid><author>caojunjia</author><pubDate>Sun, 03 Mar 2024 11:34:14 +0800</pubDate><description><![CDATA[数组：可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。比如现实中的车库：在java中，包含6个整形类型元素的数组，就相当于上图中连在一起的6个车位，从上图中可以看到：1. 数组中存放的元素其类型相同2. 数组的空间是连在一起的3. 每个空间有自己的编号，其实位置的编号为0，即数组的下标。那在程序中如何创建数组呢？]]></description><category></category></item></channel></rss>