JAVA精粹知识点

instanceof 用法
AA instanceof BB (instanceof作用:判断AA是否属于BB这个类或其子类的实例,即引用),AA只能是一个对象,BB只能是一个类名,不能为变量

(Hibernate3 get方法代替了find方法)
hibernate中session接口的get()、load()方法区别?hibernate的查询有很多,Query,Criteria,find,get,load
load()方法会先在缓存中找对象,如果缓存中找不到就会抛出异常;判断是否是lazy,查询数据库 返回一个实体代理类类型 充分利用内部缓存和二级缓存
get()方法也会查找缓存,如果缓存中找不到则会查找数据库,如果再找不到就会返回null 返回的是实体类对象 忽略二级缓存

经典单实例例子
public class ClassicSingleton {
private static ClassicSingleton instance = null;
protected ClassicSingleton() {
// Exists only to defeat instantiation.
}
public static ClassicSingleton getInstance() {
if(instance == null) {
instance = new ClassicSingleton();
}
return instance;
}
}

Hql查询:Oracle 临时表查询方法
Select customer. orderList from Order order,
(Select * from Customer ct
where ct.customerName like ‘厦门’||'%' and ct. orderList.sise()>100
ordery by ct. customerName;
)customer
Where order. orderDate between 2008-08-08 and 2009-08-08
And order. Customer=:customer;


空接口,起标志作用,面向接口编程的众多优点,可管理权限等~~

排序list集合
ContentComparator comp = new ContentComparator();
Collections.sort(list,comp);

@Override 指明注释的方法覆盖超类的方法
@Deprecated 对不再使用的方法进行注释
@SuppressWarnings阻止编译器的警告,例:当类型不安全时
@SuppressWarnings("unused") 屏蔽java中的警告信息 如定义了变量未使用。
@SuppressWarnings("unchecked") 屏蔽java中的警告信息 如方法内部具体实现

Class c=Class.forName(args);
c.newInstance();
Package p=c.getPackage();
Field []f=c.getFields();
for(Field field : f){
System.out.println(field.getName());
}
int m=c.getModifiers();
System.out.println(Modifier.toString(m));
Constructor[] co=c.getConstructors();
Method[] co=c.getDeclaredMethods();//得到某个类中声明的方法,不包括父类的方法
动态方法调用
在程序运行过程中间,可以动态的调用某个方法, Method类的invoke方法。
method.invoke(方法所在的对象, ?Object[ ]);//调用方法
// Object[ ]是参数数组,如果没有参数可将数组大小为0或参数为null

a:for(...){
b:for(...){
break a;
}
}

接口、抽象类不能实例化 所以spring配置文件不能注入
IConnection objIConnection = new Connection();面向接口编程的优点
子类可以继承父类私有属性,却只能通过方法访问
枚举是一种类,注释是一种接口


java里的所有基本类型都是按值进行传递的,所有对象都是按引用进行传递的,
不过有一个例外就是String对象,线程安全,虽然是按引用传递,但是任何修改都导致新字符串的生成!

私有的构造方法:表明类不能被实例化
其他的私有方法:表明不能被外部的类调用

父类为抽象类时也同样会调用父类的构造方法,看来抽象类在虚拟机内部还是被实例化了。

gc只有在JVM内存不足的时候才会自动执行
A a = (A)Class.forName("pacage.A").newInstance(); 等效于 A a = new A();


Java 接口
1.接口的所有方法默认都是public,abstract和non-static的
2.接口的所有变量默认都是public,static,final的.所以,接口的变量不能改值,在它的实现类里.
3.接口的实现类实现的方法必须和接口的方法抛出同样的异常,不许是子类,这和override不一样!同样,如果接口方法没有抛,实现方法也不能抛.
4.实现类实现的方法必须显式的声明成public,什么都不写都不行,啊!!!
5.接口不能声明成final,要不它怎么被实现呢(这好像又是废话啊)
6.一个类实现两个接口,如果两个接口有相同的方法,实现类就实现这个方法,没问题的. //两个接口共有此方法

oracle 会把in 转换为 or来执行,,这样一来,,in应该没有or有效率,,但是这点效率可以忽略不计

select * from table a,table b where a.id=b.id a b可以无关联

使用tomcat5.5.xx以上版本后,只要配置tomcat不因为类的修改重新加载容器。那么你如果只是修改了类的实现(方法体内的代码),而不是添加或删除类的方法和成员变量。

SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象
SessionFactory并不是轻量级的 一个数据库一个 一个项目一个(数据库一个)或多个

escape关键字 'ab\%cd%'escape'\' 将\后面特殊字符转义

字符窜长度为0就是指空字符串"",可以调用字符串的方法。
为null指 不指向任何对象,不能调用字符串的方法。

JNI(Java Native Interface),JAVA本地调用. 允许Java代码和其他语言写的代码进行交互 . JNI一开始是为了本地已编译语言,尤其是C和C++

JNDI(Java Naming and Directory Interface),Java命名系统接口. JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI SPI的实现,由管理者将JNDI API映射为特定的命名服务和目

录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。

public 修饰符会降低运行的安全性和数据的封装性

final 域(成员变量) 变量不可更改、方法不能重写,可重载、类不能被继承。

static 修饰的成员变量仅属于类的变量,而不属于任何一个具体的对象,静态成员变量的值是保存在类的内存区域的公共存储单元,而不是保存在某一个对象的内存区间。任何一个类的对象

访问它时取到的都是相同的数据;任何一个类的对象修改它时 , 也都是对同一个内存单元进行操作


修饰符总结: 类、域、方法、属性

类的访问修饰符:public、缺省类 (可访问控制符)
abstract、最终类final (非访问控制符)

域的控制修饰符:public、private、protected、private protected、缺省
static、final、volatile、transient
private protected :该类本身或子类可访问和引用。
static 修饰的成员变量仅属于类的变量
volatile易失(共享) 可能被几个线程所控制和修改
transient暂时性 大概是内存中不保存。

方法的控制修饰符:public、private、protected、private protected、缺省
abstract、static、final、native、synchronized
static:(不是具体类)整个类的类方法,所以不能操纵和处理非静态的成员变量....static 方法只能处理 static 的域
native(本地控制符) 调用其他语言
synchronized 多线程共存的程序中的协调和同步

OOA:Object-Oriented Analysis:面向对象分析
OOD:Object-Oriented Design:面向对象设计

硬编码是指将可变变量用一个固定值来代替的方法. 例如: 硬编码:if(a==2) 不是硬编码 b=2 if(a==b)

Hibernate 是最优秀的持久性存储引擎,以至于 EJB3.0 就是基于 hibernate 开发的
hibernate 功能非常强大,其事务处理、命名查询、回调监听、简单方便的 O/R mapping 、缓存机制是任何一个其他的持久层框架无法相媲美的
缓存、懒加载、抓取策略
hibernate是个O/R Mapping框架,物理数据映射为PO的工具。

Query query = getSession().createSQLQuery("{Call process_analog(?,?)}");
query.setParameter(0, cal);
query.setParameter(1, uuid);
query.executeUpdate(); //没有返回值
//query.list();//有返回值
基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)内容概要:本文档围绕基于遗传算法的异构分布式系统任务调度算法展开研究,重点介绍了一种结合遗传算法的新颖优化方法,并通过Matlab代码实现验证其在复杂调度问题中的有效性。文中还涵盖了多种智能优化算法在生产调度、经济调度、车间调度、无人机路径规划、微电网优化等领域的应用案例,展示了从理论建模到仿真实现的完整流程。此外,文档系统梳理了智能优化、机器学习、路径规划、电力系统管理等多个科研方向的技术体系与实际应用场景,强调“借力”工具与创新思维在科研中的重要性。; 适合人群:具备一定Matlab编程基础,从事智能优化、自动化、电力系统、控制工程等相关领域研究的研究生及科研人员,尤其适合正在开展调度优化、路径规划或算法改进类课题的研究者; 使用场景及目标:①学习遗传算法及其他智能优化算法(如粒子群、蜣螂优化、NSGA等)在任务调度中的设计与实现;②掌握Matlab/Simulink在科研仿真中的综合应用;③获取多领域(如微电网、无人机、车间调度)的算法复现与创新思路; 阅读建议:建议按目录顺序系统浏览,重点关注算法原理与代码实现的对应关系,结合提供的网盘资源下载完整代码进行调试与复现,同时注重从已有案例中提炼可迁移的科研方法与创新路径。
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)内容概要:本文提出了一种基于非支配排序的蜣螂优化算法(NSDBO),用于求解微电网多目标优化调度问题。该方法结合非支配排序机制,提升了传统蜣螂优化算法在处理多目标问题时的收敛性和分布性,有效解决了微电网调度中经济成本、碳排放、能源利用率等多个相互冲突目标的优化难题。研究构建了包含风、光、储能等多种分布式能源的微电网模型,并通过Matlab代码实现算法仿真,验证了NSDBO在寻找帕累托最优解集方面的优越性能,相较于其他多目标优化算法表现出更强的搜索能力和稳定性。; 适合人群:具备一定电力系统或优化算法基础,从事新能源、微电网、智能优化等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于微电网能量管理系统的多目标优化调度设计;②作为新型智能优化算法的研究与改进基础,用于解决复杂的多目标工程优化问题;③帮助理解非支配排序机制在进化算法中的集成方法及其在实际系统中的仿真实现。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注非支配排序、拥挤度计算和蜣螂行为模拟的结合方式,并可通过替换目标函数或系统参数进行扩展实验,以掌握算法的适应性与调参技巧。
本项目是一个以经典51系列单片机——STC89C52为核心,设计实现的一款高性价比数字频率计。它集成了信号输入处理、频率测量及直观显示的功能,专为电子爱好者、学生及工程师设计,旨在提供一种简单高效的频率测量解决方案。 系统组成 核心控制器:STC89C52单片机,负责整体的运算和控制。 信号输入:兼容多种波形(如正弦波、三角波、方波)的输入接口。 整形电路:采用74HC14施密特触发器,确保输入信号的稳定性和精确性。 分频电路:利用74HC390双十进制计数器/分频器,帮助进行频率的准确测量。 显示模块:LCD1602液晶显示屏,清晰展示当前测量的频率值(单位:Hz)。 电源:支持标准电源输入,保证系统的稳定运行。 功能特点 宽频率测量范围:1Hz至12MHz,覆盖了从低频到高频的广泛需求。 高灵敏度:能够识别并测量幅度小至1Vpp的信号,适合各类微弱信号的频率测试。 直观显示:通过LCD1602液晶屏实时显示频率值,最多显示8位数字,便于读取。 扩展性设计:基础版本提供了丰富的可能性,用户可根据需要添加更多功能,如数据记录、报警提示等。 资源包含 原理图:详细的电路连接示意图,帮助快速理解系统架构。 PCB设计文件:用于制作电路板。 单片机程序源码:用C语言编写,适用于Keil等开发环境。 使用说明:指导如何搭建系统,以及基本的操作方法。 设计报告:分析设计思路,性能评估和技术细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值