- 博客(70)
- 收藏
- 关注
原创 ThinkPHP5文档——路由
路由注册可以采用方法动态单个和批量注册,也可以直接定义路由定义文件的方式进行集中注册。'blog/:year/[:month]' => 'Blog/archive' , [ : month ] 变量用 [ ] 包含起来后就表示该变量是路由匹配的可选变量。可选参数只能放到路由规则的最后,如果在中间使用了可选参数的话,后面的变量都会变成可选参数。
2022-11-29 15:29:44 2094 2
原创 ThinkPHP5文档学习——配置
返回PHP数组//项目配置文件 return [ // 默认模块名 'default_module' => 'index' , // 默认控制器名 'default_controller' => 'Index' , // 默认操作名 'default_action' => 'index' , //更多配置参数 //... ];配置参数名不区分大小写(因为无论大小写定义都会转换成小写),新版的建议是使用小写定义配置参数的规范。
2022-11-29 09:28:14 2049
原创 ThinkPHP5文档学习笔记--(架构)
系统很多的组件都采用驱动式设计,从而可以更灵活的扩展,驱动类的位置默认是放入核心类库目录下面,也可以重新定义驱动类库的命名空间而改变驱动的文件位置。一个典型的应用是由多个模块组成的,这些模块通常都是应用目录下面的一个子目录,每个模块都有自己独立的配置文件、公共文件和类库文件。ThinkPHP5采用了PHP的命名空间进行类库文件的设计和规划,并且符合PSR-4的自动加载规范。模型类并不一定要访问数据库,而且在5.0的架构设计中,只有进行实际的数据库查询操作的时候,才会进行数据库的连接,是真正的。
2022-11-25 17:45:48 2461
原创 C语言 自定义类型和结构体
常规定义结构体先说明结构体类型,在定义结构体变量。struct 结构体名 //结构体类型名 {int i;float j;char k;} // 结构体变量的定义 struct student a , * b . a [ 3 ];结合typedef的定义使用自定义类型定义结构体变量 typedef struct Student {int id;} STU;只有一个结构变量的定义直接定义结构体变量 struct {int num;说明结构体类型的时候定义结构变量int num;
2022-09-09 20:52:44 516 1
原创 C语言之编译预处理
C语言中提供的预处理功能宏定义、文件包含和条件编译形式 : #define 宏名 替换文本 # define PI 3.14 说明 :在C语言程序中,`符号常量(PI) ` 的定义要使用 宏定义 预处理命令。宏名习惯用大写字母,但是也可以用小写。宏名不是C语句,行末不必加 分号;预处理命令不是C语句,行末不必加 分号;例如: # define k 2 + 3 //宏计算:先按宏展开,在计算 k / k 2 + 3 / 2 + 3 2 + 1 + 3 6 先乘除后加减3.14。
2022-09-08 19:50:24 774
原创 CAS算法
CAS算法实现 CAS (Compare And Swap):由硬件实现的。 CAS 可以将 read-modify-write 这类的操作转换为原子操作。 i++ 自增操作包括三个自操作: 从主内存读取 i 变量的值 对 i 的值加1 在把加1之后的值保存到主内存 CAS原理:在把数据更新到主内存的时候,再次读取主内存变量的值,如果现在变量的值与期望的值(操作起始时读取值)一样就更新。 使用CAS模拟实现计数器
2022-09-07 22:47:57 179
原创 C语言之指针
指针即地址;变量的指针即变量的地址;定义指针的形式一般为:基本型 *指针变量名;例如:int *p;指针说明符:说明后面的变量是指针变量/*说明:NULL表示空,其值为 0空指针定义不能引用q = p;return 0;}
2022-09-03 23:21:15 363
原创 C基本语法
C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。数字字母下划线开头字母下划线区分大小写的用户标识符预定义标识符关键字:32个,例如 int,double等关键字不能均为小写。
2022-08-20 13:54:05 445
原创 JavaSE面试题分享
学习目标回顾JavaSE学习内容1.Java中实现多态的机制是什么?Java中的多态靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法2.谈谈你对多态的理解?多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量到底会指向哪个类的实例对象,该引用
2022-05-24 15:20:04 207 2
原创 JavaSE面试题分享
学习目标回顾JavaSE学习内容1.String str = “i” 和String str = new String(“i”)一样吗?不一样,因为内存的分配方式不一样。 String str = "i"的方式JVM会将其分配到常量池中,而String str =new String("i")JVM会将其分配到堆内存中。2.Java 中操作字符串都有哪些类?它们之间有什么区别?操作字符串的类有:String、StringBuffer、StringBuilder。String 和 S
2022-05-04 18:46:12 244 2
原创 JAVASE面试题分享
学习目标回顾JavaSE学习内容1.用最有效率的方法计算2乘以8?2 << 32.什么是Java注释定义:用于解释说明程序的文字Java注释的分类单行注释:格式: // 注释文字多行注释:格式:/* 注释文字 */文档注释:格式:/** 注释文字 */Java注释的作用???在程序中,尤其是复杂的程序中,适当地加入注释可以增加程序的可读性,有利于程序的修改、调试和交流。``注释的内容在程序编译的时候会被忽视,不会产生目标代码,注释的部分不会对程序的执行结果产生任何
2022-05-02 16:11:26 533 1
原创 JavaSE面试题分享
学习目标回顾JavaSE学习内容1.float f=3.4;是否正确?不正确。3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F;。2.Java有没有goto?goto 是Java中的保留字,在目前版本的Java中没有使用。(根据James Gosling(Java之父)编写的《The Java Progra
2022-04-30 20:26:06 1268 2
原创 JavaSE常见面试题
学习目标:回复JavaSE学习内容:面向对象四大特性封装、继承、多态、抽象。Java语言有哪些特点简单易学(Java语言的语法与C语言和C++语言很接近)面向对象(封装,继承,多态)平台无关性(Java虚拟机实现平台无关性)支持网络编程并且很方便(Java语言诞生本身就是为简化网络编程设计的)支持多线程(多线程机制使应用程序在同一时间并行执行多项任)健壮性(Java语言的强类型机制、异常处理、垃圾的自动收集等)安全性3.什么是Java程序的主类?应用程序和小程序的主类
2022-04-29 10:18:51 269 4
原创 线程同步之Java提供同步方案
1.什么是线程同步线程同步:即当有一个线程在对内存进行操作时, 其他线程都不可以对这个内存地址进行操作, 直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,实现线程同步的方法有很多,临界区对象就是其中一种。2.线程同步简介2.1 线程同步的来源在一般情况下,创建一个线程是不能提高程序的执行效率的,所以要创建多个线程。 但是多个线程同时运行的时候可能调用线程函数, 在多个线程同时对同一个内存地址进行写入, 由于CPU时间调度上的问题...
2022-04-22 16:28:38 1362 20
原创 JVM 内存模型
目录1.JVM 内存模型是什么?1.1 什么是内存模型?2. JVM 概述3.JVM 体系结构4.内存管理5.碎片回收6. 图解JVM6.1 说明:😁😁😁😁😁7. 将JVM抽象表示:7.1 说明:1.JVM 内存模型是什么?JVM是【Java Virtual Machine(Java虚拟机)】的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,...
2022-04-17 23:13:42 4997 27
原创 线程安全的问题
1 .线程安全则主要体现在三个方面:原子性 可见性 有序性接下来就对这三个特性进一步说明:1.1 原子性原子:分子组成的最小单位。(不可分割) 原子操作不可分割的两层含义: 访问共享变量的原子操作是不能够交错的: 访问(读、写):某个共享变量的操作从其他线程来看。 该操作要么执行完毕。 要么尚未发生。 例如生活中的取款,两个人同时操作一张银行卡时,不可能两个人同时成功。 1.1.1 Java 实现原子性的两种方式:😆😆😆😆 第一种:使...
2022-04-14 20:03:52 5061 23
原创 多线程编程下的优势和存在的风险
什么是多线程????1. 多线程(multithreading):是指从软件或者硬件上实现多个线程并发执行的技术。 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。 具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。 在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理” 。2. 多线程编程下的优势...
2022-04-13 15:01:44 607 21
原创 JAVA线程的生命周期
1. 什么是线程的生命周期? 线程的生命周期即是线程的生老病死,即线程的各个阶段状态。🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐🧐在上一篇所有方法中,提到了一个方法getState()😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃😃2. 有关 getState() 方法详解在文档中是这样解释的:publicThread.StategetState() 返回此线程的状态。 该方法设计用于监视系统状态,不用于同步控制。 线程的状态 Thread.St...
2022-04-11 22:19:40 3861 20
原创 Java 中线程的常用方法
目录1. 构造方法2 .所有方法3. 常用方法和对应代码演示3.1 CurrentThread(): 这是一个 静态的方法---- statuc Thread3.2 Thread.getId() ----------- long3.3sleep(long millis) : - -------- static void实现计时器--使用sleep(1000)3.4 setName(String name) 和 get...
2022-04-07 00:07:02 720 6
原创 Java创建线程
既然说到线程,在这里就给大家普及一下线程。线程(Thread):是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一个线程指的是进程中一个单一顺序的控制流。🥂🥂🥂其实:进程在我们计算机中我们随时都在使用:按住 Ctrl + shift + esc这个就是一个进程,在计算机中,线程就是进程中的一个执行单元。那么,进程是什么呢?进程:简简单单,我们日常中使用的QQ就是一个进程,进程可以理解为就是一个软件,线程则就是这个软件中的一些功
2022-04-05 23:45:09 7673 5
原创 ----------------------------2
#include <stdio.h>struct time{ int hour; int minutes; int seconds;};struct time timeUpdate(struct time now);int main(void){ struct time testTime[5] = { {11,59,59},{12,0,0},{1,29,59},{23,59,59},{19,12,27} };
2022-04-05 21:02:15 1043
原创 ------------------------3
百看成仙第二篇-----指针篇#include <stdio.h>struct point{ int x; int y;};struct point* getStruct(struct point *p);vius output(struct point);void print(const struct point p)void main(){ struct point y = {0,0}; getStruct(y); output(y);
2022-04-05 00:07:31 196
原创 -----------------1
C语言之----百读成仙篇#include <stdio.h>#include <stdbool.h>struct date{ int mounth; int day; int year;};bool isLeap(struct date d);int main(int argc,char const * argv[]){ struct date today,tomorrow; printf("Enter today ' s date (m
2022-04-04 21:55:07 902
原创 初探二分算法
又来算法了~~~~😃😃😆😆😃😃😃😆😆😆👀👀😆🤔什么是二分算法?在计算机科学中,二分搜索(英语:binary search),也称折半搜索(英语:half-interval search)、对数搜索(英语:logarithmic search),是一种在有序数组中查找某一特定元素的搜索。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在.
2022-04-01 20:18:29 4404 6
原创 冒泡排序算法
🤔🤔🤔🤔🤔冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
2022-03-31 20:37:40 154 4
原创 C语言计算平均数
/** 如何编写一个程序计算用户输入的数字的平均数,当用户输入-1后开始计算,并输出所有大于平均数的数。*/#include <stdio.h>int main(){ int n; scanf("%d",&n); double sum = 0; int ctx = 0; int arr [100] = {0}; // 定义并且初始化数组 while(n != -1) { arr[ctx] = n; // 向数组中添加元素 ctx ++; su
2022-03-30 14:15:36 6893 1
原创 求最简分式
C语言求出最简分式使用辗转相除法,求出最大公约数,分子分母各除以最大公约数即可得到最简分式。其中包含变量的值传递思想/*用户输入一个分式,求出它的最简化形式,比如 18/12 要求输出 3/2*/#include <stdio.h>int main(){ int numerator,denominator; scanf("%d/%d",&numerator,) int a = numerator; int b = denominator; int t;
2022-03-29 16:34:58 1453
原创 C语言完成九九乘法表
While循环实现#include <stdio.h>int main(){ int n = 9; int i,j; i = 1; while(i <= n) { j = 1; // 这层结束 while(j <= i) { printf("%d*%d=%d",j,i,i*j) j++; } // 换行 printf("\n"); i++; } return 0;}/*分析程序:第一次 : i=1 j=1 j&
2022-03-28 12:01:53 1349 1
原创 C语言求水仙花数
水仙花数水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number)。水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。/*实现步骤: 首先用户得输入一个位数 根据用户输入的位数进行运算, 假设用户输入了一个3,则这个数为 3 位数,三位数 100 - 99
2022-03-27 12:15:10 1865
原创 C求最大公约数【辗转相除法】
C演示/* 求最大公约数:辗转相除法 欧几里得算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。 应用领域有数学和计算机两个方面。计算公式gcd(a,b) = gcd(b,a mod b)。 总的来说:辗转相除法就是对两个数: 被除数 % 除数 ---- 余数 除数 % 除数 假设有a b两个数: 如果b等于0,计算结束,a就是最大公约数 否则,计算a除以b的余数, 让a等于b, b等于那个余数; 回到第一步,一直到b等于0a b t6 18 618 6
2022-03-26 17:11:02 599 1
原创 C完成整数顺序输出
C演示/* 完成一个整数的顺序输出输出: 比如:输入 13548 输出: 1 3 5 4 8*//*对题目进行分析:假设:用户输入一个数 13548613548 / 10000 ----》 1每当进行一次运算,判断 10000 这个数是否大于 9,大于 9 则输出空格13548 % 10000 ----》 3548 // “% 10” 运算则是 得到它的最后一位数10000 / 10 ----> 1000 // "/ 10" 的作用是将最后一位取出循环到10000 最终转
2022-03-26 16:41:08 1413
原创 C语言求前n项和
C演示/* 假设要对一串数进行求和: 1/1 + 1/2 - 1/3 + 4/1 - .... - 1/n-1 + 1/n 要求用户输入 n ,程序计算到n项*/#include <stdio.h>int main(){ int num; printf("请您输入一个数:"); scanf("%d",&num); int i; double sum = 0; // 因为这串数字是有规则的,所以这里做一个标记。 double mark = 1.0; for
2022-03-25 15:48:46 2575 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人