- 博客(16)
- 问答 (1)
- 收藏
- 关注
原创 JAVA笔记:maven集成ssm项目所需Pom依赖及配置文件
个人记录用,如有错误欢迎指出 (一)父项目Pom依赖 在父项目Pom中设置dependencyManagement统一管理项目的版本信息 <dependencyManagement> <dependencies> <dependency> <groupId>javax.servlet</groupId>...
2019-11-29 17:48:47
601
原创 JAVA笔记:SSM项目中一些线程安全问题
SpringMVC中的控制层的线程安全? 1)控制层对象默认是单例设计 2)存在多线程共享数据集 3)共享数据集上的操作是非原子操作 满足以上三个条件时,SpringMVC就可能会出现线程不安全. FAQ? 1)SimpleDateFormat对象是一个线程安全对象吗?不是 2)SimpleDateFormat对象如何保证在SSM项目中是安全的. 2.1)每次使用都创建新的对象(...
2019-11-08 18:49:02
976
原创 BUG记录: org.apache.ibatis.exceptions.TooManyResultsException
今天在写程序时出现了这个异常:org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 8 然后自己的代码是这样写的 /** * 查找所有项目id及项目名 * @return 所有项目id及...
2019-11-07 21:22:56
387
原创 JAVA笔记:对反射能够操作private修饰属性的理解
Java提供private修饰属性时相当于给属性加了一把锁,避免人们直接访问其修饰的值 相应的,Java提供了两把钥匙来打开这把锁 静态:set/get方法 动态:反射 在set方法中,程序员可以编写代码对要设置的值进行限定,相应的在反射程序员也可以编写代码对要设置的值进行限定,在反射中操作private修饰的属性,需设置setAccess(true),其目的也是提示程序员正在操作的值...
2019-11-07 17:01:57
277
原创 JAVA笔记:多线程基础知识
进程与线程 进程: 进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。 线程: 线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程...
2019-08-05 12:49:37
363
原创 JAVA笔记:volatile与synchronized
volatile和synchronized 两个属性 1、原子性:一个操作不可以中途被CPU停止,要么不执行,要么执行完 2、可见性:当一个变量的值在本地内存修改后立即在主存进行修改 Volatile和Synchronized的比较 1、volatile是线程同步轻量级实现,性能好(在JDK1.6后进行主要包括为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁); 2、volatile只...
2019-07-31 17:45:10
229
原创 非本地跳转(C语言)
非本地跳转(C语言) 包含头文件: 函数:setjmp(), longjmp() setjmp 和 longjmp提供了一种类似于goto语句的机制,但它并不局限于一个函数的作用域之内。这些函数常用于深层嵌套的函数调用链。如果在某个底层的函数中检测到了一个错误,你可以立即返回顶层函数,不必向调用链的每个中间层函数返回一个错误标志。 函数原型 `int stjmp (jmp_buf
2018-01-23 19:41:23
411
原创 结构体作为函数参数
结构体作为函数参数传递 由于C语言参数传递方式是按值传递,虽然结构体作为函数参数传递能够产生正确的结果,但它的效率很低。编译器将参数拷贝一份,传递给函数。如果结构体越大,效率就越低。 好的做法是将结构体的指针传递给函数,指针固定大小4个字节,效率会快很多。如果不希望函数对结构变量进行修改,可以在函数中使用const关键字来避免修改。
2017-12-20 22:18:20
527
原创 开发简单爬虫
开发简单爬虫调度器 –> URL管理器 –> 下载器 –> 解析器 –> 应用URL管理器: 管理带抓取URL集合和已抓取URL集合 实现方式:内存,关系数据库,缓存数据库 使用内存进行存储,使用set()集合 网页下载器: 将互联网上URL对应的网页下载到本地的工具 网页下载器有:urllib2(官方基础模块) requests(第三方插件) 实现方法1: import u
2017-12-19 22:31:59
328
原创 顺序栈(C语言)
栈的实现(顺序栈,C语言)结构体声明:typedef struct { ElemType *base; // 栈底元素指针 ElemType *top; // 栈顶指针 int stacksize; // 栈容量 int cnt; // 栈中元素数量}SqStack; 其中栈底元素指针始终不变,栈顶指针指向栈顶元素的上方。 当base = to
2017-12-19 22:12:23
532
原创 关于字符串数组,字符串指针(C语言)
字符串数组,字符串指针的区别。 字符串数组:如 char buf[] = "abcd"; 首先在内存字符常量区分配一块内存空间放下”abcd\0”,然后在栈中分配一块连续的内存空间,将字符常量区的”abcd\0”复制到栈中。所以,字符串数组的头指针buf所指向的字符串首地址在栈中,故是可以进行读写操作的。 字符串指针:如 char * ptr = "a
2017-12-01 16:35:40
1188
原创 C语言变量内存分配
内存分区有四大区:stack(栈),heap(堆),全局区,代码区 stack(栈):储存局部变量和函数参数,储存在stack区中的变量声明的位置不同,作用域不同。由系统回收内存资源。 heap(堆):通过malloc分配堆内存空间,堆中的内存必须由程序员free释放,如果不释放会一直存在,可能会导致内存泄漏。 全局区:存放全局变量,static(静态)变量,在整个函数
2017-11-25 15:31:05
550
原创 链表(C语言)
链表(C语言)写在前面:我在实现链表时用了两个结构体,一个是结点类型,另一个是链表类型。如果不这样设置那么你在头指针或尾指针需要移动时函数参数就需要传入头、尾指针的指针地址(&head),而不是单纯的传入指针。而使用两个结构体就不需要这样做了。
2017-11-15 23:30:01
632
原创 线性表的实现(C语言)
线性表的实现(C语言)SqList1.储存结构定义:#define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2#define INITSIZE 100//线性表储存结构初始分配分量 #define ENLARGE 10 //线性表储存结构分配增量typed
2017-10-28 12:27:28
1772
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅