- 博客(11)
- 收藏
- 关注
原创 Java对象创建一定是在堆上分配吗?
对于栈上分配我们要求对象是内存占用小的 且不逃逸的 如果该实例不被外部方法调用 或 被该方法返回的话 则我们说该对象是不逃逸的。我们假设一个方法被频繁的调用,而这个方法又会创建出大量的对象,这些对象都在堆上创建这样就会引发频繁的Gc。JVM不会创建该对象。将该对象成员变量分解若干个被这个方法使用的成员变量所代替,这些代替的成员变量在栈帧或寄存器上分配空间。栈上分配的好处就是当方法销毁时对象一同销毁 就不需要gc 从而解决该问题。换句话说,我们可以理解为:把对象拆分成若干小块分开存储。
2022-12-14 16:38:21 338
原创 JVM学习笔记(1)内存管理
字节码解释器工作时就是通过改变这个计数器 的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载 的类型信息、常量、静态变量、即时编译器编译后的代码缓存等数据。每一个方法被调用直至执行完毕的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。Java虚拟机栈(Java Virtual Machine Stack)也是线程私有的,它的生命周期 与线程相同。
2022-12-14 15:41:55 106
原创 Sql优化 常见优化方式!!!!
在使用insert时尽量使用1.批量插入 2.手动控制事务 3.主键顺序插入1.主键长度尽量短 2.顺序插入(不顺序插入有可能产生页分裂) 3.Id尽量使用自增主键 不适用uuidupdate 在执行时 where条件使用的是id主键(索引) 使用的是行锁update 在执行时 where条件使用的是字段时 使用的是表锁在使用排序时 如果索引条件是俩个字段 尽量建立联合索引 并且 联合索引要注意排序(升降序)尽量多的命中索引using index 直接通过索引返回数据 性能高using filesort 需
2022-11-17 15:49:08 266
原创 解决No instances available for XXX
解决No instances available for XXX 已经注册到Eureka但服务无法使用
2022-10-02 17:20:38 10312 1
原创 瑞吉外卖 day3
当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。ThreadLocal为每个线程提供单独一份存储空间,具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问。注意就是客户端发送的每次http请求,对应的在服务端都会分配一个新的线程来处理已下涉及到的类中的方法都属于一个线程。并通过抛出一个自定义的异常并通过构造器设置其异常信息。将id取出来在设置公共字段。...
2022-07-24 22:52:13 170
原创 瑞吉外卖 day2
添加一个异常捕获器@ExceptionHandler(SQLIntegrityConstraintViolationException.class)用来捕获SQLIntegrityConstraintViolationException因为这种异常中可能含有不是主键异常的情况所以通过异常信息中含有uplDicateentry来确认是主键冲突然后通过按空格截断的方式来将异常信息装入String数组中然后返回错误信息。或添加异常管理器进行全局捕获。使用mp分頁需要配置分頁插件。...
2022-07-23 17:57:01 219
原创 瑞吉外卖day1
首先需要定义一个类使其继承Filter添加@WebFilter(filterName="loginCheckFilter",urlPatterns="/*")注解。log.info("用户已登录{}",request.getSession().getAttribute("employee"));写一个方法check将不需要拦截的路径数组和获取的uri传入方法内。通过给前端返回一个未登录的错误信息从而从前端实现页面的转跳。log.info("本次请求不需要处理",uri);...
2022-07-23 09:29:17 174
原创 idea热部署
1.在pom.xml上添加依赖2. 中文翻译后选择自动构建项目。英文具体步骤:打开顶部工具栏 File -> Settings -> Default Settings -> Build -> Compiler 然后勾选 Build project automatically 。 3. IDEA2021版本在开启老版本使用CTRL+shift+alt+/进入Registry 勾选compiler.automake.allow.when.app.running即可开启热部署......
2022-07-14 11:26:48 480
原创 Spring boot整合mybatis
Spring boot整合mybatis需要1.导入整合mybatis依赖2.添加配置文件这里使用的是yml格式的配置文件spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/ssm_db?serverTimezone=UTCusername: rootpassword: 1234在整合的过程中由于Spring boot版本问题导致mysql依赖版本发生变化可以能会发生报错j
2022-07-09 12:39:34 278
原创 测试类放置路径问题
当运行Spring Boot 测试类时控制台发出一下错误ava.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test多半是因为测试类的放置包的问题测试类一般存放于引导类的包或子包中,如果无法改变路径问题可以在测试类的SpringBootTest的clas
2022-07-08 18:52:02 669
原创 Spring Boot初学 引导类
引导类中SpringApplication.run的作用是用来初始化Sping容器 加载bean 它的返回值是ConfigurableApplicationContext 类型 可以通过其返回值调用getBean方法其中引导类中@SpringBootApplication 注解中含有@ComponentScan注解其用来扫描配置类相同包下的Bean@SpringBootApplicationpublic class DemoApplication {public static void main(Strin
2022-07-07 19:53:07 337 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人