linux中如何查看已用内存
free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
直接输入free命令,显示如下
free命令默认是显示单位kb,可以采用free -m和free -g命令查看,分别表示MB和GB
另外,free -h会自动选择以适合理解的容量单位显示
Mem:表示物理内存统计,如果机器剩余内存非常小,一般小于总内存的20%,则判断为系统物理内存不够
Swap: 表示硬盘上交换分区的使用情况,如剩余空间较小,需要留意当前系统内存使用情况及负载,当Swap的used值大于0时,则表示操作系统物理内存不够,已经开始使用硬盘内存了。
第1行数据11G表示物理内存总量;6.5G表示总计分配给缓存(包含buffers与cache)使用的数量,但其中可能部分缓存并未实际使用;
1.3G表示未被分配的内存;shared表示共享内存;4.0G表示系统分配但未被使用的buffers数量;4.7G表示系统分配但未被使用的available数量
10w条数据的插入(批量插入)
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class HomeWork02
{
//预处理--注入数据
public static void main(String[]args) throws Exception
{
//加载数据库
Class.forName("com.mysql.jdbc.Driver");
//获取连接对象
String url = "jdbc:mysql://localhost:3306/db1?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=UTF-8";
Connection conn = DriverManager.getConnection(url, "username", "password");
//连接操作数据库
String sql = "insert into homework VALUES (?,?,?) ";
PreparedStatement pst = conn.prepareStatement(sql);
for (int i = 1; i <= 100000 ; i++)
{
pst.setObject(1,i);
pst.setObject(2,i+"号");
pst.setObject(3,i*10+"¥");
pst.addBatch();
}
//操作完成,提交
pst.executeBatch();
//释放资源
pst.close();
conn.close();
}
}
springBoot和SpringMVC的区别(今天面试被问懵啦~)
两者联系:
spring在刚开始的时候使用工厂模式(DI)和代理模式(AOP)解耦应用组件,进而开发出适用于Web开发的SpringMVC,在实际开发过程当中会使用到很多样板代码,就开发出了懒人版的SpringBoot;
区别:
1、springMVC是Spring的一个模式,是一个Web框架,提供了一个轻度耦合的方式来开发Web应用;
2、SpringBoot是习惯优于配置,降低了项目搭建的难度;
3、springMVC需要使用到TomCat服务器,SpringBoot的话是内嵌了Tomcat服务器的;
Spring MVC是基于 Servlet 的一个 MVC 框架 主要解决 WEB 开发的问题
Spring MVC的功能
Spring MVC提供了一种轻度耦合的方式来开发web应用。
Spring MVC是Spring的一个模块,式一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。解决的问题领域是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。
Spring Boot的功能
Spring Boot实现了自动配置,降低了项目搭建的复杂度。
众所周知Spring框架需要进行大量的配置,Spring Boot引入自动配置的概念,让项目设置变得很容易。Spring Boot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。Spring Boot只是承载者,辅助你简化项目搭建过程的。如果承载的是WEB项目,使用Spring MVC作为MVC框架,那么工作流程和你上面描述的是完全一样的,因为这部分工作是Spring MVC做的而不是Spring Boot。对使用者来说,换用Spring Boot以后,项目初始化方法变了,配置文件变了,另外就是不需要单独安装Tomcat这类容器服务器了,maven打出jar包直接跑起来就是个网站,但你最核心的业务逻辑实现与业务流程实现没有任何变化。
用最简练的语言概括就是:
- Spring 是一个“引擎”;
- Spring MVC 是基于Spring的一个 MVC 框架 ;
- Spring Boot 是基于Spring4的条件注册的一套快速开发整合包。
MY SQL 获取本月第一天 获取下月的第一天
select curdate(); --获取当前日期
select last_day(curdate()); --获取当月最后一天。
select DATE_ADD(curdate(),interval -day(curdate())+1 day); --获取本月第一天
select date_add(curdate()-day(curdate())+1,interval 1 month); -- 获取下个月的第一天
select DATEDIFF(date_add(curdate()-day(curdate())+1,interval 1 month ),DATE_ADD(curdate(),interval -day(curdate())+1 day)) from dual; --获取当前月的天数
什么是反射?
反射就是动态加载对象,然后可以拿到这个对象的所有方法和属性,对于任何一个对象都能动态获取它的任何属性或者任意一个方法,这种动态调用对象的人以信息信息的功能就是 java的反射机制
如何使用java的反射?
1丶通过全限定类型名 : Class.ForName(“全限定类名”)
2丶类名.Class
3丶对象.GetClass()
反射的应用场景?
1丶通常用在框架的底层
2丶实现ORM,通过读取数据表,然后运用反射机制,创建对象及其属性
如何通过反射获取类的Private属性?
1丶在父类中填写该属性的Get丶Set方法,通过反射调用方法获取
2丶先获取对象,然后通过GetDeclaredField方法获取私有字段
通过SetAccessible让jvm不检查权限
通过Set方法设置对象具为具体的值
通过获取构造方法来创建对象?
1丶NewInstance()
2丶GetConstructor()
3丶区别newInstance犯法只能获取空参的构造
GetConstructor方法可以通过传入的参数类型或数量来获取
让方法执行?
Method.invoke(obj示例对象,obj可变参数)----------(是有返回值的)
List Set Map 结构图
list和set是实现了Collection接口的
List:
1丶可以允许重复的对象
2丶可以插入多个null元素
3丶是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序
4丶常用的实现类有ArrayList、LinkedList 和 Vector。ArrayList 最为流行,它提供了使用索引的随意访问,而 LinkedList 则对于经常需要从 List 中添加或删除元素的场合更为合适。
Set:
1丶不允许重复对象
2丶无序容器,你无法保证每个元素的存储顺序,TreeSet通过Comparator或者Comparable维护了一个排序顺序
3丶只允许一个null元素
4丶Set 接口最流行的几个实现类是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基于 HashMap 实现的 HashSet;TreeSet 还实现了 SortedSet 接口,因此 TreeSet 是一个根据其 compare() 和 compareTo() 的定义进行排序的有序容器。
Map不是collection的子接口或者实现类Map是一个接口
Map的每个entry 都持有两个对象,也就是一个键一个值,Map可能会持有相同的值对象,但键对象必须是唯一的
TreeMap 也通过 Comparator 或者 Comparable 维护了一个排序顺序。
Map 里你可以拥有随意个 null 值但最多只能有一个 null 键。
Map 接口最流行的几个实现类是 HashMap、LinkedHashMap、Hashtable 和 TreeMap。(HashMap、TreeMap最常用)
什么场景下使用list,set,map呢?
- list:有序访问、索引访问
- set(HashSet、LinkedHashSet 或者 TreeSet):去重
map:键值存储