??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲最大AV网站在线观看,亚洲视频.com,亚洲一区二区三区无码中文字幕 http://www.tkk7.com/produ/zh-cn Sat, 10 May 2025 07:33:46 GMT Sat, 10 May 2025 07:33:46 GMT 60 spring bootQ闪电上?/title> http://www.tkk7.com/produ/archive/2016/06/01/430728.html都较?/dc:creator>都较?/author>Wed, 01 Jun 2016 04:00:00 GMT http://www.tkk7.com/produ/archive/2016/06/01/430728.html http://www.tkk7.com/produ/comments/430728.html http://www.tkk7.com/produ/archive/2016/06/01/430728.html#Feedback 0 http://www.tkk7.com/produ/comments/commentRss/430728.html http://www.tkk7.com/produ/services/trackbacks/430728.html spring-boot是什么? spring-boot是spring的一个子目Qspring-boot旨在能够快速构建基于spring的独立的Q品别的应用Q拥?#8220;一键启?#8221;Q?#8220;配置U?#8221;Q?#8220;内置服务?#8221;Q?#8220;应用健康?#8221;{一pd高逼格的功能?br />spring-boot hello world 注:q里的hello worldq没有一板一眼的官|的案例照搬Q而是希望以一U最快速的方式构徏一个由spring boot构徏的应用,让包括我在内的对spring boot陌生的同学对它有一个最直观的感受?br /> java IDE MavenQEclipse内置Q?br /> 你也可以自行配置一个外部MavenQ随?br /> 接下来我们新Z个Maven目Q我们选取webapp模板 搭徏完毕之后Q我们需要修改pom.xml文gQ将spring boot相关的依赖添加进?br />首先Q添加parent节点到pom.xml1 < parent > 2 < groupId > org.springframework.boot</ groupId > 3 < artifactId > spring-boot-starter-parent</ artifactId > 4 < version > 1.3.5.RELEASE</ version > 5 </ parent >
spring boot提供了一pd?#8220;starter POMs ”,可以L的添加相关的jar到项目的c\径下Q?span style="background-color: #ffff00;">spring-boot-starter-parent节点则是一个特D的“starter”Q它提供了很多maven默认的依赖,q且提供了依赖管理,使得我们可以忽略依赖的版本号Q也是说我们无需再声?span style="background-color: #ffff00;">version标识?br /> *starter POMsQ可以理解一pd的依赖,每一个依赖都提供了该功能所需的jar?/strong> 我们dspring-boot-starter-web 到pom.xml 1 < parent > 2 < groupId > org.springframework.boot</ groupId > 3 < artifactId > spring-boot-starter-parent</ artifactId > 4 < version > 1.3.5.RELEASE</ version > 5 </ parent > 6 7 < dependencies > 8 < dependency > 9 < groupId > org.springframework.boot</ groupId > 10 < artifactId > spring-boot-starter-web</ artifactId > 11 </ dependency > 12 </ dependencies >
之后我们看到构徏web应用所需的jar包已l添加到Maven依赖中了 更多关于“starter”的信息可以查?br />http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-starter 接下来可以写代码了,d一?#8220;控制?#8221;到src/main/java/demo?br /> 1 package demo; 2 3 import org.springframework.boot.*; 4 import org.springframework.boot.autoconfigure.*; 5 import org.springframework.web.bind.annotation.*; 6 7 @RestController 8 @EnableAutoConfiguration 9 public class Example {10 11 @RequestMapping("/")12 String home() {13 return "Hello World!";14 }15 16 public static void main(String[] args) throws Exception {17 SpringApplication.run(Example.class , args);18 }19 20 }
之后我们“run as Java application”或者通过Maven goals“spring-boot:run”Q就可以发现Q我们的服务已经在本地的8080端口启动了?br /> 是不是太快了...我也q么觉得Q真的是“ȝ?#8221;的部|?br />@RestController q个注解?#8220;stereotype annotation”Q不知道怎么译合适,或许可以理解?#8220;套版注解”Q,在阅M码的时候给读者提供必要的提示Q对于spring来说Q他扮演了一个特别的角色Q在案例中他是一个web的控制器Q所以spring会用他来处理对应的请求?br />@RequestMapping
用过spring-MVC的同学都知道Q这个注解用来对应\?br />@EnableAutoConfiguration
q个注解比较牛皮了Q也是目前ؓ止个人感觉spring boot强大的地方之一。这个注解告知springQ去通过你添加的依赖Q?#8220;猜测”你想要怎么去配|springQ比如我们添加了start POM spring-boot-starter-web Q那么spring会认为我们需要部|一个web应用Q所以spring boot帮助我们启动tomcat服务Q配|springMVC{操作。官Ҏ档同时提刎ͼ@EnableAutoConfiguration注解在设计时׃start POMs协作良好Q但是二者ƈ不绝对相养Iq没有start POMQspring boot依然会尽最大努力去自动配置Q笑Q?br /> 截止目前Q排除细节的情况下,已经通过最单粗暴的方式构造了一个spring boot的应用,希望在认知上能给大家一点帮助,但是q远q不够,后箋q要d更多与web应用相关的内宏V?img src ="http://www.tkk7.com/produ/aggbug/430728.html" width = "1" height = "1" /> ]]> 试水公众h章:你搞IT的?帮我修个电脑吧! http://www.tkk7.com/produ/archive/2016/05/30/430708.html都较?/dc:creator>都较?/author>Mon, 30 May 2016 10:10:00 GMT http://www.tkk7.com/produ/archive/2016/05/30/430708.html http://www.tkk7.com/produ/comments/430708.html http://www.tkk7.com/produ/archive/2016/05/30/430708.html#Feedback 2 http://www.tkk7.com/produ/comments/commentRss/430708.html http://www.tkk7.com/produ/services/trackbacks/430708.html 你搞IT的?帮我修个电脑吧!
某日
七大姑:“你是学什么的啊?”
我:“噢,我是学IT的?#8221;
八大姨:“啥?挨踢q用学?你是学武术的Q?#8221;
我:“?#8230;…我是学电脑的?#8221;
熊孩子:“叔叔我电脑坏了,帮我修修”
我:“叫哥哥才l你?#8221;
熊孩子:“叔叔你真矫情Q?#8221;
我:“……” 上面q个D子是广大IT人士真实的生zd照,在大多数人眼里,“计算Z?#8221;U等?#8220;会修电脑”Q不能否认的是,q两者之间确实有一定的联系。那?#8220;计算Z?#8221;?#8220;会修电脑”到底有什么关pdQ?/strong> 那么首先Q从概念上来Ԍ什么是计算机?
“接受使用者输入指令与数据Q经׃央处理器的数学与逻辑单元q算处理后,以生或储存成有用的信息”Q这句文l绉的概念就是对计算机的定义Q在生活中,我们l常用的W记本电脑就是计机的一U。根据这个定义,计算器、手机、^ѝGPS、ATM{等Q这些都是计机Q?/span>
现在我们知道Q电脑只是计机的一U,虽然电脑是计机的俗Uͼ但是修电脑可不能当修计算机理解。那么,我们所说的修,具体是指什么呢Q?/span>
看一下我们n边的W记本电脑,Ҏ概念Q从外观上我们可以把计算机的l成大致分ؓ三部分:
然而对于第2点,如果你曾l拆开q机,你会发现机箱内部最重要的部分是LQ上面插满了各种各样的组Ӟ整部L的核心在于中央处理器 (Central Processing Unit, CPU)。CPU的主要工作在于管理和q算Q因此在 CPU 内又可细分两个主要的单元Q分别是Q?数逻辑单元与控制单元。其中算数逻辑单元主要负责E序q算与逻辑判断Q控制单元则主要在协调各周边lg与之间的工作?/span>
输入讑֤获取的数据传输到内存QCPU再经׃内存获取q些数据q行q算和判断,处理完毕的数据写回到内存中Q最后,数据再由内存传输到输备?/span>
l合上面所说的Q我们会知道其实计算机是由几个设备所l成的,包括输入讑֤?输出讑֤、CPU内部的控制单元、算数逻辑单元与内存五大部分。而计机产生的故障,有可能来自以上q些g讑֤Q那么修的工作可能会来自q些g讑֤?/span>
* 拓展阅读Q第一台计机
世界上第一台计机“ENIAC”?946q在国宑֤法尼亚大学诞生。发明h是美国hU翰·阿塔那烦夫(AtanasoffQ教授。美国国防部用它来进行弹道计。它是一个庞然大物,用了18000个电子管Q占?70qxcI重达30吨,耗电功率U?50千瓦Q每U钟可进?000ơ运,q在现在看来微不道Q但在当时却是破天荒的?ENIAC以电子管作ؓ元器Ӟ所以又被称为电子管计算机,是计机的第一代。电子管计算机由于用的电子体U很大,耗电量大Q易发热Q因而工作的旉不能太长?br />然而大多数情况下,我们需要修复的是Y件的故障
一般来_软g被划分ؓpȝ软g和应用Y件。计机是硬件所l成Qؓ了有效率的控制这些硬件资源,需要操作系l的支持?操作pȝ除了有效率的控制q些g资源的分配,q要提供计算作所需要的功能(如网l功?QY件和g的简易关pd如下所C?/p>
操作pȝQ操作系l虽然只能提供对g最基本的支持,但是二者的联系非常紧密Q一旦操作系l出现异常,那么意味着上层软g都有可能无法正常工作Q所以异常关机,断电Q删除系l文件等操作都有可能会破坏操作系l,q而危害个人的应用E序和重要资料?/span>
应用E序Q如果你有额外的g讑֤Q比如玩游戏Q你需要一块性能优越的显C卡Q那么你需要单独在操作pȝ上安装这块显C卡的驱动程序,才能保证q块昄卡的正常使用。驱动程序ƈ不属于操作系l,它由g厂商开发ƈ提供Q针对特定操作系l,特定版本Q特定硬Ӟ所以一定要安装匚w的驱动程序,否则很容易导致常见的“蓝屏”效果。说?#8220;蓝屏”Q值得一提的是,量不要安装功能相近的YӞ比如杀毒YӞ他们之间L相爱相杀的,说不准就会打?#8220;战场”Q驱动程序的版本也没有必要追求最斎ͼ因ؓ新颖q不意味着E_Q用的时候主机应该保持稳定,不要随意晃动Q看了刚才的数据向Q如果主板和内存的插口松动,也很Ҏ出现pȝ异常?/span>
说了q么多,让我们回到最初的问题Q计机专业和修电脑到底什么关p?
电脑是计机的俗Uͼ但是修电脑ƈ不意味着会修所有的计算机,所以二者的关系是:计算Z业ƈ不等同会修电脑,因ؓ修电脑这个问题太大了。ITZ有很多类型,gQYӞ|络{等Q所以你的一?#8220;我的电脑q不上网?#8221;Q可能就会涉及到多方面的问题定位Q所以如果你的问题如果更清晰一些,比如Q?#8220;我按下电源没有反?#8221;Q你或许应该d询硬件工E师Q?#8220;我的pȝH然崩溃Q蟩Z堆我看不懂的东西”Q你或许该去咨询pȝ工程师;“我连不上|络?#8221;Q你或许该去咨询|络理员?/span>
严格来说Q修电脑q不是一件简单的事情Q但是我们有一U?#8220;病大治”的Y仉题解x?#8212;—重新安装Q希望各位读者合理用电脑,多一些流畅的使用体验Q少一些o人烦恼的异常?br />http://mp.weixin.qq.com/s?__biz=MzA5NzMyODc5Ng==&mid=510224912&idx=4&sn=9b7fcd6e374f957b74ef89baf52781f9#rd
]]>Java反编译工?/title> http://www.tkk7.com/produ/archive/2016/05/28/430691.html都较?/dc:creator>都较?/author>Sat, 28 May 2016 04:36:00 GMT http://www.tkk7.com/produ/archive/2016/05/28/430691.html http://www.tkk7.com/produ/comments/430691.html http://www.tkk7.com/produ/archive/2016/05/28/430691.html#Feedback 0 http://www.tkk7.com/produ/comments/commentRss/430691.html http://www.tkk7.com/produ/services/trackbacks/430691.html Ҏ比较单,获取生环境jar包,反编译之后和本地代码q行Ҏ。从接触反编译工具以来,到写下这笔讎ͼ我一直是使用的jd-gui 直到今天Q偏偏是我所需要的一?class文g不能反编译,出现了如下的情况 很慌啊,竟然不能反编译,其他?class文g却可以,真是伤心Q无奈求助搜索引擎,发现了一ƾjd-gui的同cdP但是却可以解军_?/ INTERNAL ERROR//的问题,真是太棒了,赶紧贴出?a >https://github.com/deathmarine/Luyten 有过比对才发现luyten的速度比jd-gui快很多,真是长江后浪推前,一代更比一代浪 ]]> C#对称加密法Java实现 http://www.tkk7.com/produ/archive/2016/03/28/430629.html都较?/dc:creator>都较?/author>Mon, 28 Mar 2016 14:12:00 GMT http://www.tkk7.com/produ/archive/2016/03/28/430629.html http://www.tkk7.com/produ/comments/430629.html http://www.tkk7.com/produ/archive/2016/03/28/430629.html#Feedback 0 http://www.tkk7.com/produ/comments/commentRss/430629.html http://www.tkk7.com/produ/services/trackbacks/430629.html 最q因Z务需求,需要把一DC#~写的加密代码采用Javaq行实现Q在此记下我的实施过E和q程中碰到的一些问题以备后用。ؓ了便于观察,只脓上C#源码中关键的部分Q?br /> 1 /// 2 /// <summary> 3 /// 加密Ҏ 4 /// </summary> 5 /// <param name=\"Source\"> 待加密的?/span></param> 6 /// <returns> l过加密的串 </returns> 7 public static string Encrypto(string Source) 8 { 9 byte [] bytIn = UTF8Encoding.UTF8.GetBytes(Source);10 MemoryStream ms = new MemoryStream();11 mobjCryptoService.Key = GetLegalKey();12 mobjCryptoService.IV = GetLegalIV();13 // 创徏对称加密器对?br /> 14 // 下面的控制台打印是我自己d方便观察?/span>15 Console.WriteLine("KeySize:" + mobjCryptoService.KeySize);16 Console.WriteLine("LegalKeySizes:" + mobjCryptoService.LegalKeySizes.Length);17 Console.WriteLine("Mode:"+ mobjCryptoService.Mode);18 Console.WriteLine("Padding:"+mobjCryptoService.Padding);19 ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();20 // 定义数据流链接到加密{换的?/span>21 CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);22 cs.Write(bytIn, 0, bytIn.Length);23 cs.FlushFinalBlock();24 ms.Close();25 byte [] bytOut = ms.ToArray();26 27 return Convert.ToBase64String(bytOut);28 }29 30 /// 31 /// <summary> 32 /// 解密Ҏ 33 /// </summary> 34 /// <param name=\"Source\"> 待解密的?/span></param> 35 /// <returns> l过解密的串 </returns> 36 public static string Decrypto(string Source)37 {38 try 39 {40 byte [] bytIn = Convert.FromBase64String(Source);41 MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);42 mobjCryptoService.Key = GetLegalKey();43 mobjCryptoService.IV = GetLegalIV();44 // 创徏对称解密器对?/span>45 ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();46 // 定义数据流链接到加密{换的?/span>47 CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);48 StreamReader sr = new StreamReader(cs);49 return sr.ReadToEnd();50 }51 catch (Exception)52 {53 return string .Empty;54 }55 }
其中有一个问题:
1 // 生成加密器的对象由RijndaelManaged得来Q那么这个RijndaelManaged对象是干嘛的Q第三方的?原生的? 2 private static SymmetricAlgorithm mobjCryptoService = new RijndaelManaged();
调查之后Q好吧,它是一U对U加密算法(可以理解为在双方之间可以实现加解密)Q以下来自百U:
高加密标准Q英语:Advanced Encryption StandardQ羃写:AESQ,在密码学中又URijndael加密法,是美国联邦政府采用的一U区块加密标准。这个标准用来替代原先的DESQ已l被多方分析且广为全世界所使用。经q五q的甄选流E,高加密标准q国国家标准与技术研IQNISTQ于2001q?1?6日发布于FIPS PUB 197Qƈ?002q??6日成为有效的标准?006q_高加密标准已然成ؓ对称密钥加密中最行的算法之一?/div>
…
之前对加密标准认识的q不多,但是通过代码来看Q似乎实现对U加密还需要别的材料,看到下面q两个方?/div>
1 /// <summary> 2 /// 获得密钥 3 /// </summary> 4 /// <returns> 密钥 </returns> 5 private static byte [] GetLegalKey() 6 { 7 string _TempKey = Key;// Key已经预先写死在代码里?/span> 8 mobjCryptoService.GenerateKey(); 9 byte [] bytTemp = mobjCryptoService.Key;10 int KeyLength = bytTemp.Length;11 if (_TempKey.Length > KeyLength)12 _TempKey = _TempKey.Substring(0, KeyLength);13 else if (_TempKey.Length < KeyLength)14 _TempKey = _TempKey.PadRight(KeyLength, ' ');15 return ASCIIEncoding.ASCII.GetBytes(_TempKey);16 }17 // GetLegalKeyҎ每次都会q回一个长度ؓ32的byte数组 18 // mobjCryptoService.Key = GetLegalKey(); 19 20 /// <summary> 21 /// 获得初始向量IV 22 /// </summary> 23 /// <returns> 初试向量IV </returns> 24 private static byte [] GetLegalIV()25 {26 string _TempIV = "$%^&*()_osudghwe7%%2kdijskldglk2397^&*wigwuqwelkn";// q是虚构?/span>27 mobjCryptoService.GenerateIV();28 byte [] bytTemp = mobjCryptoService.IV;29 int IVLength = bytTemp.Length;30 if (_TempIV.Length > IVLength)31 _TempIV = _TempIV.Substring(0, IVLength);32 else if (_TempIV.Length < IVLength)33 _TempIV = _TempIV.PadRight(IVLength, ' ');34 return ASCIIEncoding.ASCII.GetBytes(_TempIV);35 }36 // GetLegalIVҎ每次都会q回一个长度ؓ16的byte数组 37 // mobjCryptoService.IV = GetLegalIV();
虽然是通过两个Ҏ来取得的KEY和IVQ二者都是byte数组Q,但是KEY和IV都是预先写死在代码里的,只不q是q回了特定长度的byte数组?/div>
1 // RijndaelManagedQ这是对U算法合法的key和IV的长度(分别以位来计) 2 // Legal min key size = 128 3 // Legal max key size = 256 4 // Legal min block size = 128 5 // Legal max block size = 256
l过调查Q还需要配|算法的mode和paddingQ此处ƈ没有q行讄Q所以默认分别ؓCipherMode.CBC和PaddingMode.PKCS7。详?a title="mode">mode?a title="padding">padding
目前来看Q需要调查的可以告一D落了,那么接下来,需要调查如何Java实现了。在Java中,实现加密需要用到JCE提供的Cipher对象Q类比C#的实玎ͼ借鉴q大E序员的智慧Q我首先试写了一下(只脓出关键部分)
1 public void init(byte [] keyBytes) { 2 3 // 如果密钥不16位,那么p? q个if 中的内容很重?/span> 4 int base = 16; 5 if (keyBytes.length % base != 0) { 6 int groups = keyBytes.length / base 7 + (keyBytes.length % base != 0 ? 1 : 0); 8 byte [] temp = new byte [groups * base]; 9 Arrays.fill(temp, (byte ) 0);10 System.arraycopy(keyBytes, 0, temp, 0, keyBytes.length);11 keyBytes = temp;12 }13 // 转化成JAVA的密钥格?/span>14 key = new SecretKeySpec(keyBytes, "AES");15 try {16 // 初始化cipher 17 cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");18 } catch (NoSuchAlgorithmException e) {19 e.printStackTrace();20 } catch (NoSuchPaddingException e) {21 e.printStackTrace();22 } 23 }24 25 /** 26 * 加密Ҏ 27 * @param content 待加密內容字W串 28 * @param keySrc 加解密密U钥字符?br /> 29 * @param iv 法所需向量 30 * @return 31 * @throws UnsupportedEncodingException 32 */ 33 public String encrypt(String content, String keySrc,String iv) throws UnsupportedEncodingException {34 byte [] encryptedText = null ;35 init(keySrc.getBytes("utf-8"));36 try {37 cipher.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(iv.getBytes()));38 encryptedText = cipher.doFinal(content.getBytes("utf-8"));39 } catch (Exception e) {40 e.printStackTrace();41 }42 return Base64.encodeBase64String(encryptedText);43 }44 45 /** 46 * 解密Ҏ 47 * @param encryptedData 待解密数?br /> 48 * @param keySrc 加解密密U钥字符?br /> 49 * @param iv 法所需向量 50 * @return 51 * @throws UnsupportedEncodingException 52 */ 53 public String decrypt(String encryptedData, String keySrc,String iv) throws UnsupportedEncodingException {54 byte [] decryptedText = null ;55 init(keySrc.getBytes("utf-8"));56 try {57 cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(iv.getBytes()));58 decryptedText = cipher.doFinal(Base64.decodeBase64(encryptedData));59 } catch (Exception e) {60 e.printStackTrace();61 }62 return new String(decryptedText);63 }64 65 public static void main(String[] args) throws UnsupportedEncodingException {66 EncryptingUtil eu = new EncryptingUtil();67 68 String content = "abc";69 // 加密字符?/span>70 System.out.println("加密前的Q? + content);71 // 加密Ҏ 72 String enc = eu.encrypt(content,"U钥?,"向量?);73 System.out.println(enc);74 // 解密Ҏ 75 String dec = eu.decrypt(enc,"U钥?, "向量?);76 System.out.println("解密后的内容Q? + dec);77 }
Java版本的实玎ͼ目前有几个问题,一个就是补齐方式的问题Q在C#中默认的补齐方式PKCS7Q但是Java默认q不支持该补齐方式,只有PKCS5Q其ơ就是秘钥的长度问题QC#代码中的U钥长度?56位的Q但是Java默认最大支?28位的Q执行时会报?#8221;Illegal key size”的问题。这位大牛的东东帮到我了Q感谢?a title="查看">查看
当需要?56位长度的U钥Ӟ需要下载对应Java版本的JCE拓展包,图中的问题就是因为JCE拓展包和Java版本不匹配引L
]]>
现在开始做吧,要不你连成功的可能都没有 http://www.tkk7.com/produ/archive/2016/01/02/430627.html都较?/dc:creator>都较?/author>Sat, 02 Jan 2016 14:00:00 GMT http://www.tkk7.com/produ/archive/2016/01/02/430627.html http://www.tkk7.com/produ/comments/430627.html http://www.tkk7.com/produ/archive/2016/01/02/430627.html#Feedback 0 http://www.tkk7.com/produ/comments/commentRss/430627.html http://www.tkk7.com/produ/services/trackbacks/430627.html D “没有M借口”体现的是一U负责、敬业的_Q一U服从,诚实的态度Q一U完的执行能力Q我们需要的正是q种_的hQ他们想办法去完成dQ而不是去L借口Q哪怕看似合理的借口?#8220;现在开始做吧,要不你连成功的可能都没有”
——诅R没有Q何借口》有?/div>
一ơ偶然的ZQ部门开展了一ơ关?#8220;执行?#8221;的培训,说是偶然Q是因ؓ培训前我的工作状?#8220;不在状?#8221;Q我自我感觉在工作上效率偏低Qƈ没有发挥我应有的做事效率和状态,所以,有了这《没有Q何借口》的d感?br />做事情找借口Q而到最后没有完成,q或许是生活中最常见的场景了Q但是你或许会说Q生zM也确实有一些客观存在的其他因素Q导致了计划的g误,或者项目的p|Q这是不可避免的?br />
上班的时候浏览网,开差Q看手机耽误了工作的旉Q工作效率低下,拖g工作旉Q实际存在的“大忙?#8221;Q?/li> 开会的时候没有叫上我Q而只是事后给我安排Q务,心存不满而不愿承担(比v责QQ却选择了借口Q?/li> 之前从来没有q么做过Q担心出错,不愿意尝试(不敢试错Q不敢创斎ͼ时代和科技都日新月异,你敢原地t步吗?Q?/li> 没有参加q相兛_训,提出的发a没有性,不适合做这个工作(不自信,不称职,~Z责Q感,相比于盲目的发言Q倒不如说“不知?#8221;来得痛快直观Q?/li> 同行做的那么好了Q我们差那么多,做了又有什么用Q(态度消极悲观Q你以ؓ你的胖是一天吃出来的?Q?/li> 以上U种都只是冠冕堂皇的借口Q不但没有细化问题,去逐步解决Q只是放大了一个模p的问题Q抛l了其他人,qƈ不是l自己或者上U一个交代,q只是敷衍逃避而已。久而久之,我们一旦养成了习惯Q那么对自nQ对团队Q对企业是莫大的伤宻I你将L功越来越q,你将永远不会成ؓ你想象中的样子,成ؓ你想成ؓ的hQ?br /> 倘若某g事情完不成,你就要被枪毙Q你q敢瞎比比吗Q?br /> 我虽然不是职场小鲜肉Q但也还没到职场“老a?#8221;的程度,渐渐的,心态上也会也有一些{变?br />
我们不单U是Z公司的利益而工作,更ؓ了自p工作啊。作为公司的成员Q我们是同手同脚休戚与共的,我们解决的问题不仅会出现在工作中Q也会出现在工作之外的时间或地点Q只要我们能把工作上升到Z提升自己而工作,Z变得更加U职而工作,我们也不会因为加班和工作带来的其他问题而烦恹{?/li> 始终怀有饱满的热情Q对公司的品充满信心。没有h愿意和厌世的人做朋友Q也不会有h喜欢消极的hQ你对自己充满信心,对公司的产品和服务充满信心,周围的h自然会被你感染,你自然也会被重用?/li> 敢于吃螃蟹,敢于扛大旗。这里说的不是出风头和占便宜Q而是_对于工作中棘手的问题敢于站出来,虽然我知道你心里可能没底Q但是这N不是一个加速自我提升的Z吗? 消停点,别老是抱?#8220;公司里没有h带我Q这个做不了”。得了吧Q有人带你又能怎么P通过一q获得别Zq的工作l验Q你加班都加不出来啊Q参考上一条徏议吧?/li> 一旦你开始找理由Q那么这件事做不好了,你离p|更q了一步?br />
对于日常的工作,我们不仅要充分发挥主观能动性,不给借口生存的空_对于上的安排,我们更要摆正心态,切实落地执行?/div>
对于上的命令和安排Q要切实的去执行Q这是达成共同目标的基本保证Q当Ӟ商场q战场Q不能完全照搬,虽然上也会犯错Q但是当下却是以执行为重Q?/li> 团队内,乃至于整个公司,遵守U律是我们共同踏步向前的守则Q就好比每天中午的健w操一Pq虽然和工作没有直接的关p,但是q对于保持我们的工作状态却有着U极的帮助。在工作上的分歧Q很ҎD我们和同事,领导甚至公司之间产生对立情AQ这是万万不得的,我们是一个团体,l护共同的服务和产品Q公司的形象是我们自n的Ş象,我们自n的Ş象也是公司的形象?/li> 事无巨细的对待工作,才能事无巨细的对待h生。大多数人的工作都是自己选择的,我们选择每天p8个小时或者更多的生命投入在其中,我们希望成就一些结果,那么p求我们锱铢必较的ȝ待它Q工作之中无事Q厚U才能薄发,工作能做好的人,生活也不会太差?/li> 工作不论是不是自己选择的,不论工作带来的好与不好,它都是我们的工作Q我们要接受它,除非你走人,否则Q接受它Qƈ且现在就开始做Q现在! 作ؓl织的一员,服从安排Q遵守纪律自然不必说Q无规矩不方圆的道理都懂得,但是我也不是从一开始就很从容的接收q些条条框框Q那些看似抠门不仁道的规定实际上是ؓ了塑造更优秀的自己,打造更优秀的团队,没听说过谁谁不关心你q愿意花心思去束你的Q想惌q亲妈吧?br />
工作x责QQ选择了这份责任,p不遗余力的承担下去,承担的过E可能看h?#8220;愚蠢”的,但是却反映了你的负责E度?/div>
在工作中职责Q那么将会受到同事的重Q领导的赏识Q在C会中你也会获得更好的生存条Ӟ推卸责QQ玩忽职守,那无非是在自q人生道\上设|障?/li> 能力大Q责任越大,我们要有效运用手里的能力Qؓ自己和社会创造h|q也正是我们存在的意义。负责h的h也是能有效运用能力的人,不成熟的人ƈ不具备行责ȝ能力Q就好比英雄电媄里的英雄Q保护世界的愿望很美好,但是需要与之相匚w的能力?/li> 负责一定是对结果负责。如果超U英雄保护地球失败,那还好意思说“我们会保护好地球”的吗Q如果你让一个负责h的h去负责某件事的过E,那么他肯定不会满意的Q因为只有结果才能满责hQ才会让他有成就感。对行ؓ负责某种E度上也是逃避责Q的一U表现?/li> 对于承担责QQ忠诚是一个必ȝ品质Q没有忠诚,没有责任这一_要承担责任首先要对自己忠诚,在这个前提之下,你才有可能去达成惌的结果,你才能对得v信Q你的人,你才能对得v自己?/li> 责Q是无形的Q是没有条g的,你在q求卓越的同Ӟ责Q是相伴相生的Q责L自朋友,家h和社会,成熟的h承担着更多的责任,有着更强大的能力Q幼E的人拒l责任,惶惶不可l日 我们都听q,同岗不同酬,或者入职时间相同,但是成长和晋升不同的事情Q真是老生常谈了啊。我们都有一颗不甘于q_的心Q都不愿意打工一辈子Q都惛_老板Q但是很多h到最后都归于q_Q但是老板也不是从一开始就是老板的,那么我们如何在自q岗位上做到^凡而不q_呢?
“你追求卓,成功q求?#8221;Q这是一句来自《三d闹宝莱坞》的台词Q无Zw处什么岗位,你是客服Q服务好你的每一个客P你是E序员,服务好你的每一行代码,你是理者,服务好你的每一计划,事做多做好Q那么事情再多也能有条不?/li> 过客户的预惻I不论客户是谁Q事情得出的l果Q那么你总能得到好评Q多做一点点Q你能收L可不止一点点Q倘若你都考虑理者或者老板该考虑的事情了Q那么你距离他们q会q吗Q?/li> 路是出来的,做事的办法也是脑子想出来的,我们生来是要解决问题的Q食住行的问题我们能搞的定Q工作的问题同样搞的定,让困难放马过来,让它知道它不是最后一个死在自己手下的困难?/li> 全局意识。有Q同L人摆在不同的位置Q就是不同的人,q是相对的,归根I底q是要看人本w的Q倘若一个h的心态不同,那么所Ȁ发的能量是l对的。我们应该都听过泥瓦匠砌墙的故事Q一个把工作只是当做砌墙的hQ和一个把工作看成是一个伟大工E的人,心态所带来的能量是l对不一LQ前者,无论让他ȝ一间小屋,或者是ȝ一座大厦,在他眼里都是砌墙Q但是在后者眼里,屋和大厦同h宏伟的工E,他将会以为拥有更高远的眼光而受到重用?/li> 不甘于^凡,首先要正视^凡,q_不是q_Q我们追求卓,成功自然q求我们Q如果不是这P那么成功q求谁呢Q如果一个企业里员工的榜样不是老板Q那么这个企业一定岌岌可?/strong>
“志同而事Q道同而谋”Q这是来自我们BOSS的一个观?br />
我们是一个团队,我们在一条船上,同呼吸,共命q,p退Q我们对于目标的实现Q应该不受n份或者岗位的限制Q都应该投入100%的热情和_֊?/li> 我们应该感谢企业l了我们一个施展才华的舞台Q让我们在团队中M现自q价|同样的,企业也会感激你的付出Q最l受益的Q还是我们自己?/li> 不断充电Q不断提升,不给自己NQ互联网时代Q原地踏步就是退步?/li> 以上U种不是鸡汤Q不是教条,大道理h人都懂,但是情l却难以自控Q我们都希望能出人头圎ͼ但请诸君时刻戒骄戒躁Q稳扎稳打,闷声儿装大逼~谢谢
]]>
nginxQ菜鸟手?/title> http://www.tkk7.com/produ/archive/2015/12/01/430580.html都较?/dc:creator>都较?/author>Tue, 01 Dec 2015 09:32:00 GMT http://www.tkk7.com/produ/archive/2015/12/01/430580.html http://www.tkk7.com/produ/comments/430580.html http://www.tkk7.com/produ/archive/2015/12/01/430580.html#Feedback 0 http://www.tkk7.com/produ/comments/commentRss/430580.html http://www.tkk7.com/produ/services/trackbacks/430580.html 以下讲记q的Q是为nginx入门U新人和打算学习nginx的h而准备的?/div>
首先QnginxQ读作:engine xQ是一个反向代理服务器。这里顺侉KqC下相关的概念Q来帮助概念不清楚的朋友来获得最佳的学习体验?/div>
服务器可以按照不同标准划分ؓ很多U,那么q里讨论的就是其中的一U,代理服务器。代理服务器可以再次l分Q分为正向代理服务器和反向代理服务器Q这两者是相对于目标服务器而言的。当我们QOQ希望访问某一台服务器QTQ是具体的服务器Q,但是׃U种原因Q我们不能去直接的访问TQ但是我们可以直接访问另一台服务器QPQ,而P却可以访问TQ那么正好,我们拜托P去访问TQ将获得的信息返回给我们Q这个过E中Q我们始l知道要讉K的那一台服务器Q所以,q个代理q程UCؓ正向代理Q那么与之相对,如果我们知道要访问的站点Q但是该站点可能同时部v在多个服务器上,不过最l我们获得了目标站点的内容,q个q程中,我们不知道具体访问过哪一台服务器Q所以,q个代理q程UCؓ反向代理?/div>
那么nginx是q些q来使用率不断攀升的代理服务器,你可以查看一下中间g的用情况,q里l出一个调查,
Ҏ查看 好了Q我们开始吧。我不管你什么系l,但是我假定你已经安装好了nginxQ排除那些系l上操作的差异,我们来感受一下最基本的操作?/div>
nginx?strong>启动Q?strong>停止Q?strong>重新加蝲配置文g
在控制台中定位到nginx所在的目录Q用nginx -s signal操作nginxQsignal可以是以下参?br />
stop — 立刻停止Q不会等待当前工作结束) quit — 延迟停止Q会{待当前工作l束Q?/li> reload — 重新加蝲配置文gQ会优先查新配置文g的格式,通过校验则启用新配置Q不通过则沿用旧配置Q?/li> reopen — 重新打开日志文g 好了Q知道了基本操作之后Q我们就看一下配|文Ӟ看懂了配|文Ӟ我们p让nginx按照我们的需要来q作。打开nginx.cnf文g
#user nobody; #我左Ҏ?#8220;#”Pq说明这一行都是注?br />#下面的这个,看v来像一寚w值对Q这么理解也可以Q官方给出的解释?#8220;单指?#8221; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; #与简单指令相对,下面的event以及一对花括号Q称?#8220;块指?#8221;Q含有其他指令的“块指?#8221;Q我们称?#8220;上下?#8221; #同时Q我们把不被包含在Q何其他上下文中的上下文称作主上下?br />#所以,“events”?#8220;http”是M下文Q?#8220;server”?#8220;location”׃是主上下?br />events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; #好了Q我们需要配|一个服务器最基本的功能,l出h相应l果 #看到下面q个server上下文,它看上去但是也的是用来配制服务器的 server { #q个server上下文监听的端口以及域名 listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; #q里是路由规则了,location加空格再加匹配项Q这里的匚wҎ“/”Q也是说所有以“/”开头的h都符合这个\p?br /> #但是需要注意一点,nginx在匹配\q时候有一个最长前~匚w规则Q看C一个\p?br /> location / { #q里的root指的是响应资源所在的目录Q这是指明,资源在nginx目录下的index目录?br /> root html; #index指o会响应指定的面Q按ơ序q行查找Q找Cp?br /> index index.html index.htm; } #qlocation的匹配项?#8220;/demo”Q那么当一个请求是“/demo/get”的时候,q个h会匹配之前的“/”和这里的“/demo”Q但?br /> #nginx会选择前缀较长的匹配项来匹配,所以nginx会?demo路由的相应内?br /> location /demo { #q里又重新设定了root的|表示用nginx目录demo目录下的资源响应 #如果root在主上下文之外设定,那么相当于一个全局的设定,在其他上下文中没有被覆盖的话Q则使用全局讑֮ root demo; } #截止Cؓ目前的配|,nginx都是用来响应静态的资源Q比如我们访问localhost/demo/show.htmlQ那么nginx会返回nginx目录?br /> #demo目录下show.html的内容,所以,我们l常会把nginx当做一个静态内容缓存来使用Q来~解后箋服务器的响应压力 #对于location来说Q常用的q有正则匚w #静态资源配|,当然也可以来响应动态请求,不过q里有一炚w要注意,当用正则匹配时Q如果请求匹配了当前的\p则,那么 #会以正则的匹配内容ؓdƈq回Q不会用非正则的匹配项内容q回Q以“~”开_pC匹配项是一个正则表辑ּQ当Ӟq有?br /> #他不同规则的前缀都表C正则,后箋再展开 location ~ .*\.(css|js)(.*) { proxy_set_header Host $host; proxy_cache_valid 200 302 1h; proxy_cache_valid 301 1d; proxy_cache_valid any 1m; expires 7d; } #对于代理服务器来_最基本的功能代理是必不可少的,而且配置也非常简?br /> #端口转发配置Q做出如下配|之后,W合匚w的h会原不动的转发到otherhost域名?br /> location /proxy{ proxy_pass http://otherhost; } #下面的配|显而易见,是错误页面的配置 #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
有了q套最基本的配|,可以试着开启nginxQ感受一下它的功?/div>
]]>
javaScript_跨域资源׃nCORS http://www.tkk7.com/produ/archive/2015/11/26/430531.html都较?/dc:creator>都较?/author>Thu, 26 Nov 2015 08:46:00 GMT http://www.tkk7.com/produ/archive/2015/11/26/430531.html http://www.tkk7.com/produ/comments/430531.html http://www.tkk7.com/produ/archive/2015/11/26/430531.html#Feedback 0 http://www.tkk7.com/produ/comments/commentRss/430531.html http://www.tkk7.com/produ/services/trackbacks/430531.html 要记录好q个问题Q首先需要描q清楚这个问题?/div>
有如下的一个场景:我们在实C个系l中某个功能的时候,可能pȝ的某些模块不在一个域名下。用户中心模块部|在user.xxx.com下,产品相关的功能部|在product.xxx.com下,在用户中心的某些面Q我们或许要h产品功能模块的功能,此时׃有问题出现。以Google ChromeQ版?45.0.2454.101 mQ浏览器ZQ当当前的页面在A域名下,我们在页面中构造了一个异步请求,我们需要调用位于B域名下的某个APIQ代码片D如下:
<script type="text/javascript">
$(function () {
// 当前面所在域名:http://localhost:9000/
// jQuery版本Qjquery-1.11.3.min.js
$.ajax({
url : "http://localhost:9001/order/pindexpost",
type : "POST",
dataType : 'json',
success : function (data) {
alert(data);
}
});
});
</script>
但是h之后Q浏览器控制台给Z如下的错误信?/div>
那么q就是标题中所提到?strong>跨域资源׃nCORS问题了。我们把q个概念l化一下,首先Qؓ什么会有CORSQ简单点理解是Z安全考虑Q浏览器都遵循一个叫同源{略的东西,他约束浏览器?#8220;不是你的东西Q你问h家要Qh安认不l你Q除非h家同意给?#8221;Q基于这个策略,有了跨域资源共享的问题Q那么,怎么叫跨域了呢Q上面代码中的域名不是一L吗,都是指向本地的localhost啊。D个栗子说明下
http://www.tkk7.com:80,左边是一个完整的hQ包含了协议Q子域名{等若干部分Q我们把它理解ؓ域,但凡是在q个域下发生的请求,都无法直接访问到其他域的资源
http://www.tkk7.com:80能访问http://www.tkk7.com:81下的资源吗?不行Q?/li>
http://www.tkk7.com:80能访问http://abc.blogjava.net:80下的资源吗?不行Q?/li>
http://www.tkk7.com:80能访问http://www.tkk7.com:80下的资源吗?不行Q?/li>
http://www.tkk7.com:80能访问http://域名对应的真实IP:80下的资源吗?不行Q?/li>
http://www.tkk7.com:80能访问http://www.xyz.net:80下的资源吗?不行Q?/li>
域哪怕有一点点不一?/strong>Q?strong>一点点不一?/strong>Q?strong>一点点不一?/strong>Q都是不可以讉K的,那么问题来了Q如何实现跨域呢Q?目前有三U方案可以打破同源策略所带来的限Ӟ实现跨域h?/div>
使用JSONP 。这U方案是使用HTML的script标签来实现的Qscript标签的src属性不受同源策略约束,可以讉KL站点的资源,但是Q该Ҏ有着自己的约束。首先,他只能发出GEThQ因为script标签的初衷就是ؓ了获取js脚本Q所以如果返回的数据内容不是js脚本的话Q也不会成功。基于这个约束,我们需要改造一下我们的hQ?br />
1 <script type="text/javascript">
2 $(function () {
3 // 当前面所在域名:http://localhost:9000/
4 // jQuery版本Qjquery-1.11.3.min.js
5 $.ajax({
6 url: "http://localhost:9001/order/pindexpost",
7 type: "POST", dataType: 'jsonp',
8 jsonpCallback: "callback"
9 });
10 })
11 ;
12 function callback(result) {
13 alert("suc:" + result);
14 }
15 </script>
刚才提到QJSONP方式是基于script标签的,所以我们要对返回的数据做一些处理,使返回的数据是一Djs脚本才可以。我们在客户端预定义好callback函数Q得服务端q回数据的时候可以直接调用这个callback函数Q服务端代码片段如下Q?/div>
1 response().setContentType("application/javascript");2 return ok("callback(" + data + ")");
要注明返回的格式Qƈ且data的格式也要符合js的语法。其实说白了QJSONP是h目标数据Q然后将目标数据和回调函数进行拼接,以javascript的Ş式返回给览器,之后览器执行的q个回调函数?br />
使用代理服务?/strong>。这个比较好理解Q不q运l的成分多一些,讄一个代理服务器Q根据请求API所在命名空间的不同Q{发到相应的域去,q样一来就骗过了浏览器Q让览器以为所有的数据都来自一个域?br />
讄h的相应头 。在目标API的响应头中添?#8220;Access-Control-Allow-Origin”Q设|gؓ“*”Q这是让服务器通知览器,?#8220;我这个API的响应,是面向所有h的,*׃表这个意思啊”Q但是,q也会带来一个安全性的问题Q所以你可以讄部分站点可以跨域讉KQ比如Access-Control-Allow-Origin: http://www.tkk7.com/Q但是这个响应头存在一定的兼容问题Q具体支持情况可以查?a title="caniuse.com">caniuse.com
]]>Css3实现一个坐标闪烁效?/title> http://www.tkk7.com/produ/archive/2015/11/20/430573.html都较?/dc:creator>都较?/author>Fri, 20 Nov 2015 07:54:00 GMT http://www.tkk7.com/produ/archive/2015/11/20/430573.html http://www.tkk7.com/produ/comments/430573.html http://www.tkk7.com/produ/archive/2015/11/20/430573.html#Feedback 0 http://www.tkk7.com/produ/comments/commentRss/430573.html http://www.tkk7.com/produ/services/trackbacks/430573.html 面内容如下Q?br />1 < body > 2 3 < div class ="target animatecommon" ></ div > 4 < div class ="radiation animatecommon" ></ div > 5 6 </ body > 7
css如下Q?br /> <style type="text/css"> .animatecommon { animation-timing-function :liner ; animation-iteration-count :infinite ; animation-play-state :running ; animation-direction :normal ; /* Firefox: */ -moz-animation-duration :1s ; -moz-animation-timing-function :liner ; -moz-animation-iteration-count :infinite ; -moz-animation-play-state :running ; -moz-animation-direction :normal ; /* Safari and Chrome: */ -webkit-animation-duration :1s ; -webkit-animation-timing-function :liner ; -webkit-animation-iteration-count :infinite ; -webkit-animation-play-state :running ; -webkit-animation-direction :normal ; /* Opera: */ -o-animation-duration :1s ; -o-animation-timing-function :liner ; -o-animation-iteration-count :infinite ; -o-animation-play-state :running ; -o-animation-direction :normal ; } .radiation { width :50px ; height :50px ; border-radius :50% ; background :red ; position :fixed ; top :50% ; left :50% ; margin-left :-25px ; margin-top :-25px ; z-index : 99 ; animation-name :radiation ; /* Firefox: */ -moz-animation-name :radiation ; /* Safari and Chrome: */ -webkit-animation-name :radiation ; /* Opera: */ -o-animation-name :radiation ; } .target { width :100px ; height :100px ; margin-left :-50px ; margin-top :-50px ; border-radius :50% ; background :red ; position :fixed ; top :50% ; left :50% ; z-index : 98 ; animation-name :location ; /* Firefox: */ -moz-animation-name :location ; /* Safari and Chrome: */ -webkit-animation-name :location ; /* Opera: */ -o-animation-name :location ; } @keyframes location { 0% {transform :scaleX(1)scaleY(1) ;-webkit-transform :scaleX(1)scaleY(1) ;-moz-transform :scaleX(1)scaleY(1) ;-o-transform :scaleX(1)scaleY(1) ;} 100% {transform :scaleX(3)scaleY(3) ;-webkit-transform :scaleX(3)scaleY(3) ;-moz-transform :scaleX(3)scaleY(3) ;-o-transform :scaleX(3)scaleY(3) ;filter :alpha(opacity=0) ; -moz-opacity :0 ; -khtml-opacity : 0 ; opacity : 0 ; } } @-moz-keyframes location { 0% {transform :scaleX(1)scaleY(1) ;-webkit-transform :scaleX(1)scaleY(1) ;-moz-transform :scaleX(1)scaleY(1) ;-o-transform :scaleX(1)scaleY(1) ;} 100% {transform :scaleX(3)scaleY(3) ;-webkit-transform :scaleX(3)scaleY(3) ;-moz-transform :scaleX(3)scaleY(3) ;-o-transform :scaleX(3)scaleY(3) ;filter :alpha(opacity=0) ; -moz-opacity :0 ; -khtml-opacity : 0 ; opacity : 0 ; } } @-webkit-keyframes location { 0% {transform :scaleX(1)scaleY(1) ;-webkit-transform :scaleX(1)scaleY(1) ;-moz-transform :scaleX(1)scaleY(1) ;-o-transform :scaleX(1)scaleY(1) ;} 100% {transform :scaleX(3)scaleY(3) ;-webkit-transform :scaleX(3)scaleY(3) ;-moz-transform :scaleX(3)scaleY(3) ;-o-transform :scaleX(3)scaleY(3) ;filter :alpha(opacity=0) ; -moz-opacity :0 ; -khtml-opacity : 0 ; opacity : 0 ; } } @-o-keyframes location { 0% {transform :scaleX(1)scaleY(1) ;-webkit-transform :scaleX(1)scaleY(1) ;-moz-transform :scaleX(1)scaleY(1) ;-o-transform :scaleX(1)scaleY(1) ;} 100% {transform :scaleX(3)scaleY(3) ;-webkit-transform :scaleX(3)scaleY(3) ;-moz-transform :scaleX(3)scaleY(3) ;-o-transform :scaleX(3)scaleY(3) ;filter :alpha(opacity=0) ; -moz-opacity :0 ; -khtml-opacity : 0 ; opacity : 0 ; } } @keyframes radiation { 0% {transform :scaleX(3)scaleY(3) ;-webkit-transform :scaleX(3)scaleY(3) ;-moz-transform :scaleX(3)scaleY(3) ;-o-transform :scaleX(3)scaleY(3) ;filter :alpha(opacity=0) ; -moz-opacity :0 ; -khtml-opacity : 0 ; opacity : 0 ;background : white } 100% {transform :scaleX(1)scaleY(1) ;-webkit-transform :scaleX(1)scaleY(1) ;-moz-transform :scaleX(1)scaleY(1) ;-o-transform :scaleX(1)scaleY(1) ;filter :alpha(opacity=100) ; -moz-opacity :1 ; -khtml-opacity : 1 ; opacity : 1 ;background : red } } @-moz-keyframes radiation { 0% {transform :scaleX(3)scaleY(3) ;-webkit-transform :scaleX(3)scaleY(3) ;-moz-transform :scaleX(3)scaleY(3) ;-o-transform :scaleX(3)scaleY(3) ;filter :alpha(opacity=0) ; -moz-opacity :0 ; -khtml-opacity : 0 ; opacity : 0 ;background : white } 100% {transform :scaleX(1)scaleY(1) ;-webkit-transform :scaleX(1)scaleY(1) ;-moz-transform :scaleX(1)scaleY(1) ;-o-transform :scaleX(1)scaleY(1) ;filter :alpha(opacity=100) ; -moz-opacity :1 ; -khtml-opacity : 1 ; opacity : 1 ;background : red } } @-webkit-keyframes radiation { 0% {transform :scaleX(3)scaleY(3) ;-webkit-transform :scaleX(3)scaleY(3) ;-moz-transform :scaleX(3)scaleY(3) ;-o-transform :scaleX(3)scaleY(3) ;filter :alpha(opacity=0) ; -moz-opacity :0 ; -khtml-opacity : 0 ; opacity : 0 ;background : white } 100% {transform :scaleX(1)scaleY(1) ;-webkit-transform :scaleX(1)scaleY(1) ;-moz-transform :scaleX(1)scaleY(1) ;-o-transform :scaleX(1)scaleY(1) ;filter :alpha(opacity=100) ; -moz-opacity :1 ; -khtml-opacity : 1 ; opacity : 1 ;background : red } } @-o-keyframes radiation { 0% {transform :scaleX(3)scaleY(3) ;-webkit-transform :scaleX(3)scaleY(3) ;-moz-transform :scaleX(3)scaleY(3) ;-o-transform :scaleX(3)scaleY(3) ;filter :alpha(opacity=0) ; -moz-opacity :0 ; -khtml-opacity : 0 ; opacity : 0 ;background : white } 100% {transform :scaleX(1)scaleY(1) ;-webkit-transform :scaleX(1)scaleY(1) ;-moz-transform :scaleX(1)scaleY(1) ;-o-transform :scaleX(1)scaleY(1) ;filter :alpha(opacity=100) ; -moz-opacity :1 ; -khtml-opacity : 1 ; opacity : 1 ;background : red } } </style>
]]> 文本操作Q回文校?/title> http://www.tkk7.com/produ/archive/2015/11/18/430574.html都较?/dc:creator>都较?/author>Wed, 18 Nov 2015 08:04:00 GMT http://www.tkk7.com/produ/archive/2015/11/18/430574.html http://www.tkk7.com/produ/comments/430574.html http://www.tkk7.com/produ/archive/2015/11/18/430574.html#Feedback 0 http://www.tkk7.com/produ/comments/commentRss/430574.html http://www.tkk7.com/produ/services/trackbacks/430574.html 1 package demo_2015_11_18; 2 3 import java.util.Arrays; 4 import java.util.Scanner; 5 6 public class DEMO { 7 8 /** 9 * 判断输入的内Ҏ否是回文 10 * @param args 11 */ 12 public static void main(String[] args) {13 Scanner s = null ;14 try {15 // d数据?/span>16 s = new Scanner(System.in);17 String srcStr = s.nextLine();18 char [] srcChars = srcStr.toCharArray();19 20 // 判断数组长度奇偶 21 char [] t1 = null ;22 char [] t2 = null ;23 // 分割数组 24 t1 = Arrays.copyOfRange(srcChars, 0, srcChars.length/2);25 if (srcChars.length%2 == 0){26 // 偶数 27 t2 = Arrays.copyOfRange(srcChars, srcChars.length/2, srcChars.length);28 }else {29 // 奇数 30 t2 = Arrays.copyOfRange(srcChars, srcChars.length/2 + 1, srcChars.length);31 }32 33 // 反{后半截数l?/span>34 char [] temp = new char [t2.length];35 for (int i = t2.length - 1; i >= 0; i--) {36 temp[t2.length - 1 - i] = t2[i];37 }38 39 System.out.println(Arrays.equals(t1,temp));40 41 } catch (Exception e) {42 s.close();43 e.printStackTrace();44 }45 46 }47 48 }49 l果展示Q?br />
asddsatrue asdsasdfalse asdasdfalse asdxdsatrue
]]>
文本操作Q元韛_W统?/title> http://www.tkk7.com/produ/archive/2015/11/17/430575.html都较?/dc:creator>都较?/author>Tue, 17 Nov 2015 08:11:00 GMT http://www.tkk7.com/produ/archive/2015/11/17/430575.html http://www.tkk7.com/produ/comments/430575.html http://www.tkk7.com/produ/archive/2015/11/17/430575.html#Feedback 0 http://www.tkk7.com/produ/comments/commentRss/430575.html http://www.tkk7.com/produ/services/trackbacks/430575.html 泛泛的说Q今天的需求就是需要统计特定字W出现的个数Q想必各位都会,如果仅仅是实玎ͼ传统的实现应该像下面q样1 Map<String, Integer> counts = new HashMap<String, Integer>();2 for (String word : words) {3 Integer count = counts.get(word);4 if (count == null ) {5 counts.put(word, 1);6 } else {7 counts.put(word, count + 1);8 }9 }
q么做没问题Q简单粗暴快Q只不过q次我希望更优雅的实现它。今天特地要用一下Google的Guava工程提供的APIQMultiset。看上去他是一个集合,他也的确是,我们可以单的理解Z是一个元素顺序无养I元素可重的集合,q里不细Ԍ以用ؓ丅R后l有Z展开一下Guava的内宏V?/div>
1 package demo_2015_11_17; 2 3 import java.util.Scanner; 4 5 import com.google.common.collect.HashMultiset; 6 import com.google.common.collect.Multiset; 7 8 public class DEMO 9 {10 public static void main( String[] args )11 {12 13 Scanner s = null ;14 try {15 // 讑֮数据?/span>16 s = new Scanner(System.in);17 String srcStr = s.nextLine();18 String vowels = "aeiou";19 20 Multiset<String> ms = HashMultiset.create();21 22 char [] srcChars = srcStr.toCharArray();23 String curChar = null ;24 25 // 遍历数据?/span>26 for (int i = srcChars.length - 1; i >= 0; i--) {27 curChar = String.valueOf(srcChars[i]);28 if (vowels.indexOf(curChar) != -1){29 ms.add(curChar);30 }31 }32 33 for (String stemp : ms.elementSet()) {34 System.out.println("元音字母[" + stemp + "]的出现次CؓQ? + ms.count(stemp));35 }36 37 } finally {38 s.close();39 }40 }41 }
l果演示如下Q?br />
one twe three four five 元音字母[e]的出现次CؓQ? 元音字母[u]的出现次CؓQ? 元音字母[i]的出现次CؓQ? 元音字母[o]的出现次CؓQ?
因ؓ使用了Guava工程Q用maven理依赖Q所以把Guava的版本脓一?/div>
< dependency > < groupId > com.google.guava</ groupId > < artifactId > guava</ artifactId > < version > 19.0-rc2</ version > </ dependency >
]]>
վ֩ģ壺
ۺɫĻ |
avӰѿ |
Avznlu |
ĻѾþ |
Ӱһ? |
ձ߹ۿv |
Ƶ |
ޱר |
츾avһ |
Ƶ |
91Ʒ߹ۿ |
þþƷĻվ
|
JIZZJIZZŮ |
Ʒרþþ |
97ѹۿƵ߹ۿ |
һػɫѴƬƵ |
Ʒͼ |
AVרAWWW |
ŷڴ |
Ƶ |
Һ2020 |
ۺרߵӰ |
߲Ƶ |
˾Ƶ |
aƵѹۿ |
ƷƷˬˬ |
ģ߲ |
ͬ˧GAYƬ߹ۿ |
߾Ʒ |
Ƶ߹ۿѲӰԺ
|
컶ëƬ |
Ļó |
ŷǾƷһ |
AëƬר |
츾һ |
þþþþav |
ֻˬ͵ëƬ |
Ƶ |
91߲ |
mv߹ۿ |
fc2ѹƵվ |