基础
bbbbln
这个作者很懒,什么都没留下…
展开
-
图片Base64编码血泪教训
import sun.misc.BASE64Encoder; 上面这玩艺就是个坑。网上大片的文章关于图片转Base64编码用这个类。这就是奇坑。caoimport com.sun.org.apache.xml.internal.security.utils.Base64; 这个或者spring的这种类。耽误了我一下午。我真得很想骂人。 <script typ...原创 2016-12-08 18:06:00 · 1025 阅读 · 1 评论 -
Spring之config.xml配置
以下三行必写,不能更改<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">Bean的类:<bean id="aGoodName" class="com.xxx.xxx">原创 2016-04-20 16:45:22 · 4848 阅读 · 0 评论 -
AngularJS的ng-click过程
<div ng-show="b"></div><button ng-click="a()"></button>在controller里:$scope.a=function(){ $scope.b=false;}在点击该<div>时,会搜寻controller.js中的$scope.a原创 2016-06-20 17:59:11 · 1279 阅读 · 0 评论 -
Java 协变性 逆变性
在面向对象的计算机程序语言中,经常涉及到类型之间的转换,例如从具体类小猫到动物之间的类型转换(上行转换),或者从形状向三角形之间的转换(下行转换)。 我们之前往往都比较关注类型本身,却常常忽略类型转换的性质。最近在拜读《thinking in java》看到一些关于类型转换性质的比较抽象理论的内容,仔细研究一下,分享给大家。 我们将围绕如下三个核心名词:协变性(covariance)、逆变性(c转载 2016-07-18 16:20:32 · 1198 阅读 · 0 评论 -
部门树状图用JAXB解决
因为最近在做部门树状图,Java后台要输出这个树状图去前台显示。所以在找各种解决方案,此方案为比较好的。遂记录下来JAXB主要用来实现对象和XML之间的序列化和反序列化,关于JAXB的介绍就不多说了,网上一搜一大把,这里主要总结下基本使用方法和一些注意事项首先定义两个示例类ClassA,ClassB,用于后续的示例演示ClassApackage cn.lzrabbit;public class Cl转载 2016-07-19 10:22:54 · 416 阅读 · 0 评论 -
输出国别,自己没事写的
package com.smartprint.biztrip.common.service.impl.companyDirectory;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * * @author Administrator */public class PrintNational { st原创 2016-09-09 16:23:39 · 622 阅读 · 0 评论 -
Go语言:前后端对接
package mainimport ( “fmt” “net/http” “strings” “log” )func sayhelloName(w http.ResponseWriter, r *http.Request) { r.ParseForm() //解析参数,默认是不会解析的 fmt.Println(r.Form) //这原创 2017-01-03 19:19:55 · 5545 阅读 · 0 评论 -
再探java方法参数的传递
我们知道方法传递有值传递、引用传递、名称传递。而在java中,是统一的值传递,是一个值的拷贝。对于原始类型,传递方法参数就是这个具体值。所以在方法里面改变这个值是不影响方法调用时的地方值。而对于对象类型,是一个引用的拷贝。我们可以看下面的例子。首先,我们定义一个Employee类。class Employee{ public Employee(int s){ ...原创 2018-07-08 12:11:29 · 188 阅读 · 0 评论 -
JVM调优(一)底层原理分析和问题定位
文章目录CPU占用问题1、CPU占用高原因分析原因a: 线程上下文切换消耗。原因b:cpu上的运行队列。原因c:cpu的利用率。查看cpu使用情况工具toppidstat分析cpu占用高的各种情况us:用户占用高sy:内核占用高文件IO消耗原因分析文件IO消耗的跟踪工具pidstat网线IO消耗内存消耗内存消耗原因分析内存查看工具toppidstat程序执行慢的原因锁竞争激烈硬件资源未充分工具的常...原创 2018-09-20 18:56:19 · 603 阅读 · 0 评论 -
JVM调优(二)内存收集器原理和参数调整
调优根据上节的原理分析,进行调优可以从硬件、操作系统、JVM以及程序四个方面入手。用更好的硬件如更大的内存、更快的CPU等,操作系统的话,需要自己去摸索,window不行就换linux,linux不行就换unix,甚至其它商业机。对于这两点,如果程序确实解决不了,可以把问题抛给运维。但作为一名开发者,我们现在可以从JVM和程序两方面尝试优化。JVM方面,从内存分配管理、GC策略入手。先搞清...原创 2018-09-21 17:22:55 · 290 阅读 · 0 评论 -
JVM调优(三)程序代码调优
根据第一节所讲的基础知识,我们根据线上不同的异常情况做程序的优化。CPU占用高us高根据之前的分析,CPU us高的原因主要是执行线程无任何挂起动作,且一直执行,导致CPU没有机会去调度执行其他的线程,造成线程饿死的现象。对于这种情况,常见的一种优化方法是对这种线程的动作增加Thread.sleep,以释放CPU的执行权,降低CPU的消耗。对于线程要不断扫描某种状态,达到自己的可继续运行下去...原创 2018-09-21 18:40:59 · 487 阅读 · 0 评论 -
java模拟复杂表单post请求
java模拟复杂表单post请求能支持文件上传/** * 支持复杂表单,比如文件上传 * @param formParam * @return * @throws Exception */ public static String postWithForm(FormParam formParam) throws Exception { String url = for...原创 2018-12-12 16:04:30 · 2133 阅读 · 3 评论 -
防止重复请求提交创建订单等解决方案
背景:在开发产品,交付给用户使用之后,重复提交的现象偶尔或经常出现。开发人员觉得数据重复,用户觉得订单多了一个,产品觉得有bug。这可不是好现象。下面以创建订单为例:原因:1、误操作两次点击下单按钮;2、超时导致重复点击;3、产生订单后没有成功提醒或者客户端出错导致用户没有收到成功消息,重新下单。后果:当然是产生了重复订单,体验不好,影响不好。^_^解决方案:最通用的方法:...原创 2019-07-09 17:05:07 · 3270 阅读 · 0 评论 -
泛型的简单写法
在写程序的时候,有时候没办法必须用一个泛型的类或者方法,提前学到这个写法,对以后应该会很有好处。public class PairTest1{ public static void main(String[] args) { String [] temString={"a","c","e","g"}; Pair<String> mm=ArrayAlg原创 2016-04-16 19:07:41 · 1615 阅读 · 0 评论 -
内部类、异常、断言和Loger日志
以后补充原创 2016-04-15 20:25:56 · 433 阅读 · 0 评论 -
正则表达式
是这我看到的,很详细。作为新手,我很幸运看到这篇。http://blog.csdn.net/mad1989/article/details/7773749我很感谢!!!谢谢这位Never-say-Never!!!转载 2016-04-08 17:06:04 · 332 阅读 · 0 评论 -
ArrayList和变参
其实没什么好说的,只是写下来作个备忘录ArrayList的声明和实例化import java.util.ArrayList;……ArrayList<String> str=new ArrayList<>(99);//写法1ArrayList<String> str1=new ArrayList<String>();//写法2 其拥有add(Object o),add(int index,Ob原创 2016-04-13 11:48:41 · 513 阅读 · 0 评论 -
Java中的默认值和构造器
默认值: 数据类型的默认值为0; boolean的默认为false; 对象类型的默认值为null。 但在写程序的时候,一定要手动给个值,不然在后期容易出错。构造器:如果不手动写构造器,程序在编译的时候会加上默认的构造器,但是只要手动写的构造器,编译的时候不再加上默认的构造器。 如: public class Employee{ public class Employee(Stri原创 2016-04-09 15:26:36 · 1590 阅读 · 0 评论 -
构造器的用法
关于构造器: 还有this的用法public class Main { private String name; private double salary; public Main(String aName, Double aSalary) {//构造器1 this.name = aName; this.salary = aSalary;原创 2016-04-09 16:52:11 · 519 阅读 · 0 评论 -
枚举enum
关于枚举的简单写法:public class EnumTest { public static void main(String[] args) { judgeColor(colorful.BLUE); } public static void judgeColor(colorful color)//写成静态方法,是因为上面的main函数即时调用原创 2016-04-13 14:28:47 · 362 阅读 · 0 评论 -
反射机制知识点(new和newInstance之区别)
在Java开发特别是数据库开发中,经常会用到Class.forName( )这个方法。通过查询Java Documentation我们会发现使用Class.forName( )静态方法的目的是为了动态加载类。在加载完成后,一般还要调用Class下的newInstance( )静态方法来实例化对象以便操作。因此,单单使用Class.forName( )是动态加载类是没有用的,其最终目的是为了实例化对象转载 2016-04-13 16:09:50 · 1275 阅读 · 0 评论 -
Java反射机制--肤浅认知
本来不是很懂,看了很多文章解析,感觉貌似有点懂了。 记下备忘。待后来回头查看,以便更正。Java反射机制,是进一步的解耦,比如在:比如在JDBC中,Class.forName(‘com.mysql.jdbc.Driver.class’).newInstance(); 通过这个名字来搜索,原创 2016-04-13 17:30:58 · 401 阅读 · 0 评论 -
Java反射机制--佐证
这个例子很好的证明了,类加载和实例化的区别:public class NewInstancesTest { public static void main(String[] args) { TestOne one=null; try { //类加载 Class cl=Class.forName("reflectTe原创 2016-04-14 14:20:32 · 281 阅读 · 0 评论 -
Java接口
1、接口不是类,不能用new来实例化,但是可以引用实现接口的类对象: Comparable x; x=new Employee(……); 2、接口中可以有常量 3、接口中绝对不能含有实例域,也不能实现任何方法案例: 对对象进行排序:Array.sort(任意对象的数组); 要用这个方法,那括号中的数组中的类必须实现Comparable这个接口,并对类中的某个量进行两两比较 完整方法为:原创 2016-04-14 16:26:44 · 365 阅读 · 0 评论 -
对象的克隆
Java对象有克隆分为两种,浅克隆和深拷贝首先,浅克隆: 比如:Empolyee original=new Employee(……);Empolyee copy=original;可以看到,就是个简单的复制动作。但这个只能对其中的部分域进行复制,没有拷贝内部对象。 而执行浅克隆,也会引起另处一个问题,克隆或原对象对子对象的改变:String类无法改变可以不用理会,但像Date这样的子对象,我们原创 2016-04-14 16:52:48 · 272 阅读 · 0 评论 -
定时器与回调
测试类import java.awt.event.ActionListener;import javax.swing.JOptionPane;import javax.swing.Timer;public class Test { public static void main(String[] args) { ActionListener listen=new TimeT原创 2016-04-14 17:30:32 · 1514 阅读 · 0 评论 -
Java的继承
算是作个备忘吧。 关于Java的继承,我总共写错了二次: 第一次是,在写继承的时候,忘了调用父类的构造器,其实挺好写的,就直接用super即可。 第二次,测试时,在设置manager的额外收益时,应该这样实例化: Manager manager=new Manager(“xxx”,50000,2001,2,14); 而不是 Employee manager=new Man原创 2016-04-11 21:36:19 · 273 阅读 · 0 评论 -
关于类继承中子类方法比父类方法丰富,一个引用值传递的小问题
对于前两个程序,一个父类一个子类,我们如果这样:public class ForTest { public static void main(String[] args) { // TODO Auto-generated method stub Employee e1=new Employee("小张",9800,1998,2,14); Empl原创 2016-04-11 22:27:32 · 859 阅读 · 0 评论