自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 c++中用opengl的gl函数在三维空间中绘制圆形和画球体

画圆形的原理如下图,画一个圆形就相当于切蛋糕一样,将一个圆形切成很多个扇形,而扇形可以用三角形类似表示,所以我们可以将绘制圆形转化为绘制许多个三角形。画球体的原理:数学中的简单原理,一个球体相当于一个圆形绕y轴快速旋转,根据这个原理绘制球体相当于上面的那个圆绕y轴旋转360度,绕y轴旋转,x和z轴坐标变化,y不变

2022-11-02 15:56:32 3189

原创 c++用mfc应用程序调用创建glut窗口的dll,如何关闭glut窗口而不终止应用程序

**c++用mfc应用程序调用使用创建glut窗口的dll,如何关闭glut窗口而不终止应用程序****简述遇到的问题**:我创建了一个mfc应用程序,并调用自己创建的mfc的dll,mfc的dll里面是用glutCreateWindow函数创建的glut窗口,但是当我开启mfc应用程序时,鼠标点击glut窗口右上角的关闭时,glut窗口和mfc应用程序全部关掉了。**想实现的效果**:当我关闭glut窗口后,mfc应用程序不会一起关闭,而是继续存在。

2022-09-24 15:26:23 1232

原创 path与classpath的作用和配置说明?

path:作用:用来搜索可执行的java文件路径。说明:如果不在path中设置jdk的路径那么必须写完整的路径,比如 C:\Program Files\Java\jdk1.6.0_10\bin\javac TheClass.java,java各种操作命令是在其安装路径的bin目录下,所以在path中设置了jdk的安装目录后执行java文件就会自动去path设置的路径中找。配置:将JAVA_HOME/bin配上去classpath:作用:告诉编译器该去哪里找到这个类。说明:比如引入一个类时(imp

2021-06-29 09:39:59 370

原创 Linux高级命令小总结,玩转Linux大世界

Linux高级命令小总结1、查找:根据文件名或用户查找文件或目录:find / -name data.txt(文件名) find / -user lisi(用户)2、查找包含关键字的文件内容:grep 文件内容 data.txt cat data.txt | grep pythongrep、sed、awk文件操作的区别:grep(过滤) sed(文件编辑(过滤)) awk(文本分析(过滤))awk可以选取列,而grep和sed是无法选取列的3、查找文件中包含root关键

2021-06-25 21:40:27 158

原创 Linux:一套神奇的操作系统

Linux小总结:帮助命令:man和help递归操作(需要区分):创建多级目录mkdir -p kawaii/haha/good递归复制整个文件夹cp -r kawaii/hello/ ./递归删除目录中所有内容和此目录rm -rf liangshan/查看文件的内容三种方法:1、查看文件内容并显示行号cat -n songliang.txt2、采用more查看文件(space向下翻一页,Enter向下翻一行,=输出当前行的行号,q离开)more smartd.conf

2021-06-24 21:28:43 167

原创 事件委托、动画、插件

1. 动画1.1 显示/隐藏Hide() : 隐藏,无参是直接隐藏,第一个参数是毫秒数show() : 显示,无参是直接显示出来,第一个参数是毫秒数toggle() : 切换,显示就变隐藏,隐藏就变显示,第一个参数是毫秒数第二个参数是回调函数,比如,2秒内显示完成,显示完成后把大小更改因为动画效果本质就是定时器,而定时器实质会开启一个线程,和定时器之外的代码异步执行,假如我们需要在动画完成之后,要做一些其他操作,就需要用到第二个参数新事件 - toggle,需要引入1.8.3的jQuery包

2021-03-11 01:12:20 182 1

原创 BOM、定时器、jQuery基础知识学习笔记

1、BOM概述BOM(Browser Object Model) 是指浏览器对象模型,浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。BOM由多个对象组成,其中代表浏览器窗口的Window对象是BOM的顶层对象,其他对象都是该对象的子对象。我们在浏览器中的一些操作都可以使用BOM的方式进行编程处理,比如:刷新浏览器、后退、前进、在浏览器中输入URL等BOM的顶级对象window是浏览器的顶级对象,当调用window下的属性和方法时,可以省略window注意:window下一个

2021-03-09 22:44:16 140

原创 javascript之事件、属性操作、节点操作

1. 事件1.1 阻止a标签跳转1.2 鼠标事件1.2.1 移入移出onmouseover鼠标移入事件:在鼠标指针移动到元素上时触发。onmouseout 鼠标移出事件:在鼠标指针移出元素后触发onmouseenter鼠标进入事件:在鼠标指针进入到元素上时触发。onmouseleave 鼠标离开事件:在鼠标指针离开元素后触发1.2.2 获得焦点/失去焦点onfocus获取焦点事件:在鼠标光标获取输入框焦点时触发onblur失去焦点事件:在鼠标光标失去焦点时触发。1.2.3 单击/

2021-03-09 00:30:39 117

原创 Javascript学习笔记之DOM操作、事件

DOM操作和事件1.1 DOM概述事件基础文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口。在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型就称为DOM。DOM又称为文档树模型文档:一个网页可以称为文档节点:网页中的所有内容都是节点(标签、属性、文本、注释等)元素:网页中的标签属性:标签(元素)的属性1.2获取元素对象的方式想要操作DOM,核心问题,你得先找到它,而获取对象的方式

2021-03-07 22:20:30 181

原创 Javascript学习笔记之数组、函数、对象

一、数组是什么JS的数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。JS的数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整。二、数组的声明和遍历数组的声明:数组的遍历:更改数组的值:向尾部追加数据:注意删除数组中最后一个元素求数组中所有元素的和求数组中的平均值求数组中最大和最小的元素,并求其在数组中的位置以指定字符分割字符数组,并返回新的字符串将数组中不为0的数添加到新的数组中

2021-03-04 22:36:46 209 1

原创 Javascript学习笔记之变量、数据类型、操作符、流程控制

Javascript代码的放置方式:1.在html的文件中,script的标签中写js代码,script标签最好是写在html标签后面2.js代码可以在html的标签中写,例如onclick3.在js文件中可以写js代码,但是需要在html页面中引入script的标签中的src=“js的路径”4.还可以在控制台直接书写js代码总结1、在一对script的标签中有错误的js代码,那么该错误的代码后面的js代码不会执行2、如果第一对的script标签中有错误,不会影响后面的script标签中

2021-03-03 22:20:09 153 1

原创 HTML、css学习笔记之盒子模型、浮动、定位

盒子模型、浮动、定位盒子模型1.1 概述其实,CSS就三个大模块:盒子模型、浮动、定位,其余的都是细节。要求这三部分,无论如何也要学的非常精通。所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器。每个矩形都由元素的内容、内边距(padding)、边框(border)和外边距(margin)组成。这里略过老旧的ie盒子模型(IE6以下),对不起,我都没见过IE5的浏览器。 首先,我们来看一张图,来体会下什么是盒子模型。所有的文档元素(标签)都会生成一个矩形框,

2021-03-01 22:57:06 488

原创 HTML学习笔记之CSS

CSS1.1 外观属性1.1.1 Colorcolor属性用于定义文本的颜色,其取值方式有如下3种:(1)预定义的颜色值,如red,green,blue等。(2)十六进制,如#FF0000,#FF6600,#29D794等。实际工作中,十六进制是最常用的定义颜色的方式。(3)RGB代码,如红色可以表示为rgb(255,0,0)或rgb(100%,0%,0%)。需要注意的是,如果使用RGB代码的百分比颜色值,取值为0时也不能省略百分号,必须写为0%。1.1.2 行高line-height属

2021-02-28 13:18:36 195

原创 HTML之表格、表单以及CSS基础

一、表格1、概述表格就可以看做数据库表,多少行多少列,列名 等主要用于展示数据行用<tr><tr/>标签表示,列就是单元格形式。注意:1.table用于定义一个表格。2.tr 用于定义表格中的一行,必须嵌套在 table标签中,在 table中包含几对 tr,就有几行表格。3.th /td:用于定义表格中的单元格,必须嵌套在<tr><tr/>标签中,一对 行中包含几对<td><td/>,就表示该行中有多少列(或多少个单元

2021-02-25 20:16:09 620 1

原创 HTML学习笔记之标签和列表

一、HTML概述HTML(英文Hyper Text Markup Language的缩写)中文译为“超文本标签语言”,是用来描述网页的一种语言。所谓超文本,因为它可以加入图片、声音、动画、多媒体等内容,不仅如此,它还可以从一个文件跳转到另一个文件,与世界各地主机的文件连接。HTML指的是超文本标记语言 (Hyper Text Markup Language)标记语言是一套标记标签 (markup tag)总结: HTML 作用就是用标记标签来描述网页,把网页内容在浏览器中展示出来。二、HTML的大

2021-02-24 21:02:34 233

原创 java学习笔记之事务,properties,连接池

Day30 JDBC事务机制1.1 概述数据库特有的术语,单个逻辑工作单元执行的一系列操作,同步发生数据更新时,防止数据的不一致1.2 应用场景设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作:· 更新客户所购商品的库存信息· 保存客户付款信息–可能包括与银行系统的交互· 生成订单并且保存到数据库中· 更新用户相关信息,例如购物数量等等正常的情况下,这些操作将顺利进行,最终交易成功,与交易相关的所有数据库信息也成功地更新。但是,如果在这一系列过程中任何一个环节出了差错,例如

2021-02-23 23:53:46 100

原创 java SE部分以及数据库学习笔记

Day01类名命名:每个单词首字母大写main方法是程序的入口一个java源文件中,可以出现多个class定义,比如有5个class,那么编译之后,就会生成5个class文件,有多少class定义,就会生成多少个class文件public : 公共的,并且一个java文件中,只能有一个public类,且public的类的类名,必须和文件名一致class :类,定义类的关键字HelloWorld : 类名,只能是: 大小写字母,美元符号$,下划线_,数字,且数字不能开头,不能使用关键字和保留字,而

2021-02-20 14:57:14 724

原创 mysql与数据库学习笔记

1、更改表名格式:alter table 表名 rename 新表名;如 alter table teacher rename t_teacher;2、更改字段名格式: alter table 表名 change 列名 新列名 数据类型;更改表的列名 和 数据类型,当然数据类型可以不改,但是必须得写,如 alter table t_teacher change name teacher_name varchar(20);3、添加字段格式:alter table 表名add 列名类型;如 a

2021-02-04 23:55:32 132

原创 MySQL基本使用与数据库的语言

MySQL中是以数据库做区分,但是用户可以操作数据库,权限最大的用户是root,在安装MySQL的时候我们已经设置了root的密码但是真正开发中,不会让我们使用root用户,权限太大,会为我们单独创建用户,这个用户只能操作某个数据库1、创建用户的格式:create user ‘用户名’@‘端口号’ identified by ‘密码’;需要切换到mysql数据库下,操作user表create USER ‘tledu’@‘localhost’ identified by ‘tledu’;2、授权用户

2021-02-03 21:38:24 174

原创 java学习笔记之Lambda、构造器、函数式接口

1. Lambda1.1 概述lambda表达式 是一种没有名字的函数,也可以称为闭包,是java8的新特性本质就是一个匿名内部类,还有叫箭头函数的1.2 为什么使用LambdaLambda 是一个匿名函数,我们可以把Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。//lambda表达式,是一种没有名字的函数,也可以称为闭包,是java8的新特性//本质是一

2021-02-03 01:03:49 219

原创 java学习笔记之死锁、线程通信

多线程守护线程守护线程 又叫兜底线程每个程序运行当中,都会默认开启一个守护线程,用于监听我们正常的程序简单来说,就是没有任何一个线程的时候,JVM就需要退出了,这个时候守护线程也会退出,主要完成垃圾回收等功能但是 我们可以使用Thread.setDameon() 方法 把某个线程设置为守护线程但是必须在启动 start之前,否则报错下面是如何使用:public class Thread01daemon { public static void main(Strin

2021-01-31 21:48:32 102

原创 day22java学习笔记之线程与生命周期

线程优先级生命周期睡眠线程合并YieldStop线程同步线程创建线程对象的两种方式:1、Processer02继承Thread类,并覆写run()方法创建线程对象,调用子类构造方法创建对象父类引用指向子类对象,多态线程类 对象=new 线程类子类的构造方法Thread thread=new Processer02();2、Processor07实现Runnale接口并覆写run()方法创建线程对象用Thread类的有参构造方法,传入实现Runnable接口类的对象Threa

2021-01-28 23:28:08 72

原创 java学习笔记之数据流、对象流、File

1. IO1.1 数据流1.1.1 概述为了方便地操作Java语言的基本数据类型和String的数据,可以使用数据流。数据流有两个类:(用于读取和写出基本数据类型、String类的数据)DataOutputStream按照一定的格式输出,再通过DataInputStream以一定格式读入。由于可以得到java的各种基本类型甚至字符串,这样对得到的数据便可以方便地处理。这在通过协议传输的信息的网络上是非常适用的。DataInputStream 和 DataOutputStream分别“套

2021-01-28 00:31:19 242

原创 java学习笔记之IO

IO1.1 概述流是一组有顺序的,有起点有重点的字节集合,是对数据传输的总称或抽象简单来说 就是设备之间的数据传递称为流流的本质 就是数据的传输,根据不同的数据传输特性,抽象出各种类,方便我们直接操作数据流中的操作对象是指内存中,当前操作的程序而言 输入 : 指往内存中导入数据 输出 : 指从内存中写出数据I : input 输入O : output 输出1.2 分类按处理数据类型的不同,分为字节流和字符流按数据流向的不同,分为输入流和输出流。(入和出是相对

2021-01-26 23:33:56 135

原创 day18比较器、Map、散列

Day17-集合Collection1.1 排序1.1.1 Comparable比较器有两种 : 1 元素自身比较器, 2 比较器类思考 : 为什么字符串,Integer,Date可以排序? 因为都实现了 implements Comparable 因为使用treeSet在进行数据添加的时候,会自动调用该对象的compareTo()方法和集合内元素进行比较如果我们想要存储自定义类型怎么办? 需要实现该接口才行添加的时候 会自动调用该对象的compareTo方法,

2021-01-25 01:16:31 61

原创 java学习笔记day17集合概述、List、Set

1. Collection1.1 概述通过继承体系发现,集合中两大分类List和Set, 并且 两个都继承了Collection,那也就意味着Collection中的方法是List和Set都有的。Collection 集合只能保存引用数据类型,不能保存基本数据类型因为 底层就是 Object[] 数组,既然是Object 所以 即可以说只能保存Object单一元素,也可以说可以保存任何元素,因为Object是祖类,所有类型都会发生向上转型(多态)基本类型真的不能存吗? 真的,因为

2021-01-22 22:59:33 120

原创 java学习笔记day16常用API和异常机制

1.SystemSystem类提供的public static long currentTimeMillis()用来返回当前时 间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。此方法适于计算时间差。System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。 该类位于java.lang包。由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实 例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便 的进行调用。成员变量System类内部包

2021-01-21 23:29:41 96

原创 java学习笔记day15 常用API

Stringjava.lang.String:字符串类,并且该类加final修饰String底层就是char数组,private final char value[];所以字符串很多特性是数组的特性字符串的特性:1 字符串一旦创建就不能更改2 为了提升字符串访问效率,java提出了字符串常量池,相当于是一个缓冲区3在程序的执行过程中,如果程序要用到某个字符串,如"abc",虚拟机会去常量池中寻找,如果找到,则指向该字符串,如果没找到,在常量池中新建字符串对象,并指向它以下是关于String应用

2021-01-20 22:50:52 70

原创 java学习笔记day14 内部类和设计模式

1. 内部类1.1 概述当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内 部的完整的结构又只为外部事物提供服务,那么整个内部的完整结构最好使 用内部类在Java中,允许一个类的定义位于另一个类的内部,前者称为内部类,后者 称为外部类。Inner class一般用在定义它的类或语句块之内,在外部引用它时必须给出完 整的名称1.2 分类Static成员内部类非static成员内部类局部内部类匿名内部类1.3 成员内部类变量 : 成员变量 : 成员内部类

2021-01-19 22:43:56 134

原创 java学习笔记之Object、类关系、内部类、设计模式

ObjectObject是java中提供的一个根类(祖宗)所有类都直接或者间接的继承了Object如果一个类没有显示继承一个父类的话,那么该类默认继承Object既然Object是所有类的祖类,也就意味着 Object中的方法是所有类都有的功能Object xxx = new xxxx() ; 是可以发生多态的因为多态的原因,如果一个方法需要传递的数据,我们不能确定数据的类型的时候,可以写ObjectEquals关于Object中的equals方法public boolean eq

2021-01-18 21:52:32 83

原创 day12 多态、抽象类、接口

多态一、什么是多态:父类引用指向子类对象(父类型声明的引用类型变量可以找到子类的对象,也就是子类对象的地址给到了父类引用类型的变量)多态又叫向上转型二、多态是发生在赋值的时候,多态发生的几种形式:1、直接多态(直接声明的多态) 父类 变量=new 子类();2、形参和实参多态 方法参数定义时,使用父类定义,调用方法时,传递子类对象3、返回值多态 返回值类型定义为父类,返回数据的时候返回子类对象三、多态的优缺点:缺点:丢失子类特有的属性,无法调用子类特有的属性,特

2021-01-17 11:34:45 152

原创 day11 继承、super、final、覆写

继承1.1 是什么java 中只支持单继承,一个类只能有一个父类什么是继承 : 提高代码的复用性,父类的功能,子类可以直接使用,使子类功能更加强大 在java中 使用extends 关键字表示 语法 : public class 类名 extends 父类名{ 类体 }目的 : 提高代码重用性一个类如果没有显示继承另外一个类的话,那么该类默认继承 Object java.lang.Object 是java中的祖类(祖宗) 也就意味着 Objec.

2021-01-15 00:27:41 86

原创 day10封装、static、this、包机制

1. 面向对象1.1 传值和传引用// 基本数据类型 保存值的大小 , 引用数据类型保存内存地址// 传值 基本类型传递// 局部变量 属于栈帧私有化 栈帧独享1.2 区分成员和构造构造方法 : [权限修饰符] 类名(参数) {方法体}作用 : 创建对象,初始化成员属性方法声明 : [修饰符列表] 返回值类型 方法名(参数) {方法体}方法名符合命名规则即可 : 字母,下划线,美元符号,数字,不能数字开头,不能使用关键字和保留字,建议望文知义, 驼峰命名法

2021-01-13 22:58:12 82

原创 day09类与对象

1. 面向对象1.1 概述面向过程 : 侧重分步骤比如做菜1 买菜,买各种食材,买各种调料2 开火,烧油3 翻炒4 出锅…面向对象 : 侧重分类/模块比如做菜1 完成做菜,涉及到的事物有 : 厨师,食材,工具2 找个厨师,交给他3 厨师.买食材4 厨师.使用工具做菜1.2 构造方法编译器功能 : 能把我们代码编译成class文件,并且还会检查代码的语法,也会帮助我们补全不规范的代码比如调用当前类中的静态变量的时候,可以省略类名,但是编译器会帮我们加上同时如果我们类中

2021-01-12 21:41:44 39

原创 day08排序、二分法算法

1. 排序就是让元素按照一个大小规则进行排序存储1,3,2,5,7,41,2,3,4,5,77,5,4,3,2,1比如 我们存储了班级内所有学生考试成绩Double [] scores = {xxx,xxx,xxx,xxx,xxx,xxx};想要查看前三名怎么办?降序排序,取前三个即可1.1 冒泡排序冒泡排序 : 1 比较相邻的两个元素,如果第一个比第二大,就交换位置 2 对每一对相邻的元素做同样的工作,从开始一对到最后一对,当一轮比较完之后,最后的元素,一定是最大的(最小

2021-01-11 23:01:41 85

原创 day06 数组

day06数组数组 是引用数据类型 之前我们学习的变量,都只能存储单个元素,想要存储多个元素,就需要使用数组数组 是一个源自底层的数据结构,并且几乎在任何语言中,都是最基础的数据结构数组 又称为 索引数组(index)1.1 数据结构数据结构 : 就是计算机对数据存储的形式,和数据操作的形式 精心选择的数据结构可以带来更高的运行或者存储效率数据操作 增删改查1.2 数组概述和特性 并且 数组中元素的类型必须一致,意味着空间大小一

2021-01-08 17:12:57 111

原创 day05递归

递归定义 : 在方法体中 调用当前方法基本思想 : 以此类推是递归的基本思想 也是循环的基本思想 所以循环和迭代是等价的(迭代就是循环) 初始值,终止条件,步长 循环是重复执行循环体,而递归是重复执行方法体应用场景 一般树状结构的都可以使用递归查询 比如文件目录,因为不清楚到底有多少子目录,所以没办法使用for循环嵌套常见问题 : 累加加和 阶乘 斐波那契数列 汉诺塔 文件目录操作递归应用—

2021-01-04 20:21:54 59

原创 day04方法、递归和内存分析

一、 方法1.1 概述和作用一堆代码的集合,可重复使用1)使程序变得更简短更清晰2)有利于程序维护3)提高程序开发效率4)提高代码重用性方法目的 : 代码重用 相同的操作,不用重复写多遍代码方法就是有名字的代码块 : 一个大括号{} 就是一个代码块/语句块/代码段java 中只有方法, c 中只有函数, C++就不一样了,写在类中,叫方法,写在类外叫函数或者说 面向对象语言中 只有方法,面向过程中只有函数函数 是可以直接调用的,不需要二次引用1.2 方法

2021-01-03 20:20:16 107

原创 day03操作符、流程控制

运算符1.1 赋值运算符=赋值运算符 = : 把右边的赋值给左边,如果右边是个运算,需要把运算结果赋值给左边 += : 左边和右边相加,结果赋值给左边 -= : 左边 减去 右边 结果赋值给左边 *= ..... /= ..... %= .....i = i + 10;i += 10; 虽然两个式子是等价的,但是还不一样, i++ 和 += 这些写法,不需要强制转换,当然精度还是会丢失,这种写法会自动帮我们强制转换.

2021-01-02 21:08:16 91 1

原创 day02变量流程控制

1. 数据类型1.1 本质就是规定占用内存空间的大小,用位和字节表示1.2 分类数据类型 :基本数据类型数值型整数型ByteShortIntlong浮点型Floatdouble字符型Char布尔型Boolean引用数据类型类数组接口1.3 进制Java中没有办法直接表示二进制 // 十进制表示法 int i_1 = 10; // 八进制表示法 int i_2 = 012; // 八进制 每位最多到7 // int i_3 = 019; // 十

2021-01-01 17:42:50 81

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除