- 博客(18)
- 收藏
- 关注
原创 栈和堆的区别
1.程序内存布局场景下,堆与栈表示的是两种内存管理方式:管理方式不同:栈是由操作系统自动分配释放,堆的申请和释放是由程序员手动控制空间大小不同:每个进程拥有的栈的空间大小远远小于堆的空间生长方向不同:栈的成长方向向下,从高到低,堆的生长方向向上,从低到高分配方式不同:栈有静态分配和动态分配两种,静态分配是由操作系统完成的,比如局部变量的分配,动态分配是由allca函数进行分配,但这两种分...
2019-03-22 09:32:58
408
原创 数据库性能
1.建立合理的索引;2.优化SQL语句;3.优化表结构,能用小字段类型就用小字段类型,如能用short就不用int,能用数据类型就不用字符串类型;4.拆分表,横向拆分不更改表结构,重复多建立几张表,纵向拆分影响表结构,通过索引连接多个表;5.优化硬件。...
2019-03-21 09:29:57
479
原创 lock和synchronized的区别
1)synchronized 在成功完成功能或者抛出异常时,虚拟机会自动释放线程占有的锁;而Lock对象在发生异常时,如果没有主动调用unLock()方法去释放锁,则锁对象会一直持有,因此使用Lock时需要在finally块中释放锁;2)lock接口锁可以通过多种方法来尝试获取锁包括立即返回是否成功的tryLock(),以及一直尝试获取的lock()方法和尝试等待指定时间长度获取的方法,相对灵活...
2019-03-20 14:58:52
1081
原创 死锁相关
死锁:多进程运行过程中,因为对资源争夺而造成的一种僵局。必要条件:互斥,请求和保持,不剥夺,环路等待预防和避免:1.预防:去除四个必要条件中的任意一个 2.避免:让系统处于安全状态即系统可以按照某种顺序为每个进程分配所需的资源,直到满足每个进程对资源的最大需求检测和解除:1.解除:剥夺资源,撤销进程 2.检测...
2019-03-20 11:35:09
152
原创 与(&)、非(~)、或(|)、异或(^)
与(&)0&0=0 0&1=0 1&0=0 1&1=1 (都为1时&操作为1,电路都通才通)或(|)0|0=0 1|0=1 0|1=1 1|1=1 (电路通一条就通)非(~)取反,0变1,1变0异或(^)0^0=00^1=11^0=11^1=1 同为真 异为假...
2019-03-16 15:56:32
490
原创 java访问数据库步骤
第一步:加载JDBC驱动类第二部:通过驱动管理器获得与数据库的连接对象(该对象为与数据库相通的管道)第三步:通过Connection对象获取封装了sql的PreparedStatement对象(封装了已经预编译的sql语句,效率高)第四步:执行sql语句第五步:返回结果集并对封装结果集第六步:关闭方法...
2019-03-15 20:30:48
2632
原创 将GB2312编码的字符串转换为ISO-8859-1编码的字符串
例如:String s1 = “你好”;String s2 = new String(s1.getBytes(“GB2312”), “ISO-8859-1”);
2019-03-15 20:20:36
1441
原创 数据库常见的三种join方式
数据库常见的三种join方式:inner join、left join 、 right join两个表:部门,组织。部门表有一个"组织编号"的外键,指向"组织"表中的主键"编号"。1.inner join(内联接,默认方式)格式:select * from 部门inner join 组织 on 部门.外键=组织.主键目的:将两个表中所有符条件的记录选出where子句:select * ...
2019-03-15 14:42:02
4471
原创 抽象类和接口的区别
抽象类:1.抽象类可以定义构造器,接口不能定义构造器;2.一个类只能继承一个抽象类,但是可以实现多个接口;3.抽象类可以有抽象方法和具体方法,但是接口只能有抽象方法4.抽象类中可以包含静态方法,接口中不能包含静态方法;5.抽象类可以声明成员变量,接口中定义的成员变量实际上是成员常量;6.抽象类中的成员可以使四种访问类型,接口中的成员必须是public...
2019-03-13 16:58:36
163
原创 MyBatis的工作原理
MyBatis的工作原理(1)MyBatis根据配置文件中的数据库连接,数据源,事务管理等环境信息创建SQLSessionFactory对象(2)通过SQLSessionFactory对象打开SQLSession对象,SQLSession对象内部封装了JDBC的Connection,并提供了CRUD的操作方法 【相当于JDBC的获取连接】(3)Executor对象负责执行CRUD的操作方...
2019-03-13 09:29:58
438
原创 多线程的优缺点
多线程的优缺点优点—多个线程轮流使用CPU,充分利用了CPU资源的利用率缺点1—增加了CPU的负担,OS需要需要额外的CPU开销来处理线程状态的切换等管理操作缺点2—多个线程对同一个数据同时进行操作时,可能出现线程安全问题,导致数据发生错误缺点3—多个线程操作不同的数据时,可能因为不正确的访问顺序而导致死锁现象的发生...
2019-03-11 19:43:39
2261
原创 MVC执行流程
MVC三层结构的执行流程(1)视图层(View)—使用JSP显示输入界面,提交输入数据(表单或超链接) + 接收输出结果,显示输出数据(提取属性范围内的单个对象或对象集合);(2)控制层(Controller)—使用Servlet接收输入数据,并调用service层的业务逻辑方法;(3)业务逻辑层(Service)—负责业务逻辑处理,接收上层传递的数据,并调用dao层的数据访问方法;(4)...
2019-03-08 08:58:01
2881
原创 请求转发和重定向的区别
服务器请求转发:request.getRequestDispatcher(“xxx.jsp”).forward(request,response);1.客户端和服务器之间进行一次请求,地址栏不会改变,将该请求在服务器内部转发;2.表单提交的数据可以传递到转发页面,但如果想要继续传递到其它页面,则需要再次执行转发语句;3.从数据库查询出来的数据非表单提交的数据,只能通过URL重写的方法提交,...
2019-03-07 09:45:09
273
原创 Statement接口和PreparedStatement接口的区别
Statement接口在创建语句对象时,不带参数,进行查询更新操作时,再传入完整的SQL 语句。而PreparedStatement接口创建预处理语句对象时,传入带?的SQL语句,进行查询更新操作时,不带参数。PreparedStatement接口代码可读性高,无需拼接SQL语句,语句和代码分离。PreparedStatement接口执行效率高,它预编译和缓存了结构相同的SQL语句,想Str...
2019-03-06 10:41:48
1472
原创 JDBC程序的开发步骤
获取完整的数据库驱动类名用drivermanger方法获得数据库连接对象调用连接对象的工厂方法创建语句对象编写完整的SQL 语句将语句对象的方法传入SQL,并返回影响的MYSQL数据库中影响的行数关闭方法例如使用Statement接口完成数据更新操作//步骤1---通过反射实例化数据库驱动类//Class.forName("完整的数据库驱动类名"); Class.forNa...
2019-03-06 10:16:14
743
原创 get和post请求的区别
get和post请求的区别1.GET请求:请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接,并且会将请求的数据显示在请求头上,不安全。在请求的数据容量大小有要求(对URL的长度有限制),Method默认方法,超链接和浏览器直接输入网址访问均为get请求。2.POST请求:将请求的数据写在请求体中,比get请求更安全。对URL的长度无限制,使用post请求只能通过...
2019-03-06 09:49:22
315
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人