- spring如何整合druid连接池?
惜.己
springspringjunit数据库javaidea后端xml
目录spring整合druid连接池1.新建maven项目2.新建mavenModule3.导入相关依赖4.配置log4j2.xml5.配置druid.xml1)xml中如何引入properties2)下面是配置文件6.准备jdbc.propertiesJDBC配置项解释7.配置druid8.测试spring整合druid连接池1.新建maven项目打开IDE(比如IntelliJIDEA,Ecl
- jdbc连接池怎么工作
烟雨国度
java数据库服务器
是否是否是否开始初始化DruidDataSource应用程序请求连接ThreadLocal中有连接?返回ThreadLocal中的连接从连接池获取新连接将连接存入ThreadLocal执行SQL操作调用closeAll()是否自动提交?归还连接到连接池从ThreadLocal移除连接保持连接不变结束开始事务操作调用begin()设置自动提交为false执行多个SQL操作事务是否成功?调用commi
- Spring6学习笔记4:事务
·云扬·
SSMJava#Spring学习笔记spring
1JdbcTemplate1.1简介Spring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库操作准备工作①搭建子模块搭建子模块:spring-jdbc-tx②加入依赖org.springframeworkspring-jdbc6.0.2mysqlmysql-connector-java8.0.30com.alibabadruid1.2.15③创建jdbc.propertie
- 【Java】Mybatis Druid连接池配置详细
beautiful_huang
Java
pom.xmlcom.alibabadruid1.0.18.propertiesspring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/mybatis2?characterEncoding=utf-8&useSSL=truespring.da
- MyBatis-Plus&Druid数据源
听封
javaspringboot
MyBatis-Plus简介MyBatis-Plus(简称MP)是一个MyBatis的增强工具,它在MyBatis的基础上进行了增强而不改变其原有的功能,旨在简化开发、提高效率。以下是对MyBatis-Plus的详细简介:一、基本概述定义:MyBatis-Plus是在MyBatis基础上进行增强的一个框架,通过提供一系列的特性和工具,极大地简化了CRUD(创建、读取、更新、删除)操作和其他数据库交
- Springboot项目中使用druid实现多数据源和动态数据源,因数据库不可用导致的项目挂起的处理方案
LOVE_DDZ
Spring-BootMybatisspringboot数据库后端
Springboot项目中使用druid因数据库不可用导致的项目挂起的处理方案在SpringBoot项目中使用Druid实现多数据源和动态数据源管理是一个常见的场景。通过合理的配置和错误处理机制,您可以有效地管理数据源,避免因数据库不可用而导致整个项目挂起。1.配置多数据源在application.yml或application.properties中配置多个数据源信息:spring:dataso
- druid 连接gbase8s数据库问题记录
gbase_lmax
数据库java
在druid1.2.16以及之前版本中,可以允许dbType=null,不影响数据库连接使用在druid1.2.17以及之后版本中,已经不允许dbType=null代码差异如下1.2.16if(connectTimeout>0){if(isMySql){if(connectTimeoutStr==null){connectTimeoutStr=Integer.toString(connectTim
- druid连接数据库报错
Aliyev
MySQL连接错误时区问题版本匹配jar包
信息:{dataSource-1}inited10月21,20229:26:36下午com.alibaba.druid.support.logging.JakartaCommonsLoggingImplerror严重:createconnectionSQLException,url:jdbc:mysql://localhost:3306/db1,errorCode0,state01S00java.
- Gbase8s如何配置Druid连接池(java.sql.SQLException: unknown jdbc driver : jdbc:gbasedbt-sql)
[email protected]
数据库
今天测试使用Druid连接池来连接Gbase8s遇到了以下错误:三月02,20248:43:31下午com.alibaba.druid.pool.DruidDataSourceerror严重:{dataSource-1}initerrorjava.sql.SQLException:unknownjdbcdriver:jdbc:gbasedbt-sql://192.168.1.100:9088/my
- EOFParserException: EOF
妙明元心
mybatissql
在使用mybatis接受list等集合遍历时,没有对list等进行size>0判断,会产生如下异常:Causedby:com.alibaba.druid.sql.parser.EOFParserException:EOF需要修改进行如下判断:0">andidin#{id}或者:在调用dao方法前进行判断,list!=null&&list.size>0
- Pinterest:从 Druid 到 StarRocks,实现 6 倍成本效益比提升
StarRocks_labs
数据库大数据
导读:开源无国界,StarRocks自开源以来,近3年的时间里已在全球数据技术领域崭露头角。我们欣喜地发现,越来越多的海外用户正在使用并积极推广着StarRocks。为了促进知识共享,StarRocks中文社区将精选优秀文章与大家共享。本篇文章摘自PinterestEngineering撰写的《DeliveringFasterAnalyticsatPinterest》,欢迎阅读原文深入了解:htt
- SpringBoot多数据源配置
代码蒋
springbootjava
目录1SpringBoot分库配置1.1准备数据1.2springboot+mybatis使用分包方式整合1.2.1pom.xml1.2.2application.yml配置文件1.2.3连接数据源配置文件1.2.3.1连接源配置一1.2.3.2连接源配置二1.2.4项目结构1.3springboot+druid+mybatisplus使用注解整合1.3.1pom.xml1.3.2applicat
- 数据源10min自动断开连接导致查询抛异常(未获取可用连接)
镜水灵动
javaspringboot数据库
由于个人能力有限,本文章仅仅代表本人想法,若有不对请即时指出,若有侵权,请联系本人。1背景工作中引入druid来管理数据源连接,由于数据源每隔10分钟强制管理空闲超过10分钟的连接,导致每隔10分钟出现1次获取不到有效连接异常。业务请求量非常少(1h可能来一次请求)。因此,研究了一下druid源码,以及相应的解决方案。(1)设置maxEvictableIdleTimeMillis为300000,这
- IDEA+Springboot+mybaties通过实体类自动建表
yuanyaunlv
spring基于springboot
1、引入pom依赖com.gitee.sunchenbin.mybatis.actablemybatis-enhance-actable1.0.3com.alibabadruid1.0.18org.apache.commonscommons-lang33.4net.sf.json-libjson-lib
- springboot 实现数据库的读写分离
angen2018
#springbootmybatis数据库springboot
springboot+mybatis+druid主从数据库,所有select语句都走从数据库在SpringBoot应用中,MyRoutingDataSource可以与DataSource配置结合使用,通过@Configuration类来配置数据源和事务管理器,并使用@Primary注解来指定主数据源添加依赖org.springframework.bootspring-boot-starter-jd
- MyBatis-Plus使用——配置yml参数 &; 常用的注解@Table,@TableId,
v_648374
mybatis
#要启用PSCache,其值必须大于0,当大于0时,poolPreparedStatements自动触发修改为true。#在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100。max-pool-prepared-statement-per-connection-size:20#用来检测连接是否有效的sql,要求是一个查询语句,常用selec
- springboot定时任务@Scheduled以及集群定时任务锁@SchedulerLock
随时看
数据库javaspringboot
springboot定时任务@Scheduled以及集群定时任务锁@SchedulerLock代码地址:https://github.com/763977251/MyDemo/tree/main/scheduled_demo1.引入maven依赖引入mysql:因为分布式锁是基于mysql数据库表实现的mysqlmysql-connector-javaruntimecom.alibabadruid
- springboot (8) 更换数据源为Druid
刘帅帅
springbootspringbootspring连接池Druid数据库
SpringBoot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSource,而目前的互联网项目,大多数数据库连接池都使用Druid,它的方便之处在于能够提供强大的监控和扩展功能。目前是JAVA语言中最好的连接池。在本文中将讲述如何配置,如何使用,如何监控。1.在pom.xml文件中添加依赖com.alibabadruid1.0.182.在application
- Apache Druid安装部署手册
长了手的兔子精
apache数据库bigdata
一ApacheDruid架构1.Coordinator监控Historical处理,负责分配segments到指定的服务,确保存在HIstorical中是自平衡的2.Overlord监控MiddleManager处理和控制数据加载进druid集群;对分配给MiddleManager的摄取任务和协调segments的发布负责3.Broker处理来自客户端的查询,解析将查询重定向到Historical
- 基于Maven+ SpringMVC+ MyBatis +Druid+MySql员工管理系统新手教程
小丑皇_0624
基于Maven+SpringMVC+MyBatis+Druid+MySql员工管理系统新手教程前言百度上搜这个还能跳出来个100+RMB的课程。这课有好多人看。我看了一下目录,发现大概比我的系统全面。但是,如果你只是要使用这些工具搭建一个员工管理系统,看我的就够了。虽然我只是个新手,但是我实现了,并且尽我所能讲清楚代码。项目目标我们搭建的员工管理系统是要有员工,部门和员工,部门的关系和对前三者在应
- 阿里巴巴 Druid 数据库连接池监控界面配置的参数解读
楼兰King
Druid数据连接池简介Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。性能好,同时自带监控页面,可以实时监控应用的连接池情况以及其中性能差的sql,方便我们找出应用中连接池方面的问题。Druid是一个JDBC组件,它包括三部分:DruidDriver代理Driver,能够提供基于Filter-Chain模式的插件体系DruidDataSource高效可管理的
- SpringBoot环境搭建
HW--
springbootjavaspring
一、1.Spring的纯注解配置1.1.JdbcConfigimportcom.alibaba.druid.pool.DruidDataSource;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.context.annotation.Bean;importorg.springfr
- 配置Alibaba druid实践和总结
lsweetyy
技术备忘录javaalibabamvc
1什么是DRUIDDruid是一个JDBC组件,它包括三部分:DruidDriver代理Driver,能够提供基于Filter-Chain模式的插件体系。DruidDataSource高效可管理的数据库连接池。SQLParser2Druid可以做什么?1)可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有
- Druid是什么和Druid的介绍
JavaISoCool
https://blog.csdn.net/past__time/article/details/80486117
- IOC/DI配置管理第三方bean
vⅤ_Leon
Spring在哪里java开发语言spring
文章目录一案例:数据源对象管理1环境准备2思路分析3实现Druid管理步骤1:导入`druid`的依赖步骤2:配置第三方bean步骤3:从IOC容器中获取对应的bean对象步骤4:运行程序4实现C3P0管理步骤1:导入`C3P0`的依赖步骤2:配置第三方bean步骤3:运行程序二加载properties文件1第三方bean属性优化1.1实现思路1.2实现步骤步骤1:准备properties配置文件
- springboot项目学习-瑞吉外卖(1)
两仪式quq
springboot学习java瑞吉外卖
第一天任务如下:建立基本架构完成登录、退出功能注意:本博客没有使用网上教程里的mybatis-plus,使用的是mybatis;数据库连接池也没有使用教程里的druid,使用的是spring自带的连接池基本架构common包:存放的通用类R,用来给前端返回Json格式的数据config包:存放配置类,在今天的任务中主要解决静态资源路径映射问题controller包entity包:存放实体类mapp
- Druid
可爱的小小小狼
Druidoracle数据库
连接池的主要思想是在应用程序启动时创建一组数据库连接,并将这些连接保存在一个池中。当应用程序需要与数据库通信时,它从连接池中获取一个可用的连接,执行数据库操作后将连接放回池中,而不是每次都创建新的连接。这样可以避免频繁地打开和关闭数据库连接,提高性能并有效地利用资源。数据库本身通常不会提供数据库连接池,因为连接池通常是在应用程序层面实现的一种机制DBCP(DatabaseConnectionPoo
- SpringBoot2 集成 ClickHouse 实现高性能数据分析
十点摆码
大数据clickhouse列式数据库Yandex高性能分析高性能查询分析数据库
一第一种驱动方式SpringBoo2集成Mybatis-plus以及ClickHouse实现增删改查功能。1.1pom.xml依赖com.baomidoumybatis-plus-boot-starter3.5.3.1com.alibabadruid1.1.9ru.yandex.clickhouseclickhouse-jdbc0.3.21.2properties配置#mybatis-plus配置
- java springcloud 微服务设计方案
IT祖师爷
springcloud+springcloudAlibaba+flowable流程引擎1.代码生成器:[正反双向](单表、主表、明细表、树形表,快速开发利器)freemaker模版技术,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块2.多数据源:(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源3.阿里数据库连接池druid,安
- JavaWeb学习(一)---MySQL数据库
肥大毛
Java学习数据库mysql学习
文章目录MySQL查询中嵌套查询,称嵌套查询为子查询事务事务的四大特性数据库引擎存储过程变量函数触发器JDBCJDBC详解DriverManager驱动管理类Connection数据库连接对象Statementsql执行ResultSet:结果集对象PreparedStatement:预编译SQL语句并且执行,预防SQL注入问题在sql语句中?代表占位符数据库连接池练习:基于Druid连接池实现对
- html页面js获取参数值
0624chenhong
html
1.js获取参数值js
function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = windo
- MongoDB 在多线程高并发下的问题
BigCat2013
mongodbDB高并发重复数据
最近项目用到 MongoDB , 主要是一些读取数据及改状态位的操作. 因为是结合了最近流行的 Storm进行大数据的分析处理,并将分析结果插入Vertica数据库,所以在多线程高并发的情境下, 会发现 Vertica 数据库中有部分重复的数据. 这到底是什么原因导致的呢?笔者开始也是一筹莫 展,重复去看 MongoDB 的 API , 终于有了新发现 :
com.mongodb.DB 这个类有
- c++ 用类模版实现链表(c++语言程序设计第四版示例代码)
CrazyMizzz
数据结构C++
#include<iostream>
#include<cassert>
using namespace std;
template<class T>
class Node
{
private:
Node<T> * next;
public:
T data;
- 最近情况
麦田的设计者
感慨考试生活
在五月黄梅天的岁月里,一年两次的软考又要开始了。到目前为止,我已经考了多达三次的软考,最后的结果就是通过了初级考试(程序员)。人啊,就是不满足,考了初级就希望考中级,于是,这学期我就报考了中级,明天就要考试。感觉机会不大,期待奇迹发生吧。这个学期忙于练车,写项目,反正最后是一团糟。后天还要考试科目二。这个星期真的是很艰难的一周,希望能快点度过。
- linux系统中用pkill踢出在线登录用户
被触发
linux
由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍所以需要有时踢出指定的用户
1/#who 查出当前有那些终端登录(用 w 命令更详细)
# who
root pts/0 2010-10-28 09:36 (192
- 仿QQ聊天第二版
肆无忌惮_
qq
在第一版之上的改进内容:
第一版链接:
http://479001499.iteye.com/admin/blogs/2100893
用map存起来号码对应的聊天窗口对象,解决私聊的时候所有消息发到一个窗口的问题.
增加ViewInfo类,这个是信息预览的窗口,如果是自己的信息,则可以进行编辑.
信息修改后上传至服务器再告诉所有用户,自己的窗口
- java读取配置文件
知了ing
1,java读取.properties配置文件
InputStream in;
try {
in = test.class.getClassLoader().getResourceAsStream("config/ipnetOracle.properties");//配置文件的路径
Properties p = new Properties()
- __attribute__ 你知多少?
矮蛋蛋
C++gcc
原文地址:
http://www.cnblogs.com/astwish/p/3460618.html
GNU C 的一大特色就是__attribute__ 机制。__attribute__ 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。
__attribute__ 书写特征是:
- jsoup使用笔记
alleni123
java爬虫JSoup
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.3</version>
</dependency>
2014/08/28
今天遇到这种形式,
- JAVA中的集合 Collectio 和Map的简单使用及方法
百合不是茶
listmapset
List ,set ,map的使用方法和区别
java容器类类库的用途是保存对象,并将其分为两个概念:
Collection集合:一个独立的序列,这些序列都服从一条或多条规则;List必须按顺序保存元素 ,set不能重复元素;Queue按照排队规则来确定对象产生的顺序(通常与他们被插入的
- 杀LINUX的JOB进程
bijian1013
linuxunix
今天发现数据库一个JOB一直在执行,都执行了好几个小时还在执行,所以想办法给删除掉
系统环境:
ORACLE 10G
Linux操作系统
操作步骤如下:
第一步.查询出来那个job在运行,找个对应的SID字段
select * from dba_jobs_running--找到job对应的sid
&n
- Spring AOP详解
bijian1013
javaspringAOP
最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习Spring AOP相关的内容。例如,以下需求不用AOP肯定也能解决,至于是否牵强附会,仁者见仁智者见智。
1.对部分函数的调用进行日志记录,用于观察特定问题在运行过程中的函数调用
- [Gson六]Gson类型适配器(TypeAdapter)
bit1129
Adapter
TypeAdapter的使用动机
Gson在序列化和反序列化时,默认情况下,是按照POJO类的字段属性名和JSON串键进行一一映射匹配,然后把JSON串的键对应的值转换成POJO相同字段对应的值,反之亦然,在这个过程中有一个JSON串Key对应的Value和对象之间如何转换(序列化/反序列化)的问题。
以Date为例,在序列化和反序列化时,Gson默认使用java.
- 【spark八十七】给定Driver Program, 如何判断哪些代码在Driver运行,哪些代码在Worker上执行
bit1129
driver
Driver Program是用户编写的提交给Spark集群执行的application,它包含两部分
作为驱动: Driver与Master、Worker协作完成application进程的启动、DAG划分、计算任务封装、计算任务分发到各个计算节点(Worker)、计算资源的分配等。
计算逻辑本身,当计算任务在Worker执行时,执行计算逻辑完成application的计算任务
- nginx 经验总结
ronin47
nginx 总结
深感nginx的强大,只学了皮毛,把学下的记录。
获取Header 信息,一般是以$http_XX(XX是小写)
获取body,通过接口,再展开,根据K取V
获取uri,以$arg_XX
&n
- 轩辕互动-1.求三个整数中第二大的数2.整型数组的平衡点
bylijinnan
数组
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ExoWeb {
public static void main(String[] args) {
ExoWeb ew=new ExoWeb();
System.out.pri
- Netty源码学习-Java-NIO-Reactor
bylijinnan
java多线程netty
Netty里面采用了NIO-based Reactor Pattern
了解这个模式对学习Netty非常有帮助
参考以下两篇文章:
http://jeewanthad.blogspot.com/2013/02/reactor-pattern-explained-part-1.html
http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf
- AOP通俗理解
cngolon
springAOP
1.我所知道的aop 初看aop,上来就是一大堆术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等。一下子让你不知所措,心想着:怪不得很多人都和 我说aop多难多难。当我看进去以后,我才发现:它就是一些java基础上的朴实无华的应用,包括ioc,包括许许多多这样的名词,都是万变不离其宗而 已。 2.为什么用aop&nb
- cursor variable 实例
ctrain
variable
create or replace procedure proc_test01
as
type emp_row is record(
empno emp.empno%type,
ename emp.ename%type,
job emp.job%type,
mgr emp.mgr%type,
hiberdate emp.hiredate%type,
sal emp.sal%t
- shell报bash: service: command not found解决方法
daizj
linuxshellservicejps
今天在执行一个脚本时,本来是想在脚本中启动hdfs和hive等程序,可以在执行到service hive-server start等启动服务的命令时会报错,最终解决方法记录一下:
脚本报错如下:
./olap_quick_intall.sh: line 57: service: command not found
./olap_quick_intall.sh: line 59
- 40个迹象表明你还是PHP菜鸟
dcj3sjt126com
设计模式PHP正则表达式oop
你是PHP菜鸟,如果你:1. 不会利用如phpDoc 这样的工具来恰当地注释你的代码2. 对优秀的集成开发环境如Zend Studio 或Eclipse PDT 视而不见3. 从未用过任何形式的版本控制系统,如Subclipse4. 不采用某种编码与命名标准 ,以及通用约定,不能在项目开发周期里贯彻落实5. 不使用统一开发方式6. 不转换(或)也不验证某些输入或SQL查询串(译注:参考PHP相关函
- Android逐帧动画的实现
dcj3sjt126com
android
一、代码实现:
private ImageView iv;
private AnimationDrawable ad;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout
- java远程调用linux的命令或者脚本
eksliang
linuxganymed-ssh2
转载请出自出处:
http://eksliang.iteye.com/blog/2105862
Java通过SSH2协议执行远程Shell脚本(ganymed-ssh2-build210.jar)
使用步骤如下:
1.导包
官网下载:
http://www.ganymed.ethz.ch/ssh2/
ma
- adb端口被占用问题
gqdy365
adb
最近重新安装的电脑,配置了新环境,老是出现:
adb server is out of date. killing...
ADB server didn't ACK
* failed to start daemon *
百度了一下,说是端口被占用,我开个eclipse,然后打开cmd,就提示这个,很烦人。
一个比较彻底的解决办法就是修改
- ASP.NET使用FileUpload上传文件
hvt
.netC#hovertreeasp.netwebform
前台代码:
<asp:FileUpload ID="fuKeleyi" runat="server" />
<asp:Button ID="BtnUp" runat="server" onclick="BtnUp_Click" Text="上 传" />
- 代码之谜(四)- 浮点数(从惊讶到思考)
justjavac
浮点数精度代码之谜IEEE
在『代码之谜』系列的前几篇文章中,很多次出现了浮点数。 浮点数在很多编程语言中被称为简单数据类型,其实,浮点数比起那些复杂数据类型(比如字符串)来说, 一点都不简单。
单单是说明 IEEE浮点数 就可以写一本书了,我将用几篇博文来简单的说说我所理解的浮点数,算是抛砖引玉吧。 一次面试
记得多年前我招聘 Java 程序员时的一次关于浮点数、二分法、编码的面试, 多年以后,他已经称为了一名很出色的
- 数据结构随记_1
lx.asymmetric
数据结构笔记
第一章
1.数据结构包括数据的
逻辑结构、数据的物理/存储结构和数据的逻辑关系这三个方面的内容。 2.数据的存储结构可用四种基本的存储方法表示,它们分别是
顺序存储、链式存储 、索引存储 和 散列存储。 3.数据运算最常用的有五种,分别是
查找/检索、排序、插入、删除、修改。 4.算法主要有以下五个特性:
输入、输出、可行性、确定性和有穷性。 5.算法分析的
- linux的会话和进程组
网络接口
linux
会话: 一个或多个进程组。起于用户登录,终止于用户退出。此期间所有进程都属于这个会话期。会话首进程:调用setsid创建会话的进程1.规定组长进程不能调用setsid,因为调用setsid后,调用进程会成为新的进程组的组长进程.如何保证? 先调用fork,然后终止父进程,此时由于子进程的进程组ID为父进程的进程组ID,而子进程的ID是重新分配的,所以保证子进程不会是进程组长,从而子进程可以调用se
- 二维数组 元素的连续求解
1140566087
二维数组ACM
import java.util.HashMap;
public class Title {
public static void main(String[] args){
f();
}
// 二位数组的应用
//12、二维数组中,哪一行或哪一列的连续存放的0的个数最多,是几个0。注意,是“连续”。
public static void f(){
- 也谈什么时候Java比C++快
windshome
javaC++
刚打开iteye就看到这个标题“Java什么时候比C++快”,觉得很好笑。
你要比,就比同等水平的基础上的相比,笨蛋写得C代码和C++代码,去和高手写的Java代码比效率,有什么意义呢?
我是写密码算法的,深刻知道算法C和C++实现和Java实现之间的效率差,甚至也比对过C代码和汇编代码的效率差,计算机是个死的东西,再怎么优化,Java也就是和C