1、厚墨今天给大家安利一款阅读软件-厚墨。可以免费看出版书籍,网文,期刊,还支持RSS顶阅。没有广告,白色主题,非常干净。大小只有7M左右,遗憾的是仅支持安卓。丰富全面的书源刚打开厚墨你会发现空空如也,非常干净。软件不提供书源,需要你自己添加书源。厚墨和之前推荐的阅读最大的区别就是不需要去别的地方找书源。在厚墨里面操作几下就可以添加100+书源。首先打开菜单栏发现,选择书源,然后按照指引进入书源仓库,输入暗码,验证仓库就可以添加书源。暗码在哪里?开发者提示的简直不要太明显,就是例如后面的四组数字。先输入1212点击验证仓库,再输入2000验证仓库,再输入2333验证仓库,最后输入9713验证仓库。完事之后返回就可以啦。返回就可以看到添加的100多个书源,这些书源你可以选择安装和卸载。并且每个书源还标注了出版,网文和综合,可以添加自己喜欢类型。添加多个也没关系,搜索书籍速度也很快。干净舒适的阅读体验书源添加后,你就可以在首页的发现栏目搜索书籍了。可以搜索书名和作者。可以添加书架。除了搜索书籍,你还可以打开排行,有些书源提供了排行榜,也就是分类吧,不知道看什么的话,可以尝试下排行榜。中学生读物非常不错,各种文学名著,名人传记,百家讲坛。期刊杂志也很棒,读者,意林,看天下等等。前提是你在第一步添加这些书源了。书源:必看网,中医古籍也不错,学医的小伙伴可以添加书源看看。看书的时候一些设置也很棒,比如排版,主题,夜间模式,缓存,右上角的更换书源,沉浸式状态栏,目录,翻页设置等等。自由的排版对我这种老年人真的很贴心,字可以调大点,间距啥的也可以调大点。支持RSS订阅非常难得的是厚墨支持RSS订阅。在设置里面可以调出RSS阅读,可以固定到底部显示。菜单栏第二个就出现了RSS订阅。内部提供了一些,不算多,以后更新会增加一些吧。也可以自己添加,不过不保证能添加成功了,我测试优设网添加成功了,知乎啥的都没成功。RSS阅读体验也很棒。基本就是原页面。厚墨也有一些付费功能,不过免费的就够用了,也不需要注册登录啥的,还是很方便的。目前没有一个广告。厚墨可以说是安卓端最好用的阅读软件了。2、时光序时光序,找回时间,改变自己时光序最基本的功能就是做计划,安排日程。做自己的天计划,周计划,月计划,并且添加到每天的日程里面,克服惰性,执行是关键。我之前给大家推荐过很多习惯养成类APP,比如微软的To-Do,小日常,pendo等等。我为什么还有推荐时光序?因为时光序有自己的特点。时光序还有四象限功能,右滑显示页面,设置重要和紧急程度,清楚明了。时光序还有一个特色是左滑显示一周的七天安排,以周为单位,并按时间排序,很清楚明了。时光序还支持做清单,比如学习清单,健康清单,工作清单等等,做个清单,不遗忘重要的事情。时光序还有很多强大实用的功能,比如专注,记账,倒数日,纪念日,生日等等,日常生活中会用到的功能。我之前给大家推荐了一款APP日子,可以记录一些重要事情,并显示倒数日,这个小功能时光序就可以做到,当然日子还有别的实用功能。记录一些重要的亲朋好友的生日,记录和某人的纪念日...给生活增添点小惊喜~时光序支持安卓和苹果,基本免费,有邀请机制,基本功能够用,交互很棒。3、词根词记忆字典(安卓/IOS)词根词缀记忆字典有查单词,词根词缀,生词本,背单词,名著阅读,词汇杂谈,语法,单词笔记等功能。是一个开发者独立开发的,独立整理词汇16W个,一个用心的产品。4、英语电台(安卓/IOS)数千人打赏的免费学英语APP,基本没有广告。它有广播,考试,影视,品牌,听力,单词,口语,歌曲,美文,新闻,900句这些栏目。考试类别有少儿,小学,高中,四六级,专四专八托福雅思托业等等。视频学里面有很多英语视频,比如TED演讲,BBC等等。电台就不用说啦,名字就是英语电台,电台非常丰富,涉及音乐,影视,新闻,科技,体育,演讲等等5、Papago(安卓/IOS)
有哪些黑科技App可以推荐一下?
1、厚墨今天给大家安利一款阅读软件-厚墨。可以免费看出版书籍,网文,期刊,还支持RSS顶阅。没有广告,白色主题,非常干净。大小只有7M左右,遗憾的是仅支持安卓。丰富全面的书源刚打开厚墨你会发现空空如也,非常干净。软件不提供书源,需要你自己添加书源。厚墨和之前推荐的阅读最大的区别就是不需要去别的地方找书源。在厚墨里面操作几下就可以添加100+书源。首先打开菜单栏发现,选择书源,然后按照指引进入书源仓库,输入暗码,验证仓库就可以添加书源。暗码在哪里?开发者提示的简直不要太明显,就是例如后面的四组数字。先输入1212点击验证仓库,再输入2000验证仓库,再输入2333验证仓库,最后输入9713验证仓库。完事之后返回就可以啦。返回就可以看到添加的100多个书源,这些书源你可以选择安装和卸载。并且每个书源还标注了出版,网文和综合,可以添加自己喜欢类型。添加多个也没关系,搜索书籍速度也很快。干净舒适的阅读体验书源添加后,你就可以在首页的发现栏目搜索书籍了。可以搜索书名和作者。可以添加书架。除了搜索书籍,你还可以打开排行,有些书源提供了排行榜,也就是分类吧,不知道看什么的话,可以尝试下排行榜。中学生读物非常不错,各种文学名著,名人传记,百家讲坛。期刊杂志也很棒,读者,意林,看天下等等。前提是你在第一步添加这些书源了。书源:必看网,中医古籍也不错,学医的小伙伴可以添加书源看看。看书的时候一些设置也很棒,比如排版,主题,夜间模式,缓存,右上角的更换书源,沉浸式状态栏,目录,翻页设置等等。自由的排版对我这种老年人真的很贴心,字可以调大点,间距啥的也可以调大点。支持RSS订阅非常难得的是厚墨支持RSS订阅。在设置里面可以调出RSS阅读,可以固定到底部显示。菜单栏第二个就出现了RSS订阅。内部提供了一些,不算多,以后更新会增加一些吧。也可以自己添加,不过不保证能添加成功了,我测试优设网添加成功了,知乎啥的都没成功。RSS阅读体验也很棒。基本就是原页面。厚墨也有一些付费功能,不过免费的就够用了,也不需要注册登录啥的,还是很方便的。目前没有一个广告。厚墨可以说是安卓端最好用的阅读软件了。2、时光序时光序,找回时间,改变自己时光序最基本的功能就是做计划,安排日程。做自己的天计划,周计划,月计划,并且添加到每天的日程里面,克服惰性,执行是关键。我之前给大家推荐过很多习惯养成类APP,比如微软的To-Do,小日常,pendo等等。我为什么还有推荐时光序?因为时光序有自己的特点。时光序还有四象限功能,右滑显示页面,设置重要和紧急程度,清楚明了。时光序还有一个特色是左滑显示一周的七天安排,以周为单位,并按时间排序,很清楚明了。时光序还支持做清单,比如学习清单,健康清单,工作清单等等,做个清单,不遗忘重要的事情。时光序还有很多强大实用的功能,比如专注,记账,倒数日,纪念日,生日等等,日常生活中会用到的功能。我之前给大家推荐了一款APP日子,可以记录一些重要事情,并显示倒数日,这个小功能时光序就可以做到,当然日子还有别的实用功能。记录一些重要的亲朋好友的生日,记录和某人的纪念日...给生活增添点小惊喜~时光序支持安卓和苹果,基本免费,有邀请机制,基本功能够用,交互很棒。3、词根词记忆字典(安卓/IOS)词根词缀记忆字典有查单词,词根词缀,生词本,背单词,名著阅读,词汇杂谈,语法,单词笔记等功能。是一个开发者独立开发的,独立整理词汇16W个,一个用心的产品。4、英语电台(安卓/IOS)数千人打赏的免费学英语APP,基本没有广告。它有广播,考试,影视,品牌,听力,单词,口语,歌曲,美文,新闻,900句这些栏目。考试类别有少儿,小学,高中,四六级,专四专八托福雅思托业等等。视频学里面有很多英语视频,比如TED演讲,BBC等等。电台就不用说啦,名字就是英语电台,电台非常丰富,涉及音乐,影视,新闻,科技,体育,演讲等等5、Papago(安卓/IOS)
如果小伙伴只想使用最基本的翻译功能,可以尝试下Papago。鹦鹉可以翻译十种语言,中文繁简体,英文,韩文,日文,西班牙文,法文,越南语,泰语,印度尼西亚语。
Papago的翻译界面非常简单,直接输入就可以啦,字号可以调整。支持语音翻译,支持拍照翻译,图片翻译,手指涂抹内容即可翻译。
Papago还有一个功能是可以链接其它的APP,翻译其它APP上的内容。比如你正在使用简书APP,里面有需要翻译的内容,你可以打开Papago的PapagoMini功能(左上角打开)把需要翻译的句子复制后,PapagoMini可以自动为你翻译。Papago还有国际会话功能,你可以选择不同的情景,选择相应的全球对话,让沟通更加方便,比较实用。Papago还有一个很实用的功能是实时对话模式,它可以让你在实际沟通受阻的情况下...好受一点。6、英语读书(安卓/IOS)边读书边学英语,书城里面又世界名著,名人传记,畅销书籍,经典小说,基础读物,经典文字。还有武侠小说。还可以按难度分类去学习,有小初高,考研雅思托福,入门初级中级高级进阶。还有科幻小说,儿童读物,短篇小说,思想读物,小说专题。=
7、Polly
非常好用的RSS阅读器,实用强大简单精美的资讯阅读APP
里面你可以自由订阅的内容非常多, 有科学,IT,文章写作,电影电视,游戏,学英语,财经,设计,经理人,体育,摄影等等。图文并茂的文章,还可以做一些设置,让阅读体验更好。
其中不乏我之前推荐过的实用平台,比如知乎日报,好奇心日报,虎嗅网,36氪,爱范儿和少数派等等。
Polly仅支持安卓,安卓大小4M左右,完全免费,没有广告,给你最好的阅读体验,不需要自己导入RSS源,也是一个缺点把,不过提供RSS源很丰富。果粉可以尝试下之前推荐的ZAKER,AppStore评分4.8分。8、一个木函
一个木函大小只有几M,但是里面有超多实用的小工具,完全不占内存。比如日常应用:翻译,汇率转换,快递查询,生成和还原短链,指南针等等。还有图片应用:以图搜图,图片压缩,GIF合成分解,取色器,图片拼接,文字转图,带壳截图等等。
一个木函还有一些第三方应用和设备应用:获取B站封面,修改设备名称,氢壁纸,WIFI密码查看,电量校准,云音乐启动图替换等等。
一个木函还有一些清理应用,转码应用,其它应用:空文件清理,视频转音频,进制转换,MD5加密,历史上今天,百度云提速,全球IP查询,磁力搜索等等。9、开眼开眼是一款看世界的APP,让没一个人都开眼。视觉盛宴,大开眼界。里面的短视频质量非常高,种类也很丰富,很多国外的视频,都是高清的,剪辑非常棒,随便一个截图都可以做壁纸了...在这里可以学到很多,摄影,设计,视频剪辑,创意,生活,科学。里面有很多专题,比如旅行,摄影,全景,创意,音乐,记录,动画,生活,搞笑,萌宠,运动等等。还有一些作者你都可以关注,很多作者的作品质量很棒。设置好自己喜欢的内容,智能推荐就不会推荐乱七八糟的东西了开眼里面还有社区,很多小伙伴分享作品,我没想到的是,这些作品质量很棒。你可以关注一些自己喜欢的内容,比如我关注了一些设计,摄影,旅行,美食类的前几天我见有几个小伙伴回复达芬奇调色,在这里面也可以学习配色。
开眼还有很多科普,学习一些知识,启发一些创意。看见新疆,好美~
开眼支持安卓和苹果,完全免费,安卓大小20M左右,设计感很棒,质量很高。10、西窗烛何当共剪西窗烛,却话巴山夜雨时。西窗烛是一款诗词APP,获得过苹果今日主题,主力推荐,也曾获得过教育榜第一。个人体验了一下,设计的很精美,内容也很精美。打开APP映出眼帘的是摘录,一篇诗词的选段。我今天的是李清照的多丽·咏白菊的选段。小手轻轻点击一下,你还可以看见整首诗词的注释,很方便,很利于我们学习诗词。西窗烛里面有创作,就是一个社区,你可以在里面分享自己的创作,也可以看别人的创作。西窗烛里面有发现,发现里面有付费的市集和书店,还有一些免费的音频,必比如小学生可以学习的日有所诵,诗歌,文学,教育等等。西窗烛里面有文库,文库里面是作品和作者,分类非常详细,可以很快找到你需要的诗词。最后很喜欢它的桌面小部件,每日一赏,打开手机就可以看到,还可以随机更换,很方便。西窗烛支持安卓和苹果,很不错的诗词APP11、欧路词典欧路词典是一款学习英语的APP。有词典,翻译,生词笔记,单词复习功能。词典里面有每日一句,每日听力,每日配音,功能还挺丰富。查词功能有离线词库,中文百科参考,英文百科参考,原声例句,英语例句库,学单词更简单。欧路词典还有跨软件取词功能,拍照翻译,高亮标记,笔记同步,语音输入,等实用功能。欧路词典支持安卓和苹果,安卓大小34M左右,不完全免费,不过基本功能够用。12、照片扫描仪照片扫描仪是一款出自谷歌的APP,用来扫描旧照片,能有效的处理掉老照片常见的问题,比如反光和裁剪等。通过简单的分步流程进行扫描,轻松获取无炫光的扫描内容;根据边缘检测进行自动裁剪;还有透视校正功能和只能旋转功能。老照片,旧照片,满满的回忆,扫描的过程也是勾起你记忆的过程。用这款扫描仪可以“随身携带”老照片照片扫描仪支持安卓和苹果,安卓大小20M左右,没有广告,完全免费。13、MXPlayerMXPlayer是一款非常好用的安卓播放器,支持多种字幕格式,硬件解码,多核心解码,触屏缩放手势,字幕滑动功能MXPlayer是安卓播放器的佼佼者,我给大家提供的是去广告版和汉化版的。MXPlayer仅支持安卓,大小15M左右,苹果可以尝试下itunes,nPlayer,我都放在今天的链接里。14、墨墨背单词一款相对比较小众的背单词APP,它有自己的特色。两种独特的记忆模式,看英文回忆中文模式,快速认知单词;看中文回忆英文模式,深入记忆单词,可验证拼写。给单词三种选择,认识,模糊,不认识,精准定位单词下次的复习时间。现在背单词的APP有很多,其实吧,关键还是看自己的,工具很重要,自己的主动学习更重要。墨墨背单词有很多单词书,比如小初高英语,四六级,专四专八,考研考博,新概念,托福雅思托业,BEC,GRE,SAT,ACT等等,词库非常丰富。墨墨背单词支持安卓和苹果,没有广告,基本免费,坚持打卡可以获取单词上限,值得安利。15、一席一席是剧场式的现场演讲,结合网络视频进行传播,平台会经常邀请一些业界大咖来演讲,目前国内外近700位讲者和表演嘉宾登上一席的舞台。分享见解,体验和对未来的想象,做有价值的传播。它是一扇门,让你看到不一样的风景TED一直很有名,一席也算是的TED吧,正在追赶。一席演讲类别设计广泛,包括社会,设计,历史,文化,记录,科技,艺术等等一席包括五大类,分别是讲演,万象,枝桠,现场,记录。一席讲演栏有608多个演讲视频;万象栏有古物,有建筑,有人文,包罗万象;枝桠是个人的演讲,别人的思想和经验,比如作家毕飞宇,音乐人崔健等等现场就是一些现场演讲,分期进行,目前已经70期啦;记录就是一些记录片,对生活的感悟。一席支持安卓和苹果,当然也有网站,安卓大小25M左右,APP做的还是很精美的。16、白描白描是一款图片文字识别APP,识别精度很高。白描可以批量处理图片,表格识别,文件扫描。WIFI识别和翻译。试下效果吧~可以看到没有错误,而且还可以校对,翻译,导出和复制打开灯功能,白描的一些细节功能做的很棒。白描的操作很简单,而且作者还很贴心的准备了使用手册,手册写的非常清楚白描支持安卓和苹果,安卓大小13M左右,没有广告,不完全免费,基本功能够用。不过20多块钱就可以购买永久会员啦。17、钱迹没错,看名字就知道啦,钱迹是一个记账小能手,主打快速记账。纯粹简单的记账APP。免费使用,数据同步在云端。只有记账功能,化繁为简,不添加理财类业务。完善而强大的资产管理,数据统计表。
钱迹是一个‘三无产品’没有后台,没有广告,不需要唤醒钱迹仅支持安卓,大小4M左右,操作非常简单,值得每一个记账的小伙伴体验。
文章里面的APP我全部下载了,并且给大家打包了,需要的小伙伴:
1,关注 “助手小伙伴”头条号。
2,点赞,评论+转发
3,私信关键字“黑科技APP”(点击我头像可以私信)
浏览器怎么上传图片?
浏览器上传照片设置方法:
1. 设置→Internet选项
2. 安全→将所有区域重置为默认级别→确定完成设置
3. 也可通过自定义设置。
安全→自定义级别→启用→确定
Java面试题目网站有哪些?
关于赢在面试的Java题系列基本收集整理完成了,所有题目都是经过精心挑选的,很基础又考验求职者的基本功,应该说被面试到的几率很大。这里整理挑选出来供大家面试前拿来看一看。
1、a.hashCode() 有什么用?与 a.equals(b) 有什么关系?
hashCode() 方法对应对象整型的 hash 值。它常用于基于 hash 的集合类,如 Hashtable、HashMap、LinkedHashMap等等。它与 equals() 方法关系特别紧密。根据 Java 规范,两个使用 equal() 方法来判断相等的对象,必须具有相同的 hash code。
2、字节流与字符流的区别
要把一段二进制数据数据逐一输出到某个设备中,或者从某个设备中逐一读取一段二进制数据,不管输入输出设备是什么,我们要用统一的来完成这些操作,用一种抽象的进行描述,这个抽象描述起名为IO流,对应的抽象类为OutputStream和InputStream,不同的实现类就代表不同的输入和输出设备,它们都是针对字节进行操作的。
计算机中的一切最终都是二进制的字节形式存在。对于经常用到的中文字符,首先要得到其对应的字节,然后将字节写入到输出流。读取时,首先读到的是字节,可是我们要把它显示为字符,我们需要将字节转换成字符。由于这样的需求很广泛,Java专门提供了字符流包装类。
底层设备永远只接受字节数据,有时候要写字符串到底层设备,需要将字符串转成字节再进行写入。字符流是字节流的包装,字符流则是直接接受字符串,它内部将串转成字节,再写入底层设备,这为我们向IO设备写入或读取字符串提供了一点点方便。
字符向字节转换时,要注意编码的问题,因为字符串转成字节数组,其实是转成该字符的某种编码的字节形式,读取也是反之的道理。
3、什么是Java序列化,如何实现Java序列化?或者请解释Serializable接口的作用。
我们有时候将一个Java对象变成字节流的形式传出去或者从一个字节流中恢复成一个Java对象,例如,要将Java对象存储到硬盘或者传送给网络上的其他计算机,这个过程我们可以自己写代码去把一个Java对象变成某个格式的字节流再传输。
但是,jre本身就提供了这种支持,我们可以调用OutputStream的writeObject方法来做,如果要让Java帮我们做,要被传输的对象必须实现serializable接口,这样,Javac编译时就会进行特殊处理,编译的类才可以被writeObject方法操作,这就是所谓的序列化。需要被序列化的类必须实现Serializable接口,该接口是一个mini接口,其中没有需要实现方法,implements Serializable只是为了标注该对象是可被序列化的。
例如,在web开发中,如果对象被保存在了Session中,tomcat在重启时要把Session对象序列化到硬盘,这个对象就必须实现Serializable接口。如果对象要经过分布式系统进行网络传输,被传输的对象就必须实现Serializable接口。
4、描述一下JVM加载class文件的原理机制?
JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。
5、heap和stack有什么区别。
Java的内存分为两类,一类是栈内存,一类是堆内存。栈内存是指程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会释放,这个栈中的变量也将随之释放。
堆是与栈作用不同的内存,一般用于存放不在当前方法栈中的那些数据,例如,使用new创建的对象都放在堆里,所以,它不会随方法的结束而消失。方法中的局部变量使用final修饰后,放在堆中,而不是栈中。
6、GC是什么?为什么要有GC?
GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
7、垃圾回收的优点和原理。并考虑2种回收机制。
Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。
垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。
回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
8、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的记录和管理堆(heap)中的所有对象。通过这种确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。
程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。
9、Java中throw和throws有什么区别?
throw 用于抛出 Java.lang.Throwable 类的一个实例化对象,意思是说你可以通过关键字 throw 抛出一个Exception,如:
throw new IllegalArgumentException(“XXXXXXXXX″)
而throws 的作用是作为方法声明和签名的一部分,方法被抛出相应的异常以便调用者能处理。Java 中,任何未处理的受检查异常强制在 throws 子句中声明。
10、Java中会存在内存泄漏吗,请简单描述。
先解释什么是内存泄漏:所谓内存泄露就是指一个不再被程序使用的对象或变量一直被占据在内存中。Java中有垃圾回收机制,它可以保证当对象不再被引用的时候,对象将自动被垃圾回收器从内存中清除掉。
由于Java使用有向图的进行垃圾回收管理,可以消除引用循环的问题,例如有两个对象,相互引用,只要它们和根进程不可达,那么GC也是可以回收它们的。
Java中的内存泄露的情况:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是Java中内存泄露的发生场景,通俗地说,就是程序员可能创建了一个对象,以后一直不再使用这个对象,这个对象却一直被引用,即这个对象无用但是却无法被垃圾回收器回收的,这就是Java中可能出现内存泄露的情况,例如,缓存系统,我们加载了一个对象放在缓存中(例如放在一个全局map对象中),然后一直不再使用它,这个对象一直被缓存引用,但却不再被使用。
11 、说一说Servlet的生命周期?
Servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由Javax.servlet.Servlet接口的init(),service()和destroy方法表达。
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。
12、Servlet API中forward()与redirect()的区别?
(1).从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所以redirect等于客户端向服务器端发出两次request,同时也接受两次response。
(2).从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
redirect不仅可以重定向到当前应用程序的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源.
forward方法只能在同一个Web应用程序内的资源之间转发请求.forward 是服务器内部的一种操作.
redirect 是服务器通知客户端,让客户端重新发起请求.
所以,你可以说 redirect 是一种间接的请求, 但是你不能说"一个请求是属于forward还是redirect "
(3).从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
(4).从效率来说
forward:高.
redirect:低.
13、request.getAttribute()和 request.getParameter()有何区别?
(1),request.getParameter()取得是通过容器的实现来取得通过类似post,get等传入的数据。
request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。
(2),getAttribute是返回对象,getParameter返回字符串
(3),getAttribute()一向是和setAttribute()一起使用的,只有先用setAttribute()设置之后,才能够通过getAttribute()来获得值,它们传递的是Object类型的数据。而且必须在同一个request对象中使用才有效。,而getParameter()是接收表单的get或者post提交过来的参数
14、jsp静态包含和动态包含的区别
(1)、<%@include file="xxx.jsp"%>为jsp中的编译指令,其文件的包含是发生在jsp向servlet转换的时期,而<jsp:include page="xxx.jsp">是jsp中的动作指令,其文件的包含是发生在编译时期,也就是将Java文件编译为class文件的时期
(2)、使用静态包含只会产生一个class文件,而使用动态包含会产生多个class文件
(3)、使用静态包含,包含页面和被包含页面的request对象为同一对象,因为静态包含只是将被包含的页面的内容复制到包含的页面中去;而动态包含包含页面和被包含页面不是同一个页面,被包含的页面的request对象可以取到的参数范围要相对大些,不仅可以取到传递到包含页面的参数,同样也能取得在包含页面向下传递的参数。
15 、MVC的各个部分都有那些技术来实现?如何实现?
MVC是Model-View-Controller的简写。Model代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),View是应用的表示面(由JSP页面产生),Controller是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
16、jsp有哪些内置对象?作用分别是什么?
JSP共有以下9个内置的对象:
(1),request 用户端请求,此请求会包含来自GET/POST请求的参数
(2),response 网页传回用户端的回应
(3),pageContext 网页的属性是在这里管理
(4),session 与请求有关的会话期
(5),application servlet 正在执行的内容
(6),out 用来传送回应的输出
(7),config servlet的构架部件
(8),page JSP网页本身
(9),exception 针对错误网页,未捕捉的例外
17 、Http中,get和post方法的区别
(1),Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求
(2),Get是获取信息,而不是修改信息,类似数据库查询功能一样,数据不会被修改
(3),Get请求的参数会跟在url后进行传递,请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连,%XX中的XX为该符号以16进制表示的ASCII,如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密。
(4),Get传输的数据有大小限制,因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了,不同的浏览器对URL的长度的限制是不同的。
(5),GET请求的数据会被浏览器缓存起来,用户名和密码将明文出现在URL上,其他人可以查到历史浏览记录,数据不太安全。
在服务器端,用Request.QueryString来获取Get提交来的数据Post请求则作为http消息的实际内容发送给web服务器,数据放置在HTML Header内提交,Post没有限制提交的数据。Post比Get安全,当数据是中文或者不敏感的数据,则用get,因为使用get,参数会显示在地址,对于敏感数据和不是中文字符的数据,则用post。
(6),POST表示可能修改变服务器上的资源的请求,在服务器端,用Post提交的数据只能用Request.Form来获取。
(仅供参考,如果有更好的回答,欢迎探讨)
18 、什么是cookie?Session和cookie有什么区别?
Cookie是会话技术,将用户的信息保存到浏览器的对象.
区别:
(1)cookie数据存放在客户的浏览器上,session数据放在服务器上
(2)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,如果主要考虑到安全应当使用session
(3)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用COOKIE
(4)单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。
结论:
将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE中。
19 、jsp和servlet的区别、共同点、各自应用的范围?
JSP是Servlet技术的扩展,本质上就是Servlet的简易。JSP编译后是“类servlet”。
Servlet和JSP最主要的不同点在于:Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。
JSP侧重于视图,Servlet主要用于控制逻辑。在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.
20 、tomcat容器是如何创建servlet类实例?用到了什么原理?
当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对xml文件进行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的实例化。(有时候也是在第一次请求时实例化)在servlet注册时加上<load-on-startup>1</load-on-startup>如果为正数,则在一开始就实例化,如果不写或为负数,则第一次请求实例化。
21、JDBC访问数据库的基本步骤是什么?
(1),加载驱动
(2),通过DriverManager对象获取连接对象Connection
(3),通过连接对象获取会话
(4),通过会话进行数据的增删改查,封装对象
(5),关闭资源
22 、说说preparedStatement和Statement的区别
(1),效率:预编译会话比普通会话对象,数据库系统不会对相同的sql语句不会再次编译
(2),安全性:可以有效的避免sql注入攻击!sql注入攻击就是从客户端输入一些非法的特殊字符,而使服务器端在构造sql语句的时候仍然能够正确构造,从而收集程序和服务器的信息和数据。比如:“select * from t_user where userName = ‘” + userName + “ ’ and password =’” + password + “’”如果用户名和密码输入的是’1’ or ‘1’=’1’ ; 则生产的sql语句是:“select * from t_user where userName = ‘1’ or ‘1’ =’1’ and password =’1’ or ‘1’=’1’ 这个语句中的where 部分没有起到对数据筛选的作用。
23 、说说事务的概念,在JDBC编程中处理事务的步骤。
(1) 事务是作为单个逻辑工作单元执行的一系列操作。
(2),一个逻辑工作单元必须有四个属性,称为原子性、一致性、隔离性和持久性 (ACID) 属性,只有这样才能成为一个事务
事务处理步骤:
(3),conn.setAutoComit(false);设置提交为手工提交
(4),conn.commit()提交事务
(5),出现异常,回滚 conn.rollback();
24 、数据库连接池的原理。为什么要使用连接池。
(1),数据库连接是一件费时的操作,连接池可以使多个操作共享一个连接。
(2),数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量、使用情况,为系统开发,测试及性能调整提供依据。
(3),使用连接池是为了提高对数据库连接资源的管理
25 、JDBC的脏读是什么?哪种数据库隔离级别能防止脏读?
当我们使用事务时,有可能会出现这样的情况,有一行数据刚更新,与此同时另一个查询读到了这个刚更新的值。这样就导致了脏读,因为更新的数据还没有进行持久化,更新这行数据的业务可能会进行回滚,这样这个数据就是无效的。数据库的TRANSACTIONREADCOMMITTED,TRANSACTIONREPEATABLEREAD,和TRANSACTION_SERIALIZABLE隔离级别可以防止脏读。
26 、什么是幻读,哪种隔离级别可以防止幻读?
幻读是指一个事务多次执行一条查询返回的却是不同的值。假设一个事务正根据某个条件进行数据查询,然后另一个事务插入了一行满足这个查询条件的数据。之后这个事务再次执行了这条查询,返回的结果集中会包含刚插入的那条新数据。这行新数据被称为幻行,而这种现象就叫做幻读。
只有TRANSACTION_SERIALIZABLE隔离级别才能防止产生幻读。
27 、JDBC的DriverManager是用来做什么的?
JDBC的DriverManager是一个工厂类,我们通过它来创建数据库连接。当JDBC的Driver类被加载进来时,它会自己注册到DriverManager类里面然后我们会把数据库配置信息传成DriverManager.getConnection()方法,DriverManager会使用注册到它里面的驱动来获取数据库连接,并返回给调用的程序。
28、execute,executeQuery,executeUpdate的区别是什么?
(1),Statement的execute(String query)方法用来执行任意的SQL查询,如果查询的结果是一个ResultSet,这个方法就返回true。如果结果不是ResultSet,比如insert或者update查询,它就会返回false。我们可以通过它的getResultSet方法来获取ResultSet,或者通过getUpdateCount()方法来获取更新的记录条数。
(2),Statement的executeQuery(String query)接口用来执行select查询,并且返回ResultSet。即使查询不到记录返回的ResultSet也不会为null。我们通常使用executeQuery来执行查询语句,这样的话如果传进来的是insert或者update语句的话,它会抛出错误信息为 “executeQuery method can not be used for update”的java.util.SQLException。
(3),Statement的executeUpdate(String query)方法用来执行insert或者update/delete(DML)语句,或者 什么也不返回,对于DDL语句,返回值是int类型,如果是DML语句的话,它就是更新的条数,如果是DDL的话,就返回0。只有当你不确定是什么语句的时候才应该使用execute()方法,否则应该使用executeQuery或者executeUpdate方法。
29、SQL查询出来的结果分页展示一般怎么做?
Oracle:
MySQL:
sql server:
30、JDBC的ResultSet是什么?
在查询数据库后会返回一个ResultSet,它就像是查询结果集的一张数据表。ResultSet对象维护了一个游标,指向当前的数据行。开始的时候这个游标指向的是第一行。如果调用了ResultSet的next()方法游标会下移一行,如果没有更多的数据了,next()方返回false。可以在for循环中用它来遍历数据集。默认的ResultSet是不能更新的,游标也只能往下移。也就是说你只能从第一行到最后一行遍历一遍。不过也可以创建可以回滚或者可更新的ResultSet
当生成ResultSet的Statement对象要关闭或者重新执行或是获取下一个ResultSet的时候,ResultSet对象也会自动关闭。可以通过ResultSet的getter方法,传入列名或者从1开始的序号来获取列数据。
以上就是我总结的这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值。
还需要买云服务器么?
如果你只是个人卖家,想试试水。可以不用。但是未来如果要增加账号,或者是增加员工,就比较麻烦了。建议能早用尽量早用。
从方便程度讲跨境卫士,紫鸟这类浏览器还是挺不错的。
字节跳动的发展潜力到底有多大?
嗯,回答本行业话题,希望我的回答对您有帮助!
我之前就说过,字节跳动是移动互联网时代最大的赢家。移动互联网时代共诞生了四小巨头TMDP。这四家公司分别是字节跳动、美团点评、滴滴出行和快手。就目前来看,无论是公司影响力还是未来前景,字节跳动都排在榜首?
字节跳动有哪些产品?
你或许没有听过字节跳动,但你肯定用过抖音和今日头条。不然你也不能看到我这篇文章了。目前来看,字节跳动拥有西瓜视频、火山小视频、抖音、悟空问答、今日头条等产品。其中以抖音和今日头条最为出名,如果算上字节跳动产品的全部用户,那么字节跳动的全球用户超过了10个亿!
字节跳动的未来有多大?
进可攻、退可守。已满7岁的字节跳动还处于高速增长状态,全系产品MAU超过15亿,业务覆盖150个国家和地区,还在全球拥有240个办公室和15个研发中心,极力向全球化企业迈进。
值得一提的是,字节跳动在2019年的广告营收是击败了百度和腾讯,成为全国最大的互联网广告营收公司!
字节跳动碾压百度
百度不是当年的百度,字节跳动也是不当年的字节跳动。无论是在短视频还是信息流方面,百度都已输给了字节跳动。
说白了,百度现在就只剩下搜索了,但随着字节跳动发力搜索,我看百度以后还怎么玩?看到这里就有人要说了,百度自动驾驶不是很厉害吗,其实这是百度玩概念,玩给资本市场上看的。说不好听点,没有个20年,自动驾驶那都是在吹水!
字节跳动未来有望比肩阿里?
腾讯和百度一样,在信息流和短视频领域都输给了字节跳动。而且最近传出了字节跳动成立了游戏团队,要向游戏进军。大家都知道,游戏是腾讯的腹地,这意味着字节跳动肯定会找一个合适的机会向腾讯的腹地进攻。
为什么说比肩阿里呢?目前阿里市值超过5500亿美金,阿里不再是单纯的电子商务公司,说字节跳动能超过百度腾讯我是信的,和阿里的话,未来会形成新的巨头。不知道大家对此怎么看?