首页 文章 精选 留言 我的

精选列表

搜索[天玑9500],共10000篇文章
优秀的个人博客,低调大师

CentOS学习:第一天

阿里的一台ECS还有一个月到期,就趁这一个月的时间,用它来学习一下梦寐已久的CentOS。 由于历史原因,一直使用Windows环境,还从没接触过任何一种Linux系统。 在服务器端部署MySQL/Tomcat/Ngix环境时,同配置的低成本ECS,如果使用Win系列,除了系统开销就不剩多少了,但Linux不一样,没有那么多的UI渲染,可以把宝贵的资源用到服务上,并且稳定性方面也更可靠,所以早就想切换到Linux平台上来。 一、准备ECS 登录阿里云后台,找到即将到期的ECS实例,执行“更换系统盘”操作 原来的WIN系统分分钟烟消云散,取而代之的是自由的 -- CentOS 7.2 二、第一次见面 很快,系统盘更换成功,它就静静的呆在那里等着我 原来的远程桌面用不上了,想要远程连接到Linux,需要更简单的:putty(点此下载) 只需填写Host Name,就是远程服务器的IP或者网址,端口默认22不用改,连接类型选择“SSH” 最后在Saved Sessions里填一个连接的名称,点击“Save”即可把连接信息保存,下次不用重新输入,直接双击连接名称就行了! 点击“Open”,远程连线! 首先,输入用户名:root,密码是在更换系统盘的时候设置的 最后一行:[root@iZ25f8hk9yzZ ~] # 就表示登录成功了 其中,root就是当前登录的用户名,iZ25f8hk9yzZ是机器名,~表示当前所在的是root的宿主目录,#表示当前为管理员模式($表示普通用户模式) 看起来就是这样了,没有Windows轰隆隆的咆哮声,也没有iOS优雅的扁平式图标,但这就是Linux 三、挂载数据盘 刚安装的Linux镜像还没有挂载数据盘,可以使用该命令进行检测:df -h 可以看到,只有一个“/dev/xvda1”的40G的系统盘 下面,就开始对数据盘进行分区、格式化并挂载 1、数据盘分区 命令:fdisk -l 可以看到,红框中的“/dev/xvdb”数据盘就是我们的目标 命令:fdisk /dev/xvdb 输入:根据提示,依次输入 n,p,1,两次回车,wq,分区就开始了 备注:如果已经对该数据盘进行过基本分区,可以在输入 n 之前先输入 d 删除已有分区。 关于linux硬盘的分区主要分为 基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于4个。基本分区可以直接使用但不能再分区。扩充分区必须再进行二次分区才能使用。需要对扩充 分区建立逻辑分区(logical partion),逻辑分区没有数量上限制。 再次运行 fdisk -l 命令,查看新的分区。新分区 xvdb1 已经创建好: 2、格式化 命令:mkfs -t ext4 /dev/xvdb1 由于写这篇随笔是后补的,并且当时没有截图,所以上图是从阿里的教程里引用的,但结果都差不多 3、挂载磁盘 1)写入分区信息: 命令:echo '/dev/xvdb1 /mnt ext3 defaults 0 0'>> /etc/fstab 2)挂载新分区 命令:mount /dev/xvdb1 /mnt 3)检测分区 命令:df -h 到此为止,该数据盘就可以正常访问使用了。 四、小结 由于阿里的ECS提供了很多的Linux镜像服务,所以免去了系统安装的流程,直接进入系统使用的步骤 虽说没有学到系统安装的部分,但以后绝大多数情况还是在云服务的环境,所以个人认为安装的细节完全可以交给供应商去做,把有限的精力集中在业务上还是明智的 今天已经把一套崭新的CentOS架设完了,明天将学习Linux上最基本、最常用的一些Shell命令。 宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒

优秀的个人博客,低调大师

WorkBuddy 五天重构博客小纪

ai.hackcv.com 现在已经上线了,和它原来的兄弟站 hackcv.com 摆在一起,对比一目了然。借着这次"能对比了"的节点,我把整个改造过程记录下来——它不是一篇技术教程,而是一份真实的过程记录:一个对 TypeScript 几乎零基础的人,是怎么在 WorkBuddy 的帮助下,把一个 Hugo 静态站重做成带 API、带 LLM 精选、能自己跑在云服务器上的 Next.js 聚合站。

优秀的个人博客,低调大师

7天教你玩转云服务器

教学课程:如何玩转云服务器云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器 。云服务器帮助您快速构建更稳定、安全的应用,降低开发运维的难度和整体IT成本,使您能够更专注于核心业务的创新。云计算服务器(又称云服务器或云主机)主要面向中小企业用户与高端用户提供基于互联网的基础设施服务,这一用户群体庞大,且对互联网主机应用的需求日益增加。该用户群体具备如下特征:业务以主机租用与虚拟专用服务器为主,部分采用托管服务,且规模较大;注重短期投资回报率,对产品的性价比要求较高;个性化需求强,倾向于全价值链、傻瓜型产品 。 用户在采用传统的服务器时,由于成本、运营商选择等诸多因素,不得不面对各种棘手的问题,而弹性的云计算服务器的推出,则有效的解决

优秀的个人博客,低调大师

我和 Spring 大神的一天

先介绍一下故事的5位主人公。 Josh Long 龙之春:Spring 技术布道师,撰写过5部著作,录制过3部畅销的培训视频,是一位开源软件贡献者。 Spencer Gibb:Spring 技术布道师,Spring Cloud核心项目的联合创始人。除了深厚的Java开发经验,他在Scala和Python等其他语言的使用上也颇有建树。 亦盏:Spring Cloud Alibaba 项目组成员。 洛夜:Spring Cloud Alibaba 项目组成员。 小马哥:Java劝退师,Apache Dubbo PPMC,Spring Cloud Alibaba 项目组成员。 场景一:会场 1、参会日常 SpringOne Tour在国内开发者的受欢迎程度还是挺高的,500人的会场基本都坐满了,而且还遇到了不少熟人。大家寒暄一声,握个手,合个影,发个朋

优秀的个人博客,低调大师

倒计时10天:开启LiveVideoStackCon 2018

10月19-20日,LiveVideoStackCon 2018,开启又一次多媒体技术盛宴。 文 / 包研 15 个技术专场, 70+讲师和talk, 90+技术专家, 450 名业内玩家 , 10月19-20日,LiveVideoStackCon 2018,约吗? 大会议题 主题演讲 《From VP9 to AV1 and beyond》Google Member of Technical Staff , Video Codec Specialist - Debargha Mukherjee 《新一代视频编码标准》北京大学信息科学技术学院教授 - 马思伟 《AI技术开启视频娱乐新时代》 爱奇艺 首席科学家 - 王涛 《用户导向的音视频体验优化》快手音视频技术负责人 - 于冰 主题演讲聚焦在视频编码标准、AI和用户体验QoS三大热点,视频Codec涉及到VP9、AV1、AVS3以及VVC。刘文峰和于冰分别作为长、短视频平台的代表分享AI与QoS相关探索与未来。 画质评定 《精准码控 & 精致前处理:画质提升在腾讯视频》 腾讯视频 视频编码团队负责人 - 汪亮 《视频质量评价——从裁判到教练》上海交通大学 教授 - 宋利 《无参考图像视频质量评价》北京大学信息科学技术学院数字媒体所 副教授 - 蒋婷婷 《视频编码器对比与选择》Hulu 高级软件开发经理 - 傅德良 画质评定方法是对QoS与Codec评价的关键指标,从腾讯视频到Hulu,再到来自上海交通大学、北京大学等学术界的专家从各自的角度带来实践与研究。 音频新体验 《AI硬件中的声学问题剖析》小鱼在家 首席音频科学家 - 邓滨 《音频编码技术特点》清华大学 电子工程系教授、博导 - 窦维蓓 《娱乐遇见科学》 杜比 研究高级总监 - Claus Bauer 《手机K歌的人声伴奏对齐优化实践》唱吧 资深研发总监 - 王国腾 音频技术被再一次认知要感谢各类智能音箱产品,小鱼在家作为其代表进行分享;来自杜比、唱吧和学术界的代表——清华大学窦维蓓也将在本专题分享。 前端与客户端 《The company that invented streaming media continues to innovate new video technologies》RealNetworks CTO - Reza Rassool 《高效移动端视频处理架构关键技术》 北京美摄网络科技有限公司 CEO - 郑鹏程 《微博客户端播放器的演进之路》新浪微博 高级多媒体开发工程师 - 刘文 《基于WebRTC的互动直播实践》映客 资深音视频工程师 - 叶峰峰 随着端上的计算力越来越强,在端上可以实现更多以前无法实现的功能,比如超分、高分辨率的软件编解码等。 教育专场 《互动白板在在线教育上的应用》学而思网校 客户端架构负责人 - 赵文杰 《51Talk音视频技术的思考及非典型挑战》51Talk 技术总监 - 陈靖 《基于Licode的WebRTC全球分布式架构》百家云 研发工程师 - 陈聪 《音乐场景下的实时音频解决方案》网易云信 资深音频算法工程师 - 李备 教育是多媒体技术应用最广泛的应用场景,也面临着复杂的条件和需求。本专题将涉及跨国低延迟网络实现、高可用的白板技术、多人互动架构实现等。 服务端与架构设计 《微博视频平台架构演进》新浪微博 视频平台资深架构师 - 刘志勇 《利用WebRTC给应用赋能——从一个工程师的角度》全民快乐 资深音视频工程师 - 郭奕 《基于HLS格式的互动直播技术实现超越RTMP的低延时》Twitch Principal Research Engineer - 沈悦时 《用WebRTC打造支持复杂交互的实时互动云课堂》TutorABC 研发总监 - 董海冰 服务端不仅承载着数据存储、负载以及编码转码等重度计算场景的支持。 以我所能,为你而加——腾讯云新一代音视频融合通信平台全接触 《腾讯云实时音视频解决方案的技术实现》腾讯云音视频业务终端研发总监 - 常青 《企业通信中的音视频技术应用与前瞻》容联云通讯CTO - 许志强 《快校英语基于腾讯音视频服务的教育场景思路分享》快校英语 客户端负责人 - 卓泓 音视频能力如何在行业应用中创造更多价值?尤其在微信小程序场景下,腾讯云音视频业务终端研发总监常青将会介绍小程序上的多媒体技术能力的最新进展和未来发展计划。 监控与QoE 《微信亿级视频通话的QoS优化之路》腾讯多媒体内核中心 高级研究员 - 时永方 《视频直播体验优化》YY 音视频算法中心负责人 - 林绪虹 《如何打造音视频服务的用户极致体验》阿里巴巴 信息平台资深技术专家 - 何亚明 《大数据驱动下的短视频体验优化》快手 流媒体大数据平台架构师 - 罗喆 《利用自动化测试和产品数据化监控保障媒体质量》Cisco Principle Engineer - 张睿 《基于QoE的实时视频编码优化》声网Agora 视频工程师 - 吴晓然 《基于用户体验的视频QoE优化》华为 ICT解决方案架构部系统工程师 - 唐欣 多媒体服务是关乎用户体验,QoE就是衡量用户体验的方法和工具。在社交、视频会议、企业通讯,实时与高延迟等不同场景下如何有效的抓取数据,并分析这些数据就成为提升QoE的关键。 AI与多媒体 《魔镜:使用无监督式学习来辨识Twitch用户社区中繁复多样的网络状况》Twitch Principal Research Engineer - 沈悦时 《基于英特尔架构的实时视频流分析系统的设计与优化》英特尔开源技术中心 研发经理 - 翟磊 《百度媒体云智能编码技术实践》百度云 资深工程师 - 邢怀飞 《Boosting Multimeda UX in the AI Era》武汉大学 教授 - 陈震中 《智能高清赋能金山视频云》 金山云 高级总监 - 武爱敏 《Delivering high-quality short-form looping content worldwide》Gfycat Cofounder and CEO - Richard Rabbat 《AI在视频增强中的技术以及应用》360 资深技术专家 - 刘洛麒 AI不仅在画面识别有着不错的应用,而且在网络优化、码率调整及Codec有许多实践。 视频编解码 《A Technical Overview of the coding tools in AV1》Google Member of Technical Staff , Video Codec Specialist - Debargha Mukherjee 《HEVC标准在客户端上的快速实现方法的研究》淘宝 高级算法专家 - 李晓波(篱悠) 《KSC265全链路解决方案及演进》金山云 资深产品专家 - 李青源 《面向QoE的感知视频编码》北京航空航天大学 副教授、博士生导师 - 徐迈 《Accelerated Growth of the Visual Cloud Through Open Sourcing SVT-HEVC and SVT-AV1》Intel Media SW Engineering Director - Faouzi Kossentini 《Point Cloud Compression, Processing and Understanding》InterDigital Senior Principal Research Scientist - 田栋 《以质量三维论持续推进腾讯视频播放体验提升》腾讯 视频移动端播放内核技术负责人 - 李大龙 视频编解码专题是LiveVideoStackCon上最重要的专场,欢迎现场体验。 解决方案 《低延时实时视频通信》三体云 实时视频高级工程师 - 李幸原 《Why the Live Streaming industry is seeing a rebirth of hardware acceleration and why FPGAs are leading this trend》Xilinx Sr. Marketing Mgr. responsible for Cloud Video - Sean Gardner 《基于WebRTC架构的直播课堂实践》七牛云 教育行业解决方案高级专家 - 徐晶 《极致压缩在腾讯海量视频业务中的技术探索及实践》腾讯技术工程事业群架构平台部 媒体算法团队负责人 - 李雅卿 《基于混合CDN的低延时直播P2P技术实践》虎牙直播音视频技术专家 - 冯修杰 《教育行业的WebRTC场景创新》拓课云技术总监 - 陈勇冀 《基于FFmpeg的运动视频分析》英特尔 资深软件工程师 - 李忠,英特尔 资深软件工程师 - 张华 如何第一时间获得音视频能力,来本场看看吧。 多媒体传输网络 《基于爱奇艺HCDN视频分发网络的开放缓存》爱奇艺 高级技术总监 - 庹虎 《视频服务体验提升》京东云 视频云产品研发负责人 - 魏伟 《通过跨层和组件的全局优化提高视频会议中的实时质量》Cisco Principle Engineer - 张睿 《Using chunked-encoded chunked-transferred CMAF to bring low latency live to large scale audiences》Akamai 首席架构师 - William Robert Law 《跨国应用场景和即构实时网络的调度系统架构设计》即构科技 技术副总裁 - 冼牛 《视频编码质量评价及如何寻找质量甜点的方法初探》Juphoon CTO/VP - 钱晓炯 《下一代低延时的直播CDN》阿里云 CDN高级技术专家 - 李刚(阙寒) 网络可能是所有技术人最头疼的,尤其在国内复杂的网络条件下,如何提供稳定、低延迟的音视频服务就是难上加难。 行业应用案例 《High scale events – Akamai and 22Tbps streams for the World Cup 2018》Akamai 首席架构师 - William Robert Law 《三体云视频抗抖动演进之路》三体云 技术副总裁 - 张光 《AI Powered FPGA-based Video Transcoding for Real Time Applications》Aupera 资深AI工程师 - Narges Afsham 在这里,你可以了解音视频能力在行业中的最新应用探索。 安全与版权保护 《视频媒资保护主要手段解析与实现》OnVideo视频创作云平台 联合创始人 - 刘歧(悟空) 《视频加密和DRM的实施实践》阿里云 视频云媒体处理服务负责人 - 周源 《爱奇艺版权保护技术与维权实践》爱奇艺 技术产品中心高级经理 - 陈赫 《多媒体数字版权保护生态》国家广播电视总局广播科学研究院信息技术研究所 所长 - 郭沛宇 本专题,将会分享数字版权保护在行业中的最新探索。 技术与商业策略 《Evaluating your Codec Options》Streaming Media Magazine Contributing Editor - Jan Ozer 圆桌:成本与QoE, 嘉宾:爱奇艺 高级技术总监 庹虎,Twitch Principal Research Engineer 沈悦时,OnVideo视频创作云平台 联合创始人 刘歧,金山云 高级总监 武爱敏,Hulu 高级软件开发经理 傅德良 圆桌:新技术,新产品,新机会 嘉宾:芒果TV CTO 黄冬,51Talk 技术总监 陈靖,唱吧 资深研发总监 王国腾,网易云信 CTO 赵加雨,武汉大学 教授 陈震中 成本、QoE、新技术,如何在成本与用户体验之间平衡,如何抓住新技术带来的红利? IC设计与多媒体 《Trends and Challenges with Multimedia Chip Design for Blu-ray, Digital-TV and Smart-phone SoC》联发科技 先进创新研究资深经理 - 刘子明 《FFmpeg 硬件加速的现状与将来》英特尔 资深软件开发工程师 - 赵军 《解密GPU:视频转码与分析加速》英伟达 高级工程师 - 季光 《十亿像素视频相机研发与应用展望》复旦大学 微电子学院副教授 - 范益波 特别团购 10月1日起,LiveVideoStackCon 2018进入到全价阶段,不过你可以参与“拼团活动”,通过分享活动获得249元的折扣。点击【阅读原文】进入官网了解详情。 另外,大会的注册关闭时间为10月17日24点,逾期将无法进行注册。

优秀的个人博客,低调大师

2018-05-09 第三天

一、数据类型 所有写的 java 的源代码 都要复合 java 编译器的规范,要能够让编译器理解编译通过。 1:在编写源代码的时候,需要告诉编译器,我申请的内存的名字,还有内存中数据的类型。 java是一种强类型语言。 2:java 语言中,支持的数据的类型。 表达某些数据的时候,可以使用那些类型来表示。 java中规定一块内存区域只能保存一种类型的数据。 3:java 支持的数据类型 2大类: 1:基本数据类型、简单数据类型、java内置类型。 2:引用数据类型、复合数据类型、复杂数据类型。 4:java 支持的基本数据类型有哪些?8种。 1:4种整数类型 1:字节型 byte 占用1byte的内存空间。数据范围[-128~127][-2^7 ~ 2^7-1] 256 2: 短整型 short 占用 2 bytes 数据表示的范围 [-2^15 ~ 2^15-1] 65536 3: 整型 int 占用 4 bytes 数据表示的范围 [-2^31 ~ 2^31-1] 4:长整型 long 占用 8个字节 数据表示的范围 [-2^63 ~ 2^63-1] 2:2个浮点数 1:单精度类型 float 占用4bytes 小数点后可以有7个小数位左右。 2:双精度 double 占用8bytes 小数点后可以保留15位小数左右。 3:字符类型 char 2bytes 4:布尔类型 boolean 官方没有给出具体占用空间的大小?? 只有两个值 true 和 false。只使用了一个二进制位来表示这两种状态。1-->true 0---false. 数据类型的作用:1:决定了数据占用内存空间的大小。2:底层二进制存储的格式。 定义指定类型的标识符并存储指定的数据的通用格式: 数据类型 标识符 = 某一个值; 例子:通过什么样的方式,去申请一块内存空间,去保存一个年龄的整数。并把数打印输出到cmd 窗口。 public class TestType{ public static void main(String[] args){ //先向 jvm 申请一块内存并起一个名字,然后再将数据放到该内存中。 //申请内存的必须告诉编译器申请多大 //向jvm 申请一块内存区域,申请的区域的数据类型为int,该内存的标识符名字是 age,然后将10这个数放到该内存中。 int age = 19; //使用byte 存储一个 分数 byte score = 99; //使用short 存储一个 学校的人数 short studentCount = 520; //使用long 存储一个世界人口的数量 long worldPersonCount = 74_0000_0000L; //float 表示圆周率 float pi = 3.141592653F; double pi1 = 3.141592653222222222222222222222222; //0.1 0.5 0.01 0.3 //char 存储一个字符 A //单引号中放置一个字符,双引号中放置若干个字符。 char charA = 'A'; //用boolean 表示班里是否有女孩子 boolean isGirlInClass = true; //+ 可以是先 字符串 和 任意类型的数据连接,连接之后生成一个新的字符串,将新的字符串打印输出。 System.out.println("age = " + age +";"); System.out.println("score = " + score + ';'); System.out.println("studentCount = " + studentCount); System.out.println("worldPersonCount = " + worldPersonCount); System.out.println("pi = " + pi); System.out.println("pi1 = " + pi1); System.out.println("charA = " + charA); System.out.println("isGirlInClass = " + isGirlInClass); } } 二、变量 声明变量:数据类型 变量名; 赋初值:变量名 = 初始值; 所以,定义变量就是 声明 + 赋值的过程。 //使用变量 public class TestVariable{ public static void main(String[] args){ //定义一个int 类型的变量 保存一个100; int value = 100; //获得变量的值 get System.out.println("value = " + value); //修改变量的值 set value = 99; //获得变量的值 get System.out.println("value = " + value); //定义变量的其他的语法形式。 //声明变量 声明的变量不能访问,如果只是声明变量,那么jvm 不会给 变量分配内存。 //如果一个变量可以被访问,那么必须保证 被访问的时候已经被分配了内存。 int age; //赋初值 age = 19; System.out.println("age = " + age); int num1 = 10,num2 = 20, num3 = 30; int value1 = 10,value2,value3 = 50,value4; value2 = 19; System.out.println("value2 = " + value2); //System.out.println("value4 = " + value4); } } 作用域: 概念:局部变量的作用域:局部变量可以被访问的范围。 局部变量的作用域:从定义的位置开始,到变量所在的大括号的结尾处内。 三、 常量 java 中的常量 分为两种: 1:字面常量、字面值。 12, 1.2,'A',"123",true,false. 2:不可变的变量。final + 数据类型 + 变量名 = 常量; 如:不可变的变量: int maxYearDayCount = 366; 如何将一个变量变成不可变的量: final int maxYearDayCount = 366; final 修饰的变量称之为 终态变量。只能初始化一次。 java 中所有的数据都是要有类型的,可以显式的指定数据的类型。 字面值 是被编译器 隐式指定数据类型。 隐式指定数据类型的规则: 如果是整数 类型为int。 如果一个字面整数的值超过了int 的范围,那么必须告诉编译器 申请8个字节的空间去存储它。通过在常量的末尾添加 字符 l or L 建议使用 L 如果是浮点数,那么默认类型 为double。占用8个字节。 肯定不能将八个字节的数据赋值给4个字节的内存空间。可能会有精度的损失。不安全。 需要在浮点数常量值的末尾添加 F or f 。来申请四个字节的空间存储。 //final 练习 //求一个 球 的体积。半径通过键盘输入获得。 import java.util.Scanner; //默认导入的核心包 下所有的类 * 通配符,代表所有的 //import java.lang.*; public class TestFinal{ public static void main(String[] args){ //创建一个扫描器对象 用来接收键盘输入的。System.in 代表键盘 标准输入设备 //需要告诉编译器 Scanner 来自于哪里 Scanner scanner = new Scanner(System.in); //提高用户体验 User Expression UE System.out.println("请您输入球体的半径:"); //定义变量保存一个球体的半径 //让扫描器对象使用自己接收键盘输入的功能去接收一个数据。接收下一个输入的整数,输入完毕回车接收。 //将接收的结果赋值给 半径变量。 //nextInt() 是 扫描器 对象的功能。方法。用来接收键盘的一个整数。 //阻塞式方法。可以让程序停下来,如果想让程序继续执行,解除阻塞才可以。 int radius = scanner.nextInt(); //定义变量 来保存 球体的体积 double volume = 0; //定义变量来保存 圆周率的 值,如果圆周率的精确度需要调整, //通过将 PI 定义成 终态变量,来保证代码的安全性。 final double PI = 3.141593; //计算体积公式 volume = PI * 4 / 3 * radius * radius * radius; System.out.println("半径为:"+ radius + " 球的体积为 = "+volume); } } 四、 转义字符 char 类型: 占用 2 bytes 。 可以当作整数来看来。[0-65535] 无符号短整型。没有负数。 美国的字符集 ASCII 0 字符对应的整数 48 A --->65 a ---> 97 转义字符: \t 对应着键盘上的Tab 键 可以表示[1-8]个半角位 \t输出的位置必须保证前面输出的所有的内容要求是8的倍数的半角位,不够8的倍数,补齐8的倍数,够了,自己就独自占8个。 \b 对应着键盘上的Backspace 键 退格键。 \f 换页符 \r 回车符 让光标回到当前行的行首。 \n 换行符 让光标去到下一行 注意:键盘上的回车键 对应了2个字符 \r\n 回车键:去到下一行的行首。 \': 单引号 字符 \":双引号 字符 \\: 反斜杠 字符 打印一个字消耗的时间是0.1s,每次换行 需要消耗0.2s 每次换行 都会丢俩字符。 后来就在需要换行的地方 添加两个空白字符 \r\n。 1:读取到了 97 去本地字符集 gbk 去查找 97 对应的字符 a ,再去unicode 字符集中 将 a 的字符对应的整数替换过来。 //char 类型 练习 public class TestChar{ public static void main(String[] args){ //定义char 类型的变量 char c1 = 'A'; //就是每一个字符都对应这个一个唯一的整数 这个整数在[0-65535] char c2 = 66; System.out.println(c1); System.out.println(c2); //使用转义字符的方式去表示字符 //java 使用字符集是 Unicode 字符集 //使用4个16进制位来表示16bits //转义序列 char c3 = '\u0043'; System.out.println(c3); //字符集中的某些具有特殊意义的字符没有办法使用一个符号来表示,所以使用一种转义字符的方式来表示。 //System.out.println("\t123456789"); //System.out.println("123456789"); //System.out.println("1\t23456789"); System.out.println("1234567\n89"); char c4 = '\'';//单引号 字符 char c5 = '\"';//双引号 字符 char c6 = '\\';//反斜杠 字符 } } 五、 生成随机数 //获得指定区间[10~51) 2个 随机数 value1,value2.并打印value1 和 value2 的值。 //然后实现功能,将value1 和 value2 的值互换。并再次打印。 public class TestRandom{ public static void main(String[] args){ //以后一旦涉及到区间范围,包含小的,不包含大的。 //使用终态变量替代字面常量:尽量少的使用字面常量 //先定义随机区间的范围[10~51) final int MIN = 10,MAX = 12; //Math.random() 可以得到一个随机数[0.0~1.0)随机的double 值。 //保存最终随机值的变量 int ran = 0; //Math.random()*(MAX-MIN);[0.0~41.0) //Math.random()*(MAX-MIN)+MIN;[10.0~51.0) ran = (int)(Math.random() * ( MAX - MIN ) + MIN); System.out.println("ran = " + ran); } } //生成随机数 并 交换位置 //获得指定区间[10~51) 2个 随机数 value1,value2.并打印value1 和 value2 的值。 //然后实现功能,将value1 和 value2 的值互换。并再次打印。 public class ChangeValue{ public static void main(String[] args){ //定义取值区间 final int MIN = 10,MAX = 51; //求两个随机值 int num1 = (int)(Math.random()*(MAX-MIN)+MIN); int num2 = (int)(Math.random()*(MAX-MIN)+MIN); //打印两个随机值 System.out.println("交换之前的随机值为:num1 = " + num1 + "\tnum2 = " + num2); //交换变量的值 int temp = num1;//备份num1 num1 = num2; num2 = temp; //打印交换后的值 System.out.println("交换之后的随机值为:num1 = " + num1 + "\tnum2 = " + num2); } }

优秀的个人博客,低调大师

第179天:javascript中replace使用总结

ECMAScript提供了replace()方法。这个方法接收两个参数,第一个参数可以是一个RegExp对象或者一个字符串,第二个参数可以是一个字符串或者一个函数。现在我们来详细讲解可能出现的几种情况。 1. 两个参数都为字符串的情况 1 var text = 'cat, bat, sat, fat'; 2 // 在字符串中找到at,并将at替换为ond,只替换一次 3 var result = text.replace('at', 'ond'); 4 // "cond, bat, sat, fat" 5 console.log(result); 2. 第一个参数为RegExp对象,第二个参数为字符串 我们可以发现上面这种情况只替换了第一个at,如果想要替换全部at,就必须使用RegExp对象。 1 var text = 'cat, bat, sat, fat'; 2 // 使用/at/g 在全局中匹配at,并用ond进行替换 3 var result = text.replace(/at/g, 'ond'); 4 // cond, bond, sond, fond 5 console.log(result); 3. 考虑RegExp对象中捕获组的情况。 RegExp具有9个用于存储捕获组的属性。$1, $2...$9,分别用于存储第一到九个匹配的捕获组。我们可以访问这些属性,来获取存储的值。 1 var text = 'cat, bat, sat, fat'; 2 // 使用/(.at)/g 括号为捕获组,此时只有一个,因此所匹配的值存放在$1中 3 var result = text.replace(/(.at)/g, '$($1)'); 4 // $(cat), $(bat), $(sat), $(fat) 5 console.log(result); 4. 第二个参数为函数的情况,RegExp对象中不存在捕获组的情况。 1 var text = 'cat, bat, sat, fat'; 2 // 使用/at/g 匹配字符串中所有的at,并将其替换为ond, 3 // 函数的参数分别为:当前匹配的字符,当前匹配字符的位置,原始字符串 4 var result = text.replace(/at/g, function(match, pos, originalText) { 5 console.log(match + ' ' + pos); 6 return 'ond' 7 }); 8 console.log(result); 9 // 输出 10 /* 11 at 1 dd.html:12:9 12 at 6 dd.html:12:9 13 at 11 dd.html:12:9 14 at 16 dd.html:12:9 15 cond, bond, sond, fond dd.html:16:5 16 */ 5. 第二个参数为函数的情况,RegExp对象中存在捕获组的情况。 1 var text = 'cat, bat, sat, fat'; 2 // 使用/(.at)/g 匹配字符串中所有的at,并将其替换为ond, 3 // 当正则表达式中存在捕获组时,函数的参数一次为:模式匹配项,第一个捕获组的匹配项, 4 // 第二个捕获组的匹配项...匹配项在字符串中的位置,原始字符串 5 var result = text.replace(/.(at)/g, function() { 6 console.log(arguments[0] + ' ' + arguments[1] + ' ' + arguments[2]); 7 return 'ond' 8 }); 9 console.log(result); 10 // 输出 11 /* 12 cat at 1 13 bat at 6 14 sat at 11 15 fat at 16 16 cond, bond, sond, fond 17 */ 以上为replace方法的所有可以使用的情况,下面我们使用replace和正则表达式共同实现字符串trim方法。 1 (function(myFrame) { 2 myFrame.trim = function(str) { 3 // ' hello world ' 4 return str.replace(/(^\s*)|(\s*$)/g, ''); 5 }; 6 window.myFrame = myFrame; 7 })(window.myFrame || {}); 8 // 测试 9 var str = ' hello world ' 10 console.log(str.length); // 15 11 console.log(myFrame.trim(str).length); // 11

优秀的个人博客,低调大师

第149天:javascript中this的指向详解

js中的this指向十分重要,了解js中this指向是每一个学习js的人必学的知识点,今天没事,正好总结了js中this的常见用法,喜欢的可以看看: 1、全局作用域或者普通函数中this指向全局对象window。 1 //直接打印 2 console.log(this) //window 3 4 //function声明函数 5 function bar () {console.log(this)} 6 bar() //window 7 8 //function声明函数赋给变量 9 var bar = function () {console.log(this)} 10 bar() //window 11 12 //自执行函数 13 (function () {console.log(this)})(); //window 2、方法调用中谁调用this指向谁 1 {console.log(this)} 2 } 3 person.run() // person 4 5 //事件绑定 6 var btn = document.querySelector("button") 7 btn.onclick = function () { 8 console.log(this) // btn 9 } 10 //事件监听 11 var btn = document.querySelector("button") 12 btn.addEventListener('click', function () { 13 console.log(this) //btn 14 }) 15 16 //jquery的ajax 17 $.ajax({ 18 self: this, 19 type:"get", 20 url: url, 21 async:true, 22 success: function (res) { 23 console.log(this) // this指向传入$.ajxa()中的对象 24 console.log(self) // window 25 } 26 }); 27 //这里说明以下,将代码简写为$.ajax(obj) ,this指向obj,在obj中this指向window,因为在在success方法中,独享obj调用自己,所以this指向obj 3、在构造函数或者构造函数原型对象中this指向构造函数的实例 1 //不使用new指向window 2 function Person (name) { 3 console.log(this) // window 4 this.name = name; 5 } 6 Person('inwe') 7 //使用new 8 function Person (name) { 9 this.name = name 10 console.log(this) //people 11 self = this 12 } 13 var people = new Person('iwen') 14 console.log(self === people) //true 15 //这里new改变了this指向,将this由window指向Person的实例对象people

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册