Android使用泛型的地方很多,比如集成自BaseAdapter实现封装的Adapter,对常用操作进行封装,但是需要对传进来的数据进行处理,此时就使用到泛型,示例如下:
public abstract class EasyAdapter extends BaseAdapter {
private LayoutInflater inflater;
private int layoutId;
private List mlist = new ArrayList();
public EasyAdapter(Context context, int layoutId, List list) {
super();
this.inflater = LayoutInflater.from(context);
this.layoutId = layoutId;
this.mlist = list;
}
/**
* 往顶部添加数据
*
* @param list
*/
public void add2Head(List list) {
mlist.addAll(0, list);
notifyDataSetChanged();
}
public void clearAll() {
mlist.clear();
notifyDataSetChanged();
}
public List getAllList() {
return mlist;
}
/**
* 往底部添加数据
*
* @param list
*/
public void add2Bottom(List list) {
mlist.addAll(list);
notifyDataSetChanged();
}
public void add2Bottom(T t) {
mlist.add(t);
notifyDataSetChanged();
}
/**
* @Title: updateListView
* @Description: TODO(更新BaseAdapter中的数据)
* @param @param list 设定文件
* @return void 返回类型
* @throws
*/
public void updateListView(List list) {
mlist = list;
notifyDataSetChanged();
}
@Override
public int getCount() {
return mlist.size();
}
@Override
public T getItem(int position) {
return mlist.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
/**
* 实际显示View的方法,使用抽象方法强制调用者覆写!
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = ViewHolder.getViewHolder(parent, convertView,
inflater, layoutId);
convert(viewHolder, mlist.get(position));
return viewHolder.getConvertView();
}
public abstract void convert(ViewHolder viewHolder, T t);
}
还有就是比如解析json,json的bean各有不同:
public class GsonImpl extends Json {
private Gson gson = new Gson();
@Override
public String toJson(Object src) {
return gson.toJson(src);
}
@Override
public T toObject(String json, Class claxx) {
return gson.fromJson(json, claxx);
}
@Override
public T toObject(byte[] bytes, Class claxx) {
return gson.fromJson(new String(bytes), claxx);
}
@Override
public List toList(String json, Class claxx) {
Type type = new TypeToken>() {}.getType();
List list = gson.fromJson(json, type);
return list;
}
}
下面着重复习java基础中有关泛型的知识点:
首先:泛型是java1.5提供的新特性;主要是为了解决数据类型的安全性问题,是在类声明的时候通过一个标示表示类中某个属性的类型或者是某个方法的返回值以及参数类型。这样在类声明或者实例化的时候只要指定好需要的类型即可。
泛型定义方法如下:
如下为实际使用方式:
public class Point {
private T data;
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
能够更好的保护数据类型,避免编译时出错。减少类型转换的代码。 当然可以通过设置构造方法的参数为泛型来进行泛型操作的值传递。
在开发中对象的引用传递是最常见的,但是在泛型操作中,进行引用传递的时候泛型必须匹配才可以传递,否则无法传递。
class Info{
private T var ; // 定义泛型变量
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
public String toString(){ // 直接打印
return this.var.toString() ;
}
};
public class GenericsDemo14{
public static void main(String args[]){
Info i = new Info() ; // 使用String为泛型类型
i.setVar("MLDN") ; // 设置内容
fun(i) ;
}
public static void fun(Info temp){ // 可以接收任意的泛型对象
System.out.println("内容:" + temp) ;
}
};
使用?可以接受任意类型的数据,却无法进行修改,?w为通配符。
受限泛型
class Info
{
private T var; // 定义泛型变量
public T getVar() {
return var;
}
public void setVar(T var) {
this.var = var;
}
public String toString(){ // 直接打印
return var.toString();
}
}
public class GenericsDemo17 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Info info1 = new Info(); // 声明Integer的泛型对象
Info info2 = new Info(); // 声明Float的泛型对象
Info info3 = new Info();
info1.setVar(30); // 设置整数,自动装箱
info2.setVar(30.1F); // 设置小数,自动装箱
info3.setVar("俺是字符串,不能被受限的FUN组装");
fun(info1);
fun(info2);
// fun(info3); //受限了,不能调用这个
}
/**
* 可以接收任意的泛型对象(// 只能接收Number及其Number的子类)
* @param temp
*/
public static void fun(Info temp){
// 只能接收String或Object类型的泛型
//public static void fun(Info temp){
System.out.println("内容:"+temp);
}
}
不仅仅在使用过程中,也可以在定义类的时候指定泛型上限:
class Info{ // 此处泛型只能是数字类型
private T var ; // 定义泛型变量
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
public String toString(){ // 直接打印
return this.var.toString() ;
}
};
public class GenericsDemo19{
public static void main(String args[]){
Info i1 = new Info() ; // 声明Integer的泛型对象
}
};
如果设置成Stirng类型就会出现错误:
GenericsDemo20.java:15: 类型参数 java.lang.String 不在 其限制范围之内
Info i1 = new Info() ;// 声明Integer的 泛型对象
String 不是Number的子类,最高不能超过Number的子类。 设置下限 ===== 泛型适用于本类以及父类类型上的时候,必须使用泛型下限。
如下只能接受String以及String的父类。最低不能接受Stirng类及其父类以外的类。
class Info{
private T var ; // 定义泛型变量
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
public String toString(){ // 直接打印
return this.var.toString() ;
}
};
public class GenericsDemo21{
public static void main(String args[]){
Info i1 = new Info() ; // 声明String的泛型对象
Info i2 = new Info() ; // 声明Object的泛型对象
i1.setVar("hello") ;
i2.setVar(new Object()) ;
fun(i1) ;
fun(i2) ;
}
public static void fun(Info temp){ // 只能接收String或Object类型的泛型
System.out.print(temp + "、") ;
}
};
注意:子类无法使用父类的泛型类型进行接受。
class Info{
private T var ; // 定义泛型变量
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
public String toString(){ // 直接打印
return this.var.toString() ;
}
};
public class GenericsDemo23{
public static void main(String args[]){
Info i1 = new Info() ; // 泛型类型为String
Info i2 = null ;
i2 = i1 ;
}
};
就会报如下错误:
GenericsDemo23.java:17: 不兼容的类型
找到: Info
需要: Info
i2 = i1 ;
泛型接口:
在jdk1.5以后,不仅仅可以声明泛型类,也可以声明泛型接口,泛型接口很类似泛型类:
访问权限 +interface +接口名称 + <泛型标示>{} 泛型接口实现的两种方式 ============== 1、
interface Info{ // 在接口上定义泛型
public T getVar() ; // 定义抽象方法,抽象方法的返回值就是泛型类型
}
class InfoImpl implements Info{ // 定义泛型接口的子类
private String var ; // 定义属性
public InfoImpl(String var){ // 通过构造方法设置属性内容
this.setVar(var) ;
}
public void setVar(String var){
this.var = var ;
}
public String getVar(){
return this.var ;
}
};
public class GenericsDemo{
public static void main(String arsg[]){
Info i = null; // 声明接口对象
i = new InfoImpl("soyoungboy") ; // 通过子类实例化对象
System.out.println("内容:" + i.getVar()) ;
}
};
2、
interface Info{ // 在接口上定义泛型
public T getVar() ; // 定义抽象方法,抽象方法的返回值就是泛型类型
}
class InfoImpl implements Info{ // 定义泛型接口的子类
private T var ; // 定义属性
public InfoImpl(T var){ // 通过构造方法设置属性内容
this.setVar(var) ;
}
public void setVar(T var){
this.var = var ;
}
public T getVar(){
return this.var ;
}
};
public class GenericsDemo{
public static void main(String arsg[]){
Info i = null; // 声明接口对象
i = new InfoImpl("soyoungboy") ; // 通过子类实例化对象
System.out.println("内容:" + i.getVar()) ;
}
};
泛型方法:
泛型方法定义:
访问权限 +<泛型标示>+泛型标示 方法名称(泛型标示 参数名称)
class Demo{
public T fun(T t){ // 可以接收任意类型的数据
return t ; // 直接把参数返回
}
};
public class GenericsDemo{
public static void main(String args[]){
Demo d = new Demo() ; // 实例化Demo对象
String str = d.fun("soyoungboy") ; // 传递字符串
int i = d.fun(30) ; // 传递数字,自动装箱
System.out.println(str) ; // 输出内容
System.out.println(i) ; // 输出内容
}
};
通过泛型方法返回泛型类的实例
class Info{ // 指定上限,只能是数字类型
private T var ; // 此类型由外部决定
public T getVar(){
return this.var ;
}
public void setVar(T var){
this.var = var ;
}
public String toString(){ // 覆写Object类中的toString()方法
return this.var.toString() ;
}
};
public class GenericsDemo27{
public static void main(String args[]){
Info i = fun(30) ;
System.out.println(i.getVar()) ;
}
public static Info fun(T param){
Info temp = new Info() ; // 根据传入的数据类型实例化Info
temp.setVar(param) ; // 将传递的内容设置到Info对象的var属性之中
return temp ; // 返回实例化对象
}
};
如果同一方法参数使用泛型,应该保证泛型类型一致:
class Info{ // 指定上限,只能是数字类型
private T var ; // 此类型由外部决定
public T getVar(){
return this.var ;
}
public void setVar(T var){
this.var = var ;
}
public String toString(){ // 覆写Object类中的toString()方法
return this.var.toString() ;
}
};
public class GenericsDemo{
public static void main(String args[]){
Info i1 = new Info() ;
Info i2 = new Info() ;
i1.setVar(30) ; // 设置内容
i2.setVar("aoyoungboy") ; // 设置内容
add(i1,i2) ;
}
public static void add(Info i1,Info i2){
System.out.println(i1.getVar() + " " + i2.getVar()) ;
}
};
就会产生错误:
【泛型】_泛型的其他应用\代码>javac GenericsDemo.java
GenericsDemo29.java:19: 无法将 GenericsDemo 中的 add(Info,Info) 应用
于 (Info,Info)
add(i1,i2) ;
泛型数组
使用泛型方法的时候,也可以传递或者返回一个泛型数组:
public class GenericsDemo{
public static void main(String args[]){
Integer i[] = fun1(1,2,3,4,5,6) ; // 返回泛型数组
fun2(i) ;
}
public static T[] fun1(T...arg){ // 接收可变参数
return arg ; // 返回泛型数组
}
public static void fun2(T param[]){ // 输出
System.out.print("接收泛型数组:") ;
for(T t:param){
System.out.print(t + "、") ;
}
}
};
泛型嵌套:
class Info{ // 接收两个泛型类型
private T var ;
private V value ;
public Info(T var,V value){
this.setVar(var) ;
this.setValue(value) ;
}
public void setVar(T var){
this.var = var ;
}
public void setValue(V value){
this.value = value ;
}
public T getVar(){
return this.var ;
}
public V getValue(){
return this.value ;
}
};
class Demo{
private S info ;
public Demo(S info){
this.setInfo(info) ;
}
public void setInfo(S info){
this.info = info ;
}
public S getInfo(){
return this.info ;
}
};
public class GenericsDemo{
public static void main(String args[]){
Demo> d = null ; // 将Info作为Demo的泛型类型
Info i = null ; // Info指定两个泛型类型
i = new Info("李兴华",30) ; // 实例化Info对象
d = new Demo>(i) ; // 在Demo类中设置Info类的对象
System.out.println("内容一:" + d.getInfo().getVar()) ;
System.out.println("内容二:" + d.getInfo().getValue()) ;
}
};
你可能感兴趣的:(泛型的作用及使用场景)
Cannot resolve symbol AppCompatActivity
浪巫谣
首先检查gradle.propertes里有没有添加compile"com.android.support:appcompat-v7:22.0.0"如果添加了还出现错误,可以尝试去File->InvalidateCaches/Restart,清除缓存,貌似大部分由于新旧版本缓存冲突导致的问题都可以用这个方法解决。参考资料:https://stackoverflow.com/questions/29
学生福利:畅享 Adobe 全系列软件的小技巧
reddingtons
adobe
作为一名学生,我有幸通过学生邮箱免费使用Adobe的全系列软件。这意味着我可以使用包括Photoshop、Illustrator、PremierePro和AfterEffects在内的所有收费软件。这些工具为我的学习和创作提供了巨大的便利。接下来,我将分享五个冷门的Adobe软件小技巧,帮助大家更高效地使用这些强大的工具。(以下有可能包含收费软件的内容,不适用于免费用户,请谅解)1.Photosh
Linux系统编程:网络编程与Socket通信详解
Dev-Kilig
Linux linux 网络 运维
引言网络编程是Linux系统编程的核心内容之一,而Socket是实现网络通信的基石。无论是Web服务器、即时通讯工具还是分布式系统,都依赖于Socket进行数据传输。本文将深入讲解Socket编程的基本概念,并通过C语言实现一个完整的TCP客户端-服务器通信示例,帮助初学者掌握网络编程的核心技能。一、Socket编程基础1.1什么是Socket?Socket(套接字)是网络通信的端点,用于在不同主
有没有大佬看得懂这是怎么错的
qq_43343841
C++
有没有大佬看得懂这是怎么错的errorC2511:‘func1’:overloadedmemberfunction‘classstd::basic_string(classstd::basic_string,classstd::basic_string)’notfoundin‘student’
Android 提示 Cannot resolve symbol ‘AppCompatActivity‘ 问题解决,亲测可用
流萤灯
android 项目 android studio android
今天从gihub上clone别人的代码学习,发现publicclassMainActivityextendsAppCompatActivityAppCompatActivity一直报错Cannotresolvesymbol'AppCompatActivity’就算已经import了对应的包,import语句也是灰的,不起作用importandroid.support.v7.app.AppCompa
✨JMH(Java Microbenchmark Harness)✨
魔镜前的帅比
java 开发语言
JMH(JavaMicrobenchmarkHarness)是一个专门用于编写、运行和分析Java微基准测试的工具。它由OpenJDK团队开发,旨在提供精确的基准测试结果,避免常见的基准测试陷阱,如JVM的优化、即时编译(JIT)等影响。核心知识点基准测试的目的基准测试用于测量代码的性能,通常是在微秒或纳秒级别。它可以帮助开发者识别性能瓶颈,优化代码。JMH的特点精确性:JMH通过多次迭代和预热来
const成员函数及错误提示error C2511: 'void Tack::Set_Data(void) const' : overloaded member function not found
喜欢做我自己
C++ const成员函数 C++
对于成员函数Set_Data()来说,其无法保证调用对象不被修改,如果要像const一样不被修改,可以使用一种新的语法来保证函数不会修改调用对象。在C++语法中,可以将const关键字放到函数的括号后面。//函数声明处classTack{private:std::stringm_hello;longm_shares;intm_num;doublem_value;public:Tack();void
IDEA-快捷键积累
Mr.Debug
快捷键 intellij idea
文章目录前言一、使用步骤1.debug常用2.查找前言windows系统自己idea的debug快捷键记录。一、使用步骤1.debug常用alt+F10跳转到正在执行的行2.查找Alt+F7查找类或方法在哪被使用Ctrl+H查看类的继承关系,例如HashMap的父类是AbstractMap,子类则有一大堆。Ctrl+F12当前类中查找一个方法快捷键例如在String类中查找contains方法。第
伺服报警的含义
c#上位机
运动控制
前言:大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发C#的运动控制程序的时候,一个必要的步骤就是设置伺服报警信号的高低电平,下面进行详细介绍如何实现这一需求!1、伺服报警1.1脉冲卡对于雷赛的脉冲卡,使用自带的Motion软件打开以后,在单轴参数设置中可以找到关于伺服报警相关的设置,如下图:在程序中设置报警信号的高低电平
脉冲当量含义
c#上位机
运动控制
前言:大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发C#的运动控制程序的时候,一个必要的步骤就是设置每个轴的脉冲当量,下面进行详细介绍如何实现这一需求!1、脉冲当量的概念设置脉冲当量的值可以让我们自定义运动距离的单位,假设发100脉冲,轴运动1mm。1)以脉冲为单位假设我们想要实现控制距离的单位是脉冲,也就是我给控制卡下
IDEA快捷键大全
aabond
java intellij-idea java intellij idea keymap
一、IDEA常用快捷键可通过IDEA菜单栏Help->KeymapReference查看二、查看快捷键功能和修改三、常用快捷键以下是我在工作和学习中会用到的快捷键注:以下快捷键后加*表示十分常用3.1ALT快捷键含义ALT+7显示当前类结构ALT+Delete安全删除ALT+Enter*显示智能操作列表ALT+F1选择当前类在多种视图中择一显示ALT+F7查看类/方法/属性/参数等的使用情况ALT
java后端开发面试常问
躲在没风的地方
java面试题 java 面试 spring
面试常问问题1spring相关(1)@Transactional失效的场景@Transactional注解默认只会回滚运行时异常(RuntimeException),如果方法中抛出了其他异常,则事务不会回滚(数据库数据仍然插入成功了)。@Transactional(rollbackFor=Exception.class)如果方法中有trycatch语句,并且抛出的异常的代码被try捕获,那么方法上
认识sm1,sm2,sm3,sm4以及如何在Node.js实现
努力学习各种软件
node.js python 爬虫
概述国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。国密算法是指国家密码管理局认定的一系列国产密码算法,包括SM1-SM9以及ZUC等。其中SM1、SM4、SM5、SM6、SM7、SM8、ZUC等属于对称密码,SM2、SM9等属于公钥密码(非对称加密)SM3属于单向散列函数。目前我国主要使用公开的SM2、SM3、SM4作为商用密码算法。其中
IDEA中常用快捷键
以码令天下
后端 JAVA java 开发语言
IDEA中的快捷键在IDEA中快速生成if(变量==null):ifn在IDEA中快速生成main方法:psvm在IDEA中快速生成Sytem.out.println():sout删除一行:Ctrl+yIDEA是自动保存的对于目录:左箭头关闭,右箭头打开IDEA中任何窗口的关闭:Esc窗口的变大、变小:shift+Ctrl+F12或者Alt+1切换窗口:Alt+左/右箭头快速运行:Ctrl+shi
ERROR C2514:XXX类没有构造函数
jigetage
MFC
今天在自动化测试工具中添加【重置】测试项时,在主控的.h头文件中通过classCResetTest;的方式引入了测试项的类,但是在主控的.cpp实现文件中调用该类时,提示ERRORC2514:CResetTest类没有构造函数的错误。很明显,二逼也不会在新建一个类的时候不添加构造函数的,那这是为什么呢?原来是因为在主控的.cpp实现文件中需要通过include包含测试项类所在的头文件。加入#inc
Amaze UI web mobile 前端框架
iteye_20240
ui 前端框架 移动开发
目录结构index.html-空白HTML模板;blog.html-博客页面模板(预览);landing.html-LandingPage模板(预览);login.html-登录界面模板(预览);sidebar.html-带边栏的文章模板(预览);在app.css中编写CSS;在app.js中编写JavaScript;移动端首选Zepto,桌面端选jQuery,这应该是大多数开发者的共识。那对于跨
Intellij IDEA快捷键大全汇总
harryptter
java java intellij idea
转载自:http://www.jb51.net/softjc/261714.htmlAlt+回车导入包,自动修正Ctrl+N查找类Ctrl+Shift+N查找文件Ctrl+Alt+L格式化代码Ctrl+Alt+O优化导入的类和包Alt+Insert生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C最近更改的代码Ctrl+R替换文本Ctrl+F查找文本Ctrl+Shi
神级Office插件——不坑盒子
不坑老师
word excel microsoft powerpoint wps
不坑盒子是一款专为提升办公效率而设计的Office和WPS插件。它通过提供自动化、一键操作等功能,帮助用户在工作中更加轻松自如。该插件支持多种实用功能,如文档模板管理、批量处理文档、智能排版、数据提取与分析等,并且兼容Windows7以上操作系统,以及Office2010及以上版本和WPS非阉割版。不坑盒子的特点包括但不限于:一键排版功能、一键删除、一件替换、图片处理、仿写功能、稿子模板等。此外,
不坑盒子Office插件:全能助手,办公效率的革命性提升
不坑老师
microsoft word excel powerpoint wps
在快节奏的办公环境中,时间就是金钱,效率就是生命。不坑盒子Office插件,一款专为Word、Excel、PPT和WPS三件套设计的全能办公助手,致力于让办公工作变得更加轻松、高效。一键式自动化,让复杂工作变简单自动排版:快速设置正文、标题格式,告别手动调整。OCR文字识别:图片文字快速转换,需要腾讯云OCR接口支持。化学公式编辑:自动排版化学方程式,让科学文档更专业。表格智能填充:一键编号填充,
单片机C语言程序设计实训 100例—基于 8051+Proteus仿真
星河776(重名区分)
《单片机C语言程序设计实训100例—基于8051+Proteus仿真》案例第01篇基础程序设计01闪烁的LED/*名称:闪烁的LED说明:LED按设定的时间间隔闪烁*/#include#defineucharunsignedchar#defineuintunsignedintsbitLED=P1^0;//延时voidDelayMS(uintx){uchari;while(x--){for(i=0;
显示Class 'Think\Controller\FuController' not found和Call to a member function assign() on a non-object...
akesuy0400
php
Class'Think\Controller\FuController'notfound错误位置FILE:D:\wamp\www\tinkphp\Application\Come\Controller\IndexController.class.phpLINE:5问题出现在Tink,文件路径不对,把它换成Come就可以了。问题出现在控制器里面的__construct()方法覆盖掉了父类的构造方法,
支持Windows和Linux系统的Python定时关机脚本
星河776(重名区分)
python
以下是一个支持Windows和Linux系统的Python定时关机脚本,允许设置定时关机或取消关机计划:importsysimportosimportdatetimeimportctypesimportredefis_admin():"""检查是否具有管理员权限"""ifos.name=='nt':try:returnctypes.windll.shell32.IsUserAnAdmin()exc
网络安全-攻击流程-网络层
星河776(重名区分)
网络安全 web安全 php 安全 网络安全
网络层攻击主要针对OSI模型中的第三层(网络层),涉及IP协议、路由机制等核心功能。攻击者通过操纵数据包、路由信息或协议漏洞实施破坏。以下是典型的网络层攻击流程及防御方法:一、网络层攻击通用流程1.信息收集(Reconnaissance)目标扫描:使用工具(如nmap、hping3)扫描目标IP范围,识别活跃主机和开放端口。路由追踪:通过traceroute或tracert探测网络路径,分析路由拓
常见的几种设计模式(详细)——应用场景和实现方式
QiuYanping_
设计模式 单例模式 观察者模式 工厂方法模式 装饰器模式 策略模式 责任链模式
文章目录单例模式应用实现工厂模式应用实现❓策略模式应用实现⚖️代理模式应用实现观察者模式(发布订阅模式)应用实现装饰器模式应用实现模版方法模式应用实现⛓️责任链模式应用实现单例模式整个程序运行过程中,类只有一个实例,减少内存消耗应用资源管理:需要共享的资源如数据库连接池、线程池等,确保只有一个实例管理这些资源全局配置:配置类日志记录器:在多线程或分布式环境中确保日志记录器唯一性实现实现时注意:构
招聘管理的核心挑战与创新策略
JiYan_cyan
业界资讯
招聘管理的核心挑战与创新策略一、招聘管理的定义及其重要性招聘管理作为企业人力资源管理的重要环节,是指企业为了弥补岗位空缺、提升组织效能而进行的系统性的人才寻找和吸引活动。在当前竞争激烈的市场环境下,招聘管理显得尤为重要。它关乎企业的生存和发展,决定了企业能否及时获取关键人才,进而推动企业的创新和竞争力。首先,有效的招聘管理能够确保企业及时获取符合岗位需求的高素质人才。在人才竞争激烈的市场中,谁能够
功率器件与芯片区别,一文带你读懂
JiYan_cyan
业界资讯
功率器件与芯片区别,一文带你读懂!一、功率器件与芯片的基本概念差异1、功率器件,顾名思义,是指用于实现电能转换和控制的元器件,如整流器、逆变器、开关等。它们的主要特点是承受较大的电流和电压,以及具备较高的功率处理能力。功率器件广泛应用于电力电子、汽车电子、工业自动化等领域,是现代电子系统的重要组成部分。2、芯片则是指内含集成电路的硅片,它包含了数以亿计的晶体管,实现了复杂的电路功能。芯片是电子设备
SMBJ110A瞬态抑制二极管的规格参数与应用领域
GR8953
二极管 肖特基二极管 单片机 嵌入式硬件 c语言 算法 物联网
一、基本特性类型:贴片瞬变抑制TVS二极管。极性:单向。封装:表面贴装,如DO-214AA封装,优化了电路板空间,具有低电感、塑料包装(具有保险商实验室可燃性94V-0认证)等特点。功率:具有600W的峰值功率能力,在10×1000μs波形下的重复率(占空比)为0.01%。响应速度:快速响应时间,从0伏特到最小击穿电压通常小于1.0ps。温度特性:高温焊接保证,如260°C/40秒或250°C/1
【环境配置】Jupyter Notebook切换虚拟环境
Bosenya12
jupyter ide python
在JupyterNotebook中是可以切换虚拟环境的,以下是几种常见的方法:方法一:使用nb_conda_kernels扩展(适用于Anaconda环境)安装如果你使用的是Anaconda环境,首先确保你已经安装了nb_conda包。如果没有安装,在AnacondaPrompt中运行以下命令:condainstallnb_conda然后安装nb_conda_kernels:condainstal
自学黑客(网络安全),一般人我劝你还是算了吧
网安周星星
web安全 安全 windows 网络 网络安全
基于入门网络安全/黑客打造的:黑客&网络安全入门&进阶学习资源包文章讲述了自学网络安全时常见的误区,如先学编程、过度追求深度学习以及收集过多资料,并提供了前期学习的硬件、软件选择建议,强调了基础编程知识和英文能力的重要性。文中给出了详细的学习路线,包括基础操作入门、实战操作以及参加CTF和HVV等竞赛来提升技能,并推荐了一系列相关书籍和学习资源。一、自学网络安全学习的误区和陷阱1.不要试图先成为一
C++ ——this指针
小禾苗_
c++ 开发语言
1、概念(1)this指针是一个特殊的指针,存储的对象的首地址(2)类的成员函数(包括构造函数和析构函数)内部,隐含一个this指针,指向对象的首地址(3)类内部,访问对象的成员变量或者调用对象的成员方法,都是通过this指针完成的,即使没有显示写出this,编译器也会自动添加this指向谁?谁调用指向谁(哪个对象调用就指向哪个对象的首地址)2、应用2.1区分同名参数和成员属性classPerso
用MiddleGenIDE工具生成hibernate的POJO(根据数据表生成POJO类)
AdyZhang
POJO eclipse Hibernate MiddleGenIDE
推荐:MiddlegenIDE插件, 是一个Eclipse 插件. 用它可以直接连接到数据库, 根据表按照一定的HIBERNATE规则作出BEAN和对应的XML ,用完后你可以手动删除它加载的JAR包和XML文件! 今天开始试着使用
.9.png
Cb123456
android
“点九”是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png
智能手机中有自动横屏的功能,同一幅界面会在随着手机(或平板电脑)中的方向传感器的参数不同而改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化而产生拉伸,造成图形的失真变形。
我们都知道android平台有多种不同的分辨率,很多控件的切图文件在被放大拉伸后,边
算法的效率
天子之骄
算法效率 复杂度 最坏情况运行时间 大O阶 平均情况运行时间
算法的效率
效率是速度和空间消耗的度量。集中考虑程序的速度,也称运行时间或执行时间,用复杂度的阶(O)这一标准来衡量。空间的消耗或需求也可以用大O表示,而且它总是小于或等于时间需求。
以下是我的学习笔记:
1.求值与霍纳法则,即为秦九韶公式。
2.测定运行时间的最可靠方法是计数对运行时间有贡献的基本操作的执行次数。运行时间与这个计数成正比。
java数据结构
何必如此
java 数据结构
Java 数据结构
Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类:
枚举(Enumeration)
位集合(BitSet)
向量(Vector)
栈(Stack)
字典(Dictionary)
哈希表(Hashtable)
属性(Properties)
以上这些类是传统遗留的,在Java2中引入了一种新的框架-集合框架(Collect
MybatisHelloWorld
3213213333332132
//测试入口TestMyBatis
package com.base.helloworld.test;
import java.io.IOException;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibat
Java|urlrewrite|URL重写|多个参数
7454103
java xml Web 工作
个人工作经验! 如有不当之处,敬请指点
1.0 web -info 目录下建立 urlrewrite.xml 文件 类似如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE u
达梦数据库+ibatis
darkranger
sql mysql ibatis SQL Server
--插入数据方面
如果您需要数据库自增...
那么在插入的时候不需要指定自增列.
如果想自己指定ID列的值, 那么要设置
set identity_insert 数据库名.模式名.表名;
----然后插入数据;
example:
create table zhabei.test(
id bigint identity(1,1) primary key,
nam
XML 解析 四种方式
aijuans
android
XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。本文将详细介绍用Java解析XML的四种方法。
XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object
spring中配置文件占位符的使用
avords
1.类
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.o
前端工程化-公共模块的依赖和常用的工作流
bee1314
webpack
题记: 一个人的项目,还有工程化的问题嘛? 我们在推进模块化和组件化的过程中,肯定会不断的沉淀出我们项目的模块和组件。对于这些沉淀出的模块和组件怎么管理?另外怎么依赖也是个问题? 你真的想这样嘛? var BreadCrumb = require(‘../../../../uikit/breadcrumb’); //真心ugly。
上司说「看你每天准时下班就知道你工作量不饱和」,该如何回应?
bijian1013
项目管理 沟通 IT职业规划
问题:上司说「看你每天准时下班就知道你工作量不饱和」,如何回应
正常下班时间6点,只要是6点半前下班的,上司都认为没有加班。
Eno-Bea回答,注重感受,不一定是别人的
虽然我不知道你具体从事什么工作与职业,但是我大概猜测,你是从事一项不太容易出现阶段性成果的工作
TortoiseSVN,过滤文件
征客丶
SVN
环境:
TortoiseSVN 1.8
配置:
在文件夹空白处右键
选择 TortoiseSVN -> Settings
在 Global ignote pattern 中添加要过滤的文件:
多类型用英文空格分开
*name : 过滤所有名称为 name 的文件或文件夹
*.name : 过滤所有后缀为 name 的文件或文件夹
--------
【Flume二】HDFS sink细说
bit1129
Flume
1. Flume配置
a1.sources=r1
a1.channels=c1
a1.sinks=k1
###Flume负责启动44444端口
a1.sources.r1.type=avro
a1.sources.r1.bind=0.0.0.0
a1.sources.r1.port=44444
a1.sources.r1.chan
The Eight Myths of Erlang Performance
bookjovi
erlang
erlang有一篇guide很有意思: http://www.erlang.org/doc/efficiency_guide
里面有个The Eight Myths of Erlang Performance: http://www.erlang.org/doc/efficiency_guide/myths.html
Myth: Funs are sl
java多线程网络传输文件(非同步)-2008-08-17
ljy325
java 多线程 socket
利用 Socket 套接字进行面向连接通信的编程。客户端读取本地文件并发送;服务器接收文件并保存到本地文件系统中。
使用说明:请将TransferClient, TransferServer, TempFile三个类编译,他们的类包是FileServer.
客户端:
修改TransferClient: serPort, serIP, filePath, blockNum,的值来符合您机器的系
读《研磨设计模式》-代码笔记-模板方法模式
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
配置心得
chenyu19891124
配置
时间就这样不知不觉的走过了一个春夏秋冬,转眼间来公司已经一年了,感觉时间过的很快,时间老人总是这样不停走,从来没停歇过。
作为一名新手的配置管理员,刚开始真的是对配置管理是一点不懂,就只听说咱们公司配置主要是负责升级,而具体该怎么做却一点都不了解。经过老员工的一点点讲解,慢慢的对配置有了初步了解,对自己所在的岗位也慢慢的了解。
做了一年的配置管理给自总结下:
1.改变
从一个以前对配置毫无
对“带条件选择的并行汇聚路由问题”的再思考
comsci
算法 工作 软件测试 嵌入式 领域模型
2008年上半年,我在设计并开发基于”JWFD流程系统“的商业化改进型引擎的时候,由于采用了新的嵌入式公式模块而导致出现“带条件选择的并行汇聚路由问题”(请参考2009-02-27博文),当时对这个问题的解决办法是采用基于拓扑结构的处理思想,对汇聚点的实际前驱分支节点通过算法预测出来,然后进行处理,简单的说就是找到造成这个汇聚模型的分支起点,对这个起始分支节点实际走的路径数进行计算,然后把这个实际
Oracle 10g 的clusterware 32位 下载地址
daizj
oracle
Oracle 10g 的clusterware 32位 下载地址
http://pan.baidu.com/share/link?shareid=531580&uk=421021908
http://pan.baidu.com/share/link?shareid=137223&uk=321552738
http://pan.baidu.com/share/l
非常好的介绍:Linux定时执行工具cron
dongwei_6688
linux
Linux经过十多年的发展,很多用户都很了解Linux了,这里介绍一下Linux下cron的理解,和大家讨论讨论。cron是一个Linux 定时执行工具,可以在无需人工干预的情况下运行作业,本文档不讲cron实现原理,主要讲一下Linux定时执行工具cron的具体使用及简单介绍。
新增调度任务推荐使用crontab -e命令添加自定义的任务(编辑的是/var/spool/cron下对应用户的cr
Yii assets目录生成及修改
dcj3sjt126com
yii
assets的作用是方便模块化,插件化的,一般来说出于安全原因不允许通过url访问protected下面的文件,但是我们又希望将module单独出来,所以需要使用发布,即将一个目录下的文件复制一份到assets下面方便通过url访问。
assets设置对应的方法位置 \framework\web\CAssetManager.php
assets配置方法 在m
mac工作软件推荐
dcj3sjt126com
mac
mac上的Terminal + bash + screen组合现在已经非常好用了,但是还是经不起iterm+zsh+tmux的冲击。在同事的强烈推荐下,趁着升级mac系统的机会,顺便也切换到iterm+zsh+tmux的环境下了。
我为什么要要iterm2
切换过来也是脑袋一热的冲动,我也调查过一些资料,看了下iterm的一些优点:
* 兼容性好,远程服务器 vi 什么的低版本能很好兼
Memcached(三)、封装Memcached和Ehcache
frank1234
memcached ehcache spring ioc
本文对Ehcache和Memcached进行了简单的封装,这样对于客户端程序无需了解ehcache和memcached的差异,仅需要配置缓存的Provider类就可以在二者之间进行切换,Provider实现类通过Spring IoC注入。
cache.xml
<?xml version="1.0" encoding="UTF-8"?>
Remove Duplicates from Sorted List II
hcx2013
remove
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,Given 1->2->3->3->4->4->5,
Spring4新特性——注解、脚本、任务、MVC等其他特性改进
jinnianshilongnian
spring4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
MySQL安装文档
liyong0802
mysql
工作中用到的MySQL可能安装在两种操作系统中,即Windows系统和Linux系统。以Linux系统中情况居多。
安装在Windows系统时与其它Windows应用程序相同按照安装向导一直下一步就即,这里就不具体介绍,本文档只介绍Linux系统下MySQL的安装步骤。
Linux系统下安装MySQL分为三种:RPM包安装、二进制包安装和源码包安装。二
使用VS2010构建HotSpot工程
p2p2500
HotSpot OpenJDK VS2010
1. 下载OpenJDK7的源码:
http://download.java.net/openjdk/jdk7
http://download.java.net/openjdk/
2. 环境配置
▶
Oracle实用功能之分组后列合并
seandeng888
oracle 分组 实用功能 合并
1 实例解析
由于业务需求需要对表中的数据进行分组后进行合并的处理,鉴于Oracle10g没有现成的函数实现该功能,且该功能如若用JAVA代码实现会比较复杂,因此,特将SQL语言的实现方式分享出来,希望对大家有所帮助。如下:
表test 数据如下:
ID,SUBJECTCODE,DIMCODE,VALUE
1&nbs
Java定时任务注解方式实现
tuoni
java spring jvm xml jni
Spring 注解的定时任务,有如下两种方式:
第一种:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http
11大Java开源中文分词器的使用方法和分词效果对比
yangshangchuan
word分词器 ansj分词器 Stanford分词器 FudanNLP分词器 HanLP分词器
本文的目标有两个:
1、学会使用11大Java开源中文分词器
2、对比分析11大Java开源中文分词器的分词效果
本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那要用的人结合自己的应用场景自己来判断。
11大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口:
/**
* 获取文本的所有分词结果, 对比