- 2019-07-09 AutoCompleteTextView 问题
皮皮铭
实现自定义Adapter要实现Filterable接口,不然会报错重写getFilter()方法performFiltering()方法实现过滤数据的操作publishResults()用来接收performFiltering()的返回值,发布。
- Spring Security定义多个过滤器链(10)
小黑屋说YYDS
spring
在SpringSecurity中可以同时存在多个过滤器链,一个WebSecurityConfigurerAdapter的实例就可以配置一条过滤器链。我们来看如下一个案例:@ConfigurationpublicclassSecurityConfig{@BeanUserDetailsServiceus(){InMemoryUserDetailsManagerusers=newInMemoryUser
- netty-简易聊天
2401_84046645
程序员java开发语言
publicvoidsend(Stringtext){channel.writeAndFlush(Unpooled.copiedBuffer(text.getBytes()));}publicvoidcloseConnect(){send(“bye”);channel.close();}}classMyHandlerextendsChannelInboundHandlerAdapter{@Over
- Kotlin 代替Java接口回调,就这么简单
深海呐
Android#Kotlinjavakotlin开发语言
假如你使用旧的接口回调:通常三步:1定义接口和方法;2使用接口中方法;3继承接口并实现方法;例:classXXXAdapter{publicvarmClickCollBack:clickCollBack?=null//1定义interfaceclickCollBack{//1定义funclick(int:Int)//1定义}itemView.setOnClickListener{mClickCol
- Android面试从新手到架构师,一篇解析就够(1),跳槽字节跳动
m0_60607609
程序员androidjava面试后端
5.抽象工厂模式:结构型(7):描述如何将类或对象按某种规则组成更大的结构1.桥接模式:对于两个或以上纬度独立变化的场景,将抽象与具体实现分离,实例:用不同颜色画不同形状2.外观模式:对外有一个统一接口,外部不用关心内部子系统的具体实现,这是"迪米特原则"的典型应用3.适配器模式:改变类的接口,使原本由于接口不匹配而无法一起工作的两个类能够在一工作,实例:RecycleView的Adapter不管
- 六边形六边形架构(Hexagonal Architecture),也被称为端口和适配器架构(Ports and Adapters Architecture),是一种软件架构模式,用于构建可测试、可维护
leijmdas
golang
六边形架构(HexagonalArchitecture),也被称为端口和适配器架构(PortsandAdaptersArchitecture),是一种软件架构模式,用于构建可测试、可维护和灵活的应用程序。这种架构模式的核心思想是将应用程序的核心业务逻辑(Domain)与外部系统(Ports)和适配器(Adapters)解耦,使得核心业务逻辑独立于具体的技术实现和外部依赖。在六边形架构中,核心业务逻
- MFC 得到本机IP和设置本机的IP
zq4132
ULONGWINAPIGetAdaptersAddresses( __in ULONGFamily, __in ULONGFlags, __in PVOIDReserved, __inout PIP_ADAPTER_ADDRESSESAdapterAddresses, __inout PULONGSizePointer);第一个参数Family是网络协议族,用户可以指定
- adapter
巫山老妖_
dependencies{compilefileTree(include:['*.jar'],dir:'libs')androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',{excludegroup:'com.android.support',module:'support-annotations'})c
- Unity3d学习笔记
明月海子
Mecanin动画系统.pngNavigation导航系统.pngShader渲染基础.png面向对象六大原则.png策略模式Strategy.png工厂模式Factory产品工厂.png观察者Observer.png结构设计模式总结.png模板方法模式TemplateMethod.png适配器模式Adapter.png外观模式Facade.png职责连模式ChainofResponsibilit
- 软考 - 系统架构设计师 - 设计模式
小林想被监督学习
系统架构设计师系统架构设计模式
目录概念创建型设计模式抽象工厂模式(AbstractFactoryPattern)优点缺点应用场景总结构建器模式(BuilderPattern)优点缺点应用场景工厂方法模式(factorymethod)优点缺点应用场景原型模式(prototype)优点缺点应用场景单例模式(Singleton)优点缺点应用场景结构型设计模式适配器模式(Adapter)优点缺点应用场景桥接模式(Bridge)优点缺点
- Android 蓝牙服务启动
薛文旺
Android系统android
蓝牙是Android设备中非常常见的一个feature,设备厂家可以用BT来做RC、连接音箱、设备本身做Sink等常见功能。如果一些设备不需要BT功能,Android也可以通过配置来disable此模块,方便厂家为自己的设备做客制化。APP操作设备的蓝牙功能,一般是通过标准API-BluetoothAdapter实现,这里我们先不关心具体API的实现flow,先来了解Bluetoothframew
- Android kotlin开发项目MVP架构搭建
哎吆我呸
androidKotlin初入门
1、引入需要的网络库implementation'com.squareup.retrofit2:retrofit:2.7.1'implementation'com.squareup.retrofit2:converter-gson:2.7.1'implementation'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.
- 软件开发架构(四) - COLA架构
The_sprite
软件开发架构架构系统架构
COLA(CleanObject-OrientedandLayeredArchitecture)COLA是阿里巴巴开源的应用架构,旨在帮助开发者轻松构建复杂的业务应用。它将应用程序分为四个主要部分:适配器层、应用层、领域层和基础设施层。在Java开发中,COLA常用于构建大型、复杂的企业级应用。适配器层(AdapterLayer):负责处理来自外部的请求并返回响应。在Java中,这可能是基于Spr
- 深入解析:23种软件设计模式详解及其分类(创建型、结构型、行为型)附代码示例DEMO
J^T
设计模式C/C++设计模式装饰器模式组合模式观察者模式单例模式23种设计模式
目录引言一、创建型模式1.简单工厂模式(SimpleFactoryPattern)2.抽象工厂模式(AbstractFactoryPattern)3.单例模式(SingletonPattern)4.建造者模式(BuilderPattern)5.原型模式(PrototypePattern)二、结构型模式1.适配器模式(AdapterPattern)2.桥接模式(BridgePattern)3.装饰器
- 1500仿真 下载时显示不兼容设备
sanzk
c#
下载时显示plc但是红色状态,显示不兼容设备,无法下载方法一:1、需要将SiemensPLCSIMVirtualEthernetAdapter虚拟网卡设置为PLC相同网段2、项目--属性:设置为允许仿真3、plc--属性:允许远程连接对象put/get访问方法二:PLC类型可能不对,选择正确PLC类型
- 腾讯地图SDK Android版开发 10 InfoWindow
程序喵D
腾讯地图Android开发android腾讯地图
腾讯地图SDKAndroid版开发10InfoWindow前言介绍默认风格自定义样式实现方式交互操作播放信息窗口的动画开启多窗口模式相关类和接口默认样式MarkerOptions类Marker类TencentMap类TencentMap.OnInfoWindowClickListener接口类自定义样式TencentMap类TencentMap.InfoWindowAdapter接口示例界面布局M
- 八、适配器模式
磊-
设计模式适配器模式
适配器模式(AdapterPattern)是一种结构型设计模式,它允许不兼容的接口之间进行合作。适配器模式通过创建一个适配器类来转换一个接口的接口,使得原本由于接口不兼容无法一起工作的类可以一起工作。
- Android学习之RecyclerView快速添加头部布局
如果可以003
Androidandroid布局
众所周知我们的ListView、GridView都可以增加头部布局;这样在遇到复杂的头部布局就不用增加视图类型了,不管是对于代码的可维护性还是整洁性;在Adapter中写又臭又长的代码,无论是自己看还是留给后来者都是痛苦的,而且你要是把代码都堆在getView中,ohno!我要分分钟切腹自尽…RecyclerView增加头部布局传统方式真的不是我懒,真的;传统方式我相信大家应该都会了,好吧我还是简
- oracle数据库免密登录失败sqlplus / as sysdba ERROR: ORA-12560: TNS:protocol adapter error Enter user-name:
黄三狗
oracleoraclesysdba12560
一、问题场景描述(建议解决问题之前一定要看这个,仔细对比自己是不是也是这种情况)首先,声明一下我的oracle数据库版本是12c1.输入sqlplus/assysdba免密登录时报如下错误,甚至用管理员身份运行“命令提示符”也不行2.oracle服务一切正常3.sqlplus可以正常连接4.pl/sql也可以正常连接5.在oracle的bin目录下可以连接
- 【可控图像生成系列论文(四)】IP-Adapter 具体是如何训练的?1公式篇
多恩Stone
AIGCDiffusionTransformer计算机视觉深度学习pythonAIGCpytorch机器学习人工智能
系列文章目录【可控图像生成系列论文(一)】简要介绍了MimicBrush的整体流程和方法;【可控图像生成系列论文(二)】就MimicBrush的具体模型结构、训练数据和纹理迁移进行了更详细的介绍。【可控图像生成系列论文(三)】介绍了一篇相对早期(2018年)的可控字体艺术化工作。文章目录系列文章目录前言〇、文生图模型预备知识1.训练目标2.无分类器指导(classifier-freeguidanc
- android解决FragmentPagerAdapter刷新问题
crush_d872
项目中目前需要完成一个需求,具体如下:用户在无网络情况下要展示缓存数据,而我们的首页中采用了viewpager+fragment的形式进行数据的展示,联网之后还需要整体刷新数据,我们第一版所采用的刷新方式是这样的:publicvoidsetFragments(Listfragments){if(this.mFragmentList!=null){FragmentTransactionft=frag
- 20240902软考架构-------软考96-100答案解析
杨诚实
软考架构架构
每日打卡题96-100答案96、【2018年真题】难度:难CORBA服务端构件模型中,是CORBA对象的真正实现,负责完成客户端请求。A.伺服对象(Servant)B.对象适配器(ObjectAdapter)C.对象请求代理(ObjectRequestBroker)D.适配器激活器(AdapterActivator)答案:A解析:伺服对象(Servant):CORBA对象的真正实现,负责完成客户端
- Android 网络编程一
uniapp
Android的ListView采用MVC的方式显示,Model代表显示条目实体,View代表ListView,C代表Adapter。相比iOS中Controller和View相互融合的处境,Android中的MVC更加清新自然。Google在Android中预制了很多示例Demo,集中放在了ApiDemo中,代码可以从github上单独下载。在Mac下的地址为Library/Android/sd
- Trimmomatic 数据过滤
生信编程日常
Trimmomatic是一个很常用的Illumina平台数据过滤工具。支持SE和PE测序数据。主要用来去除Illumina平台的fastq序列中的接头,并根据碱基质量值对fastq进行修剪。用法:Trimmomatic=~/biotools/Trimmomatic-0.36/trimmomatic-0.36.jaradapter=~/biotools/Trimmomatic-0.36/adapte
- canal-adapter消费Kafka中MySQL的binlog数据,却没有同步更新Elastic search
iiopsd
kafkamysqljavaelasticsearch
背景在同步MySQL数据到ES的场景中,选择了canal组件同步数据。问题描述在同步的时候发现canal-adapter中canal-adapter/conf/es7/product.yml配置文件中sql语句连表查询的时候会出现无法更新Elasticsearch中数据的情况,而且日志没有提示异常(idea启动的时候有错误日志),令人百思不得其解。问题分析初步估计是内部解析yml的时候出错了,但具
- SpringMVC 第一次复学笔记
会有黎明吗
学习记录笔记
服务器启动时,创建spring容器;dispatcherServlet启动时,直接创建springmvc容器初始化一次,实现了springmvc和spring的整合。SpringMVC里的组件处理器映射器(HandlerMapping)负责匹配映射路径对应的Handler,返回可执行的处理器链对象HandlerExecutionChain对象。处理器适配器(HandlerAdapter)负责匹配H
- 设计模式-结构性模式
$驽马十驾$
设计模式
结构型模式1.适配器模式(AdapterPattern)2.桥接模式(BridgePattern)3.装饰器模式(DecoratorPattern)步骤1:定义咖啡接口步骤2:具体的咖啡类步骤3:装饰器抽象类步骤4:具体的装饰器类步骤5:使用装饰器4.组合模式(CompositePattern)4.1定义组件接口4.2实现基本的图形4.3实现复合图形4.4客户端代码5.外观模式(FacadePat
- 【大模型】Agent基础知识
idiotyi
大模型人工智能自然语言处理
目录1.基本框架2.常见推理模式2.1ReAct:SynergizingReasoningandActinginLanguageModels2.2Reflection2.3LATS:LanguageAgentsTreeSearch3.微调3.1全模型微调(FullModelFine-Tuning)3.2冻结部分层微调(Layer-wiseFine-Tuning)3.3适配器(Adapters)3.
- 23种设计模式(GOF)
gb4215287
javajava
设计模式(GOF)分为三种类型,共23类。1、单例模式(Singleton)2、原型模式(Prototype)简单工厂模式(SimpleFactoryMode)3、工厂方法模式(FactoryMethod)4、抽象工厂模式(AbstractFactory)5、建造者模式(Builder)6、代理模式(Proxy)7、适配器模式(Adapter)8、桥接模式(Bridge)9、装饰器模式(Decor
- Dubbo与Netty
蹩脚的小三
CodecCodecSupportAbstractCodecTransportCodecCodecAdapterDispacherChannelHandlersDispatcherAllDispatcherAllChannelHandlerChannelEventRunnableWrappedChannelHandlerChannelHandlerChannelHandlerAdapterChan
- 解线性方程组
qiuwanchi
package gaodai.matrix;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Sc
- 在mysql内部存储代码
annan211
性能mysql存储过程触发器
在mysql内部存储代码
在mysql内部存储代码,既有优点也有缺点,而且有人倡导有人反对。
先看优点:
1 她在服务器内部执行,离数据最近,另外在服务器上执行还可以节省带宽和网络延迟。
2 这是一种代码重用。可以方便的统一业务规则,保证某些行为的一致性,所以也可以提供一定的安全性。
3 可以简化代码的维护和版本更新。
4 可以帮助提升安全,比如提供更细
- Android使用Asynchronous Http Client完成登录保存cookie的问题
hotsunshine
android
Asynchronous Http Client是android中非常好的异步请求工具
除了异步之外还有很多封装比如json的处理,cookie的处理
引用
Persistent Cookie Storage with PersistentCookieStore
This library also includes a PersistentCookieStore whi
- java面试题
Array_06
java面试
java面试题
第一,谈谈final, finally, finalize的区别。
final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能
- 网站加速
oloz
网站加速
前序:本人菜鸟,此文研究总结来源于互联网上的资料,大牛请勿喷!本人虚心学习,多指教.
1、减小网页体积的大小,尽量采用div+css模式,尽量避免复杂的页面结构,能简约就简约。
2、采用Gzip对网页进行压缩;
GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNⅨ系统的文件压缩。我们在Linux中经常会用到后缀为.gz
- 正确书写单例模式
随意而生
java 设计模式 单例
单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁,那这篇文章可能会帮助到你。
懒汉式,线程不安全
当被问到要实现一个单例模式时,很多人的第一反应是写出如下的代码,包括教科书上也是这样
- 单例模式
香水浓
java
懒汉 调用getInstance方法时实例化
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if(null == ins
- 安装Apache问题:系统找不到指定的文件 No installed service named "Apache2"
AdyZhang
apachehttp server
安装Apache问题:系统找不到指定的文件 No installed service named "Apache2"
每次到这一步都很小心防它的端口冲突问题,结果,特意留出来的80端口就是不能用,烦。
解决方法确保几处:
1、停止IIS启动
2、把端口80改成其它 (譬如90,800,,,什么数字都好)
3、防火墙(关掉试试)
在运行处输入 cmd 回车,转到apa
- 如何在android 文件选择器中选择多个图片或者视频?
aijuans
android
我的android app有这样的需求,在进行照片和视频上传的时候,需要一次性的从照片/视频库选择多条进行上传
但是android原生态的sdk中,只能一个一个的进行选择和上传。
我想知道是否有其他的android上传库可以解决这个问题,提供一个多选的功能,可以使checkbox之类的,一次选择多个 处理方法
官方的图片选择器(但是不支持所有版本的androi,只支持API Level
- mysql中查询生日提醒的日期相关的sql
baalwolf
mysql
SELECT sysid,user_name,birthday,listid,userhead_50,CONCAT(YEAR(CURDATE()),DATE_FORMAT(birthday,'-%m-%d')),CURDATE(), dayofyear( CONCAT(YEAR(CURDATE()),DATE_FORMAT(birthday,'-%m-%d')))-dayofyear(
- MongoDB索引文件破坏后导致查询错误的问题
BigBird2012
mongodb
问题描述:
MongoDB在非正常情况下关闭时,可能会导致索引文件破坏,造成数据在更新时没有反映到索引上。
解决方案:
使用脚本,重建MongoDB所有表的索引。
var names = db.getCollectionNames();
for( var i in names ){
var name = names[i];
print(name);
- Javascript Promise
bijian1013
JavaScriptPromise
Parse JavaScript SDK现在提供了支持大多数异步方法的兼容jquery的Promises模式,那么这意味着什么呢,读完下文你就了解了。
一.认识Promises
“Promises”代表着在javascript程序里下一个伟大的范式,但是理解他们为什么如此伟大不是件简
- [Zookeeper学习笔记九]Zookeeper源代码分析之Zookeeper构造过程
bit1129
zookeeper
Zookeeper重载了几个构造函数,其中构造者可以提供参数最多,可定制性最多的构造函数是
public ZooKeeper(String connectString, int sessionTimeout, Watcher watcher, long sessionId, byte[] sessionPasswd, boolea
- 【Java命令三】jstack
bit1129
jstack
jstack是用于获得当前运行的Java程序所有的线程的运行情况(thread dump),不同于jmap用于获得memory dump
[hadoop@hadoop sbin]$ jstack
Usage:
jstack [-l] <pid>
(to connect to running process)
jstack -F
- jboss 5.1启停脚本 动静分离部署
ronin47
以前启动jboss,往各种xml配置文件,现只要运行一句脚本即可。start nohup sh /**/run.sh -c servicename -b ip -g clustername -u broatcast jboss.messaging.ServerPeerID=int -Djboss.service.binding.set=p
- UI之如何打磨设计能力?
brotherlamp
UIui教程ui自学ui资料ui视频
在越来越拥挤的初创企业世界里,视觉设计的重要性往往可以与杀手级用户体验比肩。在许多情况下,尤其对于 Web 初创企业而言,这两者都是不可或缺的。前不久我们在《右脑革命:别学编程了,学艺术吧》中也曾发出过重视设计的呼吁。如何才能提高初创企业的设计能力呢?以下是 9 位创始人的体会。
1.找到自己的方式
如果你是设计师,要想提高技能可以去设计博客和展示好设计的网站如D-lists或
- 三色旗算法
bylijinnan
java算法
import java.util.Arrays;
/**
问题:
假设有一条绳子,上面有红、白、蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,
您希望将之分类,并排列为蓝、白、红的顺序,要如何移动次数才会最少,注意您只能在绳
子上进行这个动作,而且一次只能调换两个旗子。
网上的解法大多类似:
在一条绳子上移动,在程式中也就意味只能使用一个阵列,而不使用其它的阵列来
- 警告:No configuration found for the specified action: \'s
chiangfai
configuration
1.index.jsp页面form标签未指定namespace属性。
<!--index.jsp代码-->
<%@taglib prefix="s" uri="/struts-tags"%>
...
<s:form action="submit" method="post"&g
- redis -- hash_max_zipmap_entries设置过大有问题
chenchao051
redishash
使用redis时为了使用hash追求更高的内存使用率,我们一般都用hash结构,并且有时候会把hash_max_zipmap_entries这个值设置的很大,很多资料也推荐设置到1000,默认设置为了512,但是这里有个坑
#define ZIPMAP_BIGLEN 254
#define ZIPMAP_END 255
/* Return th
- select into outfile access deny问题
daizj
mysqltxt导出数据到文件
本文转自:http://hatemysql.com/2010/06/29/select-into-outfile-access-deny%E9%97%AE%E9%A2%98/
为应用建立了rnd的帐号,专门为他们查询线上数据库用的,当然,只有他们上了生产网络以后才能连上数据库,安全方面我们还是很注意的,呵呵。
授权的语句如下:
grant select on armory.* to rn
- phpexcel导出excel表简单入门示例
dcj3sjt126com
PHPExcelphpexcel
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Brows
- 美国电影超短200句
dcj3sjt126com
电影
1. I see. 我明白了。2. I quit! 我不干了!3. Let go! 放手!4. Me too. 我也是。5. My god! 天哪!6. No way! 不行!7. Come on. 来吧(赶快)8. Hold on. 等一等。9. I agree。 我同意。10. Not bad. 还不错。11. Not yet. 还没。12. See you. 再见。13. Shut up!
- Java访问远程服务
dyy_gusi
httpclientwebservicegetpost
随着webService的崛起,我们开始中会越来越多的使用到访问远程webService服务。当然对于不同的webService框架一般都有自己的client包供使用,但是如果使用webService框架自己的client包,那么必然需要在自己的代码中引入它的包,如果同时调运了多个不同框架的webService,那么就需要同时引入多个不同的clien
- Maven的settings.xml配置
geeksun
settings.xml
settings.xml是Maven的配置文件,下面解释一下其中的配置含义:
settings.xml存在于两个地方:
1.安装的地方:$M2_HOME/conf/settings.xml
2.用户的目录:${user.home}/.m2/settings.xml
前者又被叫做全局配置,后者被称为用户配置。如果两者都存在,它们的内容将被合并,并且用户范围的settings.xml优先。
- ubuntu的init与系统服务设置
hongtoushizi
ubuntu
转载自:
http://iysm.net/?p=178 init
Init是位于/sbin/init的一个程序,它是在linux下,在系统启动过程中,初始化所有的设备驱动程序和数据结构等之后,由内核启动的一个用户级程序,并由此init程序进而完成系统的启动过程。
ubuntu与传统的linux略有不同,使用upstart完成系统的启动,但表面上仍维持init程序的形式。
运行
- 跟我学Nginx+Lua开发目录贴
jinnianshilongnian
nginxlua
使用Nginx+Lua开发近一年的时间,学习和实践了一些Nginx+Lua开发的架构,为了让更多人使用Nginx+Lua架构开发,利用春节期间总结了一份基本的学习教程,希望对大家有用。也欢迎谈探讨学习一些经验。
目录
第一章 安装Nginx+Lua开发环境
第二章 Nginx+Lua开发入门
第三章 Redis/SSDB+Twemproxy安装与使用
第四章 L
- php位运算符注意事项
home198979
位运算PHP&
$a = $b = $c = 0;
$a & $b = 1;
$b | $c = 1
问a,b,c最终为多少?
当看到这题时,我犯了一个低级错误,误 以为位运算符会改变变量的值。所以得出结果是1 1 0
但是位运算符是不会改变变量的值的,例如:
$a=1;$b=2;
$a&$b;
这样a,b的值不会有任何改变
- Linux shell数组建立和使用技巧
pda158
linux
1.数组定义 [chengmo@centos5 ~]$ a=(1 2 3 4 5) [chengmo@centos5 ~]$ echo $a 1 一对括号表示是数组,数组元素用“空格”符号分割开。
2.数组读取与赋值 得到长度: [chengmo@centos5 ~]$ echo ${#a[@]} 5 用${#数组名[@或
- hotspot源码(JDK7)
ol_beta
javaHotSpotjvm
源码结构图,方便理解:
├─agent Serviceab
- Oracle基本事务和ForAll执行批量DML练习
vipbooks
oraclesql
基本事务的使用:
从账户一的余额中转100到账户二的余额中去,如果账户二不存在或账户一中的余额不足100则整笔交易回滚
select * from account;
-- 创建一张账户表
create table account(
-- 账户ID
id number(3) not null,
-- 账户名称
nam