- Android Studio导入外部项目时一定要使用New--Import Project 不要选Open 特别是github项目
小黄人软件
deepseekandroidstudio
AndroidStudio导入外部项目时一定要使用New–ImportProject不要选OpenNew–ImportProject适用于与本地环境不一致的项目之前在本地运行成功才选Open
- 使用Filter实现CORS跨域请求
阿湯哥
spring
在JavaWeb应用中,可以通过自定义Filter来处理跨域请求,主要涉及设置CORS(跨域资源共享)相关的HTTP响应头。以下是详细实现步骤:实现跨域处理的Filter示例importjavax.servlet.*;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;im
- Starlink卫星动力学系统仿真建模第十讲-基于SMC和四元数的卫星姿态控制示例及Python实现
瓦力的狗腿子
python开发语言算法
基于四元数与滑模控制的卫星姿态控制一、基本原理1.四元数姿态表示四元数运动学方程:3.滑模控制设计二、代码实现(Python)1.四元数运算工具importnumpyasnpdefquat_mult(q1,q2):"""四元数乘法"""w1,x1,y1,z1=q1w2,x2,y2,z2=q2w=w1*w2-x1*x2-y1*y2-z1*z2x=w1*x2+x1*w2+y1*z2-z1*y2y=w1
- Python 发布 Web 应用的常见方法及详细步骤
阿湯哥
python前端开发语言
以下是Python发布Web应用的常见方法及详细步骤,涵盖从本地开发到生产环境部署的全流程:一、基础准备:开发Web应用1.选择框架(以Flask为例)#app.pyfromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhome():return"Hello,World!"if__name__=='__main__':app.run(de
- Python 给 Excel 写入数据的四种方法
Stestack
pythonexcel前端
一、使用openpyxl库openpyxl是一个专门用于读写Excel2010xlsx/xlsm/xltx/xltm文件的Python库,尤其适合需要修改现有Excel文件时使用。#python复制代码fromopenpyxlimportWorkbook#创建一个新的工作簿wb=Workbook()#获取默认的工作表ws=wb.active#写入数据ws['A1']='姓名'ws['B1']='成
- 用于获得一个pb文件的所有节点名称
@Mr_LiuYang
写过的小程序
#-*-coding:utf-8-*-"""CreatedonTueDec1818:31:1320181、model_dir为模型路径文件夹,model_name为模型名称(自定义非如alexnet等训练实际名称)2、写入到模型路径下的result.txt文件内@author:Mr_dogyang"""importtensorflowastfimportosmodel_dir='D:\\Tenso
- 解决ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl‘ module is compiled 问题
兮城以空825
piprequests库urllib3v2.0版本
PyCharm解决urllib3v2.0问题,库的安装1.打开File-settings2.找到project:文件名--PythonInterpreter3.-号卸载原urllib3v2.0,以上图片是我已经卸载重新安装好的4.+号安装需要版本urllib35.库的安装也同上述操作
- 快速辨别Vue版本的8个关键方法
wujiada001
前端vue.js前端javascript
全局API创建方式(最明显特征)//Vue3特征import{createApp}from'vue'constapp=createApp(App)app.mount('#app')//Vue2特征importVuefrom'vue'newVue({el:'#app'})组合式API语法//←这是Vue3标志constcount=ref(0)响应式系统差异//Vue3使用ref/reactiveco
- Vue的组合式API和选项式API有什么区别
wujiada001
前端vue.js前端javascript
Vue3的组合式API(CompositionAPI)和选项式API(OptionsAPI)是两种不同的组件编写方式,主要区别如下:1.代码组织方式选项式API:按照选项(如data、methods、computed等)组织代码,逻辑分散在不同选项中。exportdefault{data(){return{count:0}},methods:{increment(){this.count++}}}
- RK3568平台(基础篇) EXPORT_SYMBOL的作用
嵌入式_笔记
瑞芯微linux运维服务器
一、EXPORT_SYMBOL的作用1.在一个模块中使用EXPORT_SYMBOL(name)。name表示函数或者变量等符号,它是对全部内核代码公开的,因此在您的内核模块中可以直接调用name,即使用EXPORT_SYMBOL可以将一个函数以符号的方式导出给其他模块使用。2.EXPORT_SYMBOL的符号,是把这些符号和对应的地址保存起来,在内核运行的过程中,可以找到这些符号对应的地址。而模块
- python 自动化 将日志添加至测试工程中
小赖同学啊
自动化测试(apppcAPI)
通往罗马道路千万条,爱干自己才最强。来来来同志们走起!!!让测试工程看起来比较完善于是向里添加了日志,百度一大堆那么我就厉害了没有选择那么怎么添呢!!?importloggingclassloginmanger():defconsel_out(s
- CellWriteHandler is an interface in EasyExcel, a popular Java library for reading and writing Excel
hshpy
excel
CellWriteHandlerisaninterfaceinEasyExcel,apopularJavalibraryforreadingandwritingExcelfiles.ItisusedtocustomizehowdataiswrittentocellsduringtheExcelexportprocess.PurposeItallowsdeveloperstomodifycellva
- 手写webpack中的loader、plugin以及babel转码的简单理解
编码七号
webpack前端node.js
loaderonstmyLoader=function(source){constresult=source.replace(/secondpage000111/g,"我被Loader替换了!!!!");returnresult;}module.exports=myLoader;//使用方法:在webpack.config.jsmodule:{rules:[{test:/\.js$/,//匹配所有
- 使用python爬取三国演义
何为标准
python
此篇使用的是python进行数据爬虫爬取工具使用的是:bs4,requests爬取的网站:https://www.shicimingju.com/book/sanguoyanyi.html爬取的内容:三国演义爬取三国演义章节标题及其对应的内容开始以下为代码:–coding:utf-8–frombs4importBeautifulSoupasbsimportrequestsimportosos.ch
- 智能交通系统(Intelligent Transportation Systems):智慧城市中的交通革新
给生活加糖!
热门知识智慧城市网络人工智能
智能交通系统(IntelligentTransportationSystems,ITS)是利用先进的信息技术、通信技术、传感技术、计算机技术以及自动化技术等,来提升交通系统效率和安全性的一种交通管理方式。ITS通过收集和分析交通数据,智能化地调度、控制交通流,从而实现交通的高效、安全和可持续发展。智能交通系统不仅能改善交通拥堵、减少交通事故,还能提升交通资源的利用率和环境友好度,推动城市交通的现代
- vue3 下载文件 responseType-blob 或者 a标签
阿丽塔~
前端excelvue
在Vue3中,你可以使用axios或fetch来下载文件,并将responseType设置为blob以处理二进制数据。以下是一个使用axios的示例:使用axios下载文件首先,确保你已经安装了axios:npminstallaxios然后在你的Vue组件中使用axios下载文件:下载文件import{handleFileExport}from'@/utils/exportExcel';impor
- ResNet代码详解与具体实现
墨小傲
python人工智能神经网络深度学习
现在在搞一个项目,想将目前模型架构中的vgg换成resnet网络,所以写了这篇文章。代码都是官网的代码,只是对内容进行了解释。1.BasicBlock类中的init()函数是先定义网络架构,forward()的函数是前向传播,实现的功能就是残差块,importtorch.nnasnnimportmathimporttorch.utils.model_zooasmodel_zoo#这个文件内包括6中
- .onnx模型转.rknn模型方法详解
墨小傲
前端linuxjavascript
首先安装对应的onnx和rknn相关环境将所需环境安装好以后就可以新建一个:onnx2rknn.py的文件,用于模型转换。代码:fromrknn.apiimportRKNNimportosif__name__=='__main__':platform='rk3588''''step1:createRKNNobject'''rknn=RKNN()'''step2:loadthe.onnxmodel'
- 每日一道面试题(技术随机)什么是前端工程化?它有什么意义?
晚夜微雨问海棠呀
前端
前端工程化是一种系统化、规范化的前端开发方法论,通过整合工具链、制定标准流程和实施最佳实践,将软件工程思想应用于前端开发领域。其核心目标是提升开发效率、保障代码质量和增强可维护性。核心要素:模块化架构采用ESModules/CommonJS实现代码拆分组件化开发(如React/Vue组件体系)//ESModule示例import{utils}from'./core-module';exportde
- 如何使用python脚本自动解锁电脑屏幕
SzetoZeZe
windowspython
1.使用Python脚本自动解锁电脑屏幕,首先需要安装pywin32模块,这是一个Python模块,可以让Python脚本访问WindowsAPI。2.然后,使用以下代码来解锁电脑屏幕:importwin32conimportwin32guiwin32gui.LockWorkStation()win32con.EWX_LOGOF|win32con.EWX_FORCEwin32con.EWX_LOG
- 51、深度学习-自学之路-自己搭建深度学习框架-12、使用我们自己建的架构重写RNN预测网络
小宇爱
深度学习-自学之路深度学习rnn人工智能
importnumpyasnpclassTensor(object):def__init__(self,data,autograd=False,creators=None,creation_op=None,id=None):self.data=np.array(data)self.autograd=autogradself.grad=Noneif(idisNone):self.id=np.rand
- Vite (Vue3 + TS)解决跨域问题
JingpengZhang
Vue前端vue.jsjavascript
1.vite.config.ts中添加如下代码:exportdefaultdefineConfig({server:{proxy:{'/api':{target:'http://xxx.com/',//实际请求地址changeOrigin:true,rewrite:(path)=>path.replace(/^\/api/,""),},},},})2.修改axois封装中的baseURL:base
- python oss批量上传_python 批量上传文件到阿里云oss,并写入Excel,存到本地
weixin_39624873
pythonoss批量上传
最近公司要往阿里云oss上传视频,大小差不多有200G,原先让运营去一个一个的添加,但是这能麻烦死人,所以就让技术去批量上传。所以研究了一下用python往oss上传视频首先需引用以下几个模块pipinstalloss2pipinstalltablibpipinstallpyexcel-xlsx其次因为本地的视频都是比如中文.mp4这样的,所以引入一个随机字符串importrandomdefgen
- MAC电脑 初始化 开发环境(Java + Node)
Kevin_K2
macosjava开发语言
1.后端1.1Java下载地址https://www.oracle.com/cn/java/technologies/javase/javase8-archive-downloads.html1.2Maven安装https://archive.apache.org/dist/maven/maven-3/1.3maven环境变量exportMAVEN_HOME=/Users/kevin/Soft/a
- 在vite中 解决跨域问题
是马铭轩
vue.jsjavascript前端
请求接口会产生跨域问题,需要做个代理服务器配置在vite.config.ts中进行配置:import{fileURLToPath,URL}from'node:url'import{defineConfig}from'vite'importvuefrom'@vitejs/plugin-vue'//https://vitejs.dev/config/exportdefaultdefineConfig(
- mysql设置环境变量及开机启动
嘻嘻哈哈笑呵呵
数据库mysqllinux
设置mysql环境变量如果想要直接使用mysql命令,那就将mysql目录下的bin目录加入到环境变量中,参考文章:https://blog.csdn.net/qq_25856179/article/details/117821208设置开机服务自启动复制mysql目录下的support-files目录下的mysql.server放入到服务启动目录/etc/rc.d/init.d目录下:#拷贝一份
- deepin linux安装mysql启动方法
Wilburzzz
linux
#deepin安装mysql启动方法在终端首先输入代码进入mysql安装的文件夹cd/usr/local/mysql然后exportPATH=/usr/local/mysql/bin:$PATH最后mysql-uroot-p输入你第一次安装mysql修改过的密码进入mysql后退出命令是exit
- Gin从入门到精通 (二)多种格式数据输出
Clown95
Gingin
多种格式数据输出在Web应用开发中,根据不同的业务需求和客户端要求,服务器需要以多种格式返回数据。Gin框架提供了便捷的方法来实现不同格式数据的输出,下面将详细介绍几种常见格式数据的返回方式。1.返回文本数据c.String()方法能够返回简单的文本数据,常用于返回提示信息或者简单的响应内容。packagemainimport("github.com/gin-gonic/gin")funcmain
- vue3+vite 配置使用 @ 引入文件
LayneTu
vue.js前端javascript
如何在vue3中使用@来引入文件我这里用到的是vue:^3.2.45和vite:^4.1.0版本,所以在配置之前需要先安装一个可以使用resolve的插件,有了此插件就可以通过import来引入path:npmi-D@types/node接下来是配置vite.config.ts:import{defineConfig}from'vite'importvuefrom'@vitejs/plugin-v
- Python的子线程与主线程之间的通信并通知主线程更新UI
银河护卫队长
python开发语言
新建PLC类PLC.pyimportjsonimporttimefromthreadingimportThreadfromHslCommunicationimportSiemensS7Net,SiemensPLCSfromPySide6.QtCoreimportQThread,Signal,QObjectfromtdm.MsgTypeimportMSG_TYPE_LOG,MSG_TYPE_MSGB
- knob UI插件使用
换个号韩国红果果
JavaScriptjsonpknob
图形是用canvas绘制的
js代码
var paras = {
max:800,
min:100,
skin:'tron',//button type
thickness:.3,//button width
width:'200',//define canvas width.,canvas height
displayInput:'tr
- Android+Jquery Mobile学习系列(5)-SQLite数据库
白糖_
JQuery Mobile
目录导航
SQLite是轻量级的、嵌入式的、关系型数据库,目前已经在iPhone、Android等手机系统中使用,SQLite可移植性好,很容易使用,很小,高效而且可靠。
因为Android已经集成了SQLite,所以开发人员无需引入任何JAR包,而且Android也针对SQLite封装了专属的API,调用起来非常快捷方便。
我也是第一次接触S
- impala-2.1.2-CDH5.3.2
dayutianfei
impala
最近在整理impala编译的东西,简单记录几个要点:
根据官网的信息(https://github.com/cloudera/Impala/wiki/How-to-build-Impala):
1. 首次编译impala,推荐使用命令:
${IMPALA_HOME}/buildall.sh -skiptests -build_shared_libs -format
2.仅编译BE
${I
- 求二进制数中1的个数
周凡杨
java算法二进制
解法一:
对于一个正整数如果是偶数,该数的二进制数的最后一位是 0 ,反之若是奇数,则该数的二进制数的最后一位是 1 。因此,可以考虑利用位移、判断奇偶来实现。
public int bitCount(int x){
int count = 0;
while(x!=0){
if(x%2!=0){ /
- spring中hibernate及事务配置
g21121
Hibernate
hibernate的sessionFactory配置:
<!-- hibernate sessionFactory配置 -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<
- log4j.properties 使用
510888780
log4j
log4j.properties 使用
一.参数意义说明
输出级别的种类
ERROR、WARN、INFO、DEBUG
ERROR 为严重错误 主要是程序的错误
WARN 为一般警告,比如session丢失
INFO 为一般要显示的信息,比如登录登出
DEBUG 为程序的调试信息
配置日志信息输出目的地
log4j.appender.appenderName = fully.qua
- Spring mvc-jfreeChart柱图(2)
布衣凌宇
jfreechart
上一篇中生成的图是静态的,这篇将按条件进行搜索,并统计成图表,左面为统计图,右面显示搜索出的结果。
第一步:导包
第二步;配置web.xml(上一篇有代码)
建BarRenderer类用于柱子颜色
import java.awt.Color;
import java.awt.Paint;
import org.jfree.chart.renderer.category.BarR
- 我的spring学习笔记14-容器扩展点之PropertyPlaceholderConfigurer
aijuans
Spring3
PropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是BeanFactoryPostProcessor接口的一个实现。关于BeanFactoryPostProcessor和BeanPostProcessor类似。我会在其他地方介绍。
PropertyPlaceholderConfigurer可以将上下文(配置文件)中的属性值放在另一个单独的标准java
- maven 之 cobertura 简单使用
antlove
maventestunitcoberturareport
1. 创建一个maven项目
2. 创建com.CoberturaStart.java
package com;
public class CoberturaStart {
public void helloEveryone(){
System.out.println("=================================================
- 程序的执行顺序
百合不是茶
JAVA执行顺序
刚在看java核心技术时发现对java的执行顺序不是很明白了,百度一下也没有找到适合自己的资料,所以就简单的回顾一下吧
代码如下;
经典的程序执行面试题
//关于程序执行的顺序
//例如:
//定义一个基类
public class A(){
public A(
- 设置session失效的几种方法
bijian1013
web.xmlsession失效监听器
在系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session。具体设置很简单,方法有三种:(1)在主页面或者公共页面中加入:session.setMaxInactiveInterval(900);参数900单位是秒,即在没有活动15分钟后,session将失效。这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所
- java jvm常用命令工具
bijian1013
javajvm
一.概述
程序运行中经常会遇到各种问题,定位问题时通常需要综合各种信息,如系统日志、堆dump文件、线程dump文件、GC日志等。通过虚拟机监控和诊断工具可以帮忙我们快速获取、分析需要的数据,进而提高问题解决速度。 本文将介绍虚拟机常用监控和问题诊断命令工具的使用方法,主要包含以下工具:
&nbs
- 【Spring框架一】Spring常用注解之Autowired和Resource注解
bit1129
Spring常用注解
Spring自从2.0引入注解的方式取代XML配置的方式来做IOC之后,对Spring一些常用注解的含义行为一直处于比较模糊的状态,写几篇总结下Spring常用的注解。本篇包含的注解有如下几个:
Autowired
Resource
Component
Service
Controller
Transactional
根据它们的功能、目的,可以分为三组,Autow
- mysql 操作遇到safe update mode问题
bitray
update
我并不知道出现这个问题的实际原理,只是通过其他朋友的博客,文章得知的一个解决方案,目前先记录一个解决方法,未来要是真了解以后,还会继续补全.
在mysql5中有一个safe update mode,这个模式让sql操作更加安全,据说要求有where条件,防止全表更新操作.如果必须要进行全表操作,我们可以执行
SET
- nginx_perl试用
ronin47
nginx_perl试用
因为空闲时间比较多,所以在CPAN上乱翻,看到了nginx_perl这个项目(原名Nginx::Engine),现在托管在github.com上。地址见:https://github.com/zzzcpan/nginx-perl
这个模块的目的,是在nginx内置官方perl模块的基础上,实现一系列异步非阻塞的api。用connector/writer/reader完成类似proxy的功能(这里
- java-63-在字符串中删除特定的字符
bylijinnan
java
public class DeleteSpecificChars {
/**
* Q 63 在字符串中删除特定的字符
* 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。
* 例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”
*/
public static voi
- EffectiveJava--创建和销毁对象
ccii
创建和销毁对象
本章内容:
1. 考虑用静态工厂方法代替构造器
2. 遇到多个构造器参数时要考虑用构建器(Builder模式)
3. 用私有构造器或者枚举类型强化Singleton属性
4. 通过私有构造器强化不可实例化的能力
5. 避免创建不必要的对象
6. 消除过期的对象引用
7. 避免使用终结方法
1. 考虑用静态工厂方法代替构造器
类可以通过
- [宇宙时代]四边形理论与光速飞行
comsci
从四边形理论来推论 为什么光子飞船必须获得星光信号才能够进行光速飞行?
一组星体组成星座 向空间辐射一组由复杂星光信号组成的辐射频带,按照四边形-频率假说 一组频率就代表一个时空的入口
那么这种由星光信号组成的辐射频带就代表由这些星体所控制的时空通道,该时空通道在三维空间的投影是一
- ubuntu server下python脚本迁移数据
cywhoyi
pythonKettlepymysqlcx_Oracleubuntu server
因为是在Ubuntu下,所以安装python、pip、pymysql等都极其方便,sudo apt-get install pymysql,
但是在安装cx_Oracle(连接oracle的模块)出现许多问题,查阅相关资料,发现这边文章能够帮我解决,希望大家少走点弯路。http://www.tbdazhe.com/archives/602
1.安装python
2.安装pip、pymysql
- Ajax正确但是请求不到值解决方案
dashuaifu
Ajaxasync
Ajax正确但是请求不到值解决方案
解决方案:1 . async: false , 2. 设置延时执行js里的ajax或者延时后台java方法!!!!!!!
例如:
$.ajax({ &
- windows安装配置php+memcached
dcj3sjt126com
PHPInstallmemcache
Windows下Memcached的安装配置方法
1、将第一个包解压放某个盘下面,比如在c:\memcached。
2、在终端(也即cmd命令界面)下输入 'c:\memcached\memcached.exe -d install' 安装。
3、再输入: 'c:\memcached\memcached.exe -d start' 启动。(需要注意的: 以后memcached将作为windo
- iOS开发学习路径的一些建议
dcj3sjt126com
ios
iOS论坛里有朋友要求回答帖子,帖子的标题是: 想学IOS开发高阶一点的东西,从何开始,然后我吧啦吧啦回答写了很多。既然敲了那么多字,我就把我写的回复也贴到博客里来分享,希望能对大家有帮助。欢迎大家也到帖子里讨论和分享,地址:http://bbs.csdn.net/topics/390920759
下面是我回复的内容:
结合自己情况聊下iOS学习建议,
- Javascript闭包概念
fanfanlovey
JavaScript闭包
1.参考资料
http://www.jb51.net/article/24101.htm
http://blog.csdn.net/yn49782026/article/details/8549462
2.内容概述
要理解闭包,首先需要理解变量作用域问题
内部函数可以饮用外面全局变量
var n=999;
functio
- yum安装mysql5.6
haisheng
mysql
1、安装http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
2、yum install mysql
3、yum install mysql-server
4、vi /etc/my.cnf 添加character_set_server=utf8
- po/bo/vo/dao/pojo的详介
IT_zhlp80
javaBOVODAOPOJOpo
JAVA几种对象的解释
PO:persistant object持久对象,可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作.
VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可
- java设计模式
kerryg
java设计模式
设计模式的分类:
一、 设计模式总体分为三大类:
1、创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。
2、结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。
3、行为型模式(11种):策略模式,模版方法模式,观察者模式,迭代子模式,责任链模式,命令模式,备忘录模式,状态模式,访问者
- [1]CXF3.1整合Spring开发webservice——helloworld篇
木头.java
springwebserviceCXF
Spring 版本3.2.10
CXF 版本3.1.1
项目采用MAVEN组织依赖jar
我这里是有parent的pom,为了简洁明了,我直接把所有的依赖都列一起了,所以都没version,反正上面已经写了版本
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht
- Google 工程师亲授:菜鸟开发者一定要投资的十大目标
qindongliang1922
工作感悟人生
身为软件开发者,有什么是一定得投资的? Google 软件工程师 Emanuel Saringan 整理了十项他认为必要的投资,第一项就是身体健康,英文与数学也都是必备能力吗?来看看他怎么说。(以下文字以作者第一人称撰写)) 你的健康 无疑地,软件开发者是世界上最久坐不动的职业之一。 每天连坐八到十六小时,休息时间只有一点点,绝对会让你的鲔鱼肚肆无忌惮的生长。肥胖容易扩大罹患其他疾病的风险,
- linux打开最大文件数量1,048,576
tianzhihehe
clinux
File descriptors are represented by the C int type. Not using a special type is often considered odd, but is, historically, the Unix way. Each Linux process has a maximum number of files th
- java语言中PO、VO、DAO、BO、POJO几种对象的解释
衞酆夼
javaVOBOPOJOpo
PO:persistant object持久对象
最形象的理解就是一个PO就是数据库中的一条记录。好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。
BO:business object业务对象
封装业务逻辑的java对象