先说今天,对于海峰输入法不能全角输入的问题,纠结了好久,应该是对于windows的习惯了,然后想到用命令解决吧。于是查找文件,进入目录,然后修改配置。
不得不说,命令其实也很方便的。
今天用到了哪些工具呢?
nc,,ferret,,准备加载使用的工具呢,sqlmap,然后继续今天的学习吧。
1,=号是赋值运算,需要先计算等号右边的表达式,然后再进行赋值,其表达式是从右向左运算,比如y=1+2+4+5 过程是5+4=9 9+2=11.....
2,整数类型int最大值是2G-1,也就是2的31减1或者21亿,最小值是-2G3,java底层byte,short按照32位计算
4,浮点数计算时默认表示是双精度
5,char定义的字符用单引号
6,移位的效率比符号的效率高.
7,一般说的安全是线程的安全
8,对于有时候的表达式,先弄清怎么个运算法,然后考虑如何运算,一步一步的来
9,着错误的时候,变量,定义初始化,函数定义,参数,修饰符,类的定义,访问限制等等,用模型来分析,急不得啊,还有就是default不管前面怎么都会执行的
10,for内层循环,重点是控制的动作,决定了内层控制的是什么,一般外层控制行,
11,能函数控制的尽量函数控制不能的可以用循环
12,构造函数的定义,就是为了初始化一些属性或者方法
13,this的值,引用这个对象的地址,局限于非static方法内部,可以有this.实例变量,this.实例方法,作用是调用本类或者构造方法
14,生成geter seter的方法,可以右击或者alt+shift+s,可以做到
15,原则:启动的时候尽量初努化一切,启动的时候可以慢点但之后要快
16,编写项目顺序:1,构建领域对象,也就是实体类,entity
2,构建数据对象entitydata(也就是从数据库中找数据或者生成数据)
3,构建控制对象controller(构建对数据的操作并传到UI,传到什么样的UI)
4,构建视图对象UI
5,系统启动对象:start
17,封装,把属性定义成私有的,提供setget访问的方法,这是封装的
18,不能重写static修的方法
19,其它包中不能访问默放修饰符default修饰的成员
20,不同包只能讯问继承public或者protected修饰的
21,单例模式,要将构造方法进行隐藏,然后声明一个静态方法做为替换,必须是静态方法,因为是类方法
22,单例模式,一个类一个对象,饿汉式,就是在类刚加载便创建实例,而包汉式则是GetInstance()调用时,随时用随时创建.而且饿汉式尽量在声明的时候声明面static,一般用于工厂类的设计,饿汉式的设计要注意线程并发的问题,可以用synchronized解决
23,一个工厂模式,是利用一个工厂类管理很多对象的创建
24,原型模式,则是对己有对象进行复制
25,安卓中的主键,_id必须定义成这样,是为了防止与业务相关
26,一般,printwriter对象就是用于输出到屏幕或者服务端的时候用的,比如网络聊天,socket对象,文件流对象包装流对象,printwriter打印包装对象,打印完要要刷新,flush关闭socket对象
27,一切皆对象.你要进行的一切操作都要先new一个对象,然后用其方法或者属性
28,定义成上下文的名称,常见的有,ApplicationContext,或者EntitymemberContext
29,组合(强聚合),聚合,关联,
30,gcc -Wall 可以提升代码质量,显示程序编译出现的警告
31,在当前的文件家里,加入一句export PATH=$PATH:.这样a.out 就可以直接运行了,记得source一次
32,UML主要模型:用例图(用户角色,哪些功能) 类图(类的结构与关系) 序列图(某个功能由哪些对象参与与对象之间的流程)
状态图(系统状态) 活动图(用户的活动状态与操作流程)
33,设计模式:工厂模式__利用一个工厂管理所有对象的创建,也就是说把创建对象的步骤交给一个类,然后其它类引用的时候用类名.方法()来获取对象
return new aa();
34,原型模式就是进行,克隆,深度吉隆,clone,要克隆复杂属性的clone方法而不只是调用super.clone();
35,创建模式,一个组装类负责完成各部件的组装过程,而工厂模式是负责零部件的创建.
36,结构型模式,
37,代理型模式,
38,抽象类,其实是模板模式,\而接口呢,是策略模式.
39,类与类之间的关系,is a(类的继承或者接口的实现)
has a(关联,聚合,组合.)
一个类中有另一个类的属性,则这两个类便是has a .区分是,是对属性的引用,还是对对象,或者说整个类的引用,便可以区分关联,聚合还是组合.\
不存在整体部分关系是关联,存在整体部分关系的是聚合,比如类以属性的关系出现在另一个类中.实例比如点,圆,是聚合关系.
组合关系,存在整体部分关系,也就是说整体消失则部分关系会消失,也是特殊的聚合,是一种强聚合,存在依赖关系.
40,局部内部类定义在方法内,可以访问的是方法内部的final修饰的属性,可以访问方法外的外部类的所有成员属性
41,匿名内部类也定义在方法内,特殊的局部内部类
42,成员内部类,实例成员,先构外部类对象,再构内部类对象,类内方法外,没有static修饰,可以访问外部类所有成员
43,调用toString()方法,可以重载.
44,object类,system类,8种封装类.数学类,
45,用户上传的文件一般要进行重命名,这时候要用到random()
46,eclipse中按F1可以看帮助文档
47,Calendar日期类是date类的扩展类,可以进行日期的修改,增加减少,如,c.add(Calendar.MONTH,3);
48,日期和字符串之间的转换,需要构建一个(将日期转换成字符串)SimpleDateFormat("yyyy--MM--dd")对象sdf.format(date);
这里yyyy,MM,dd不能随意改动,小写的hh: mm: ss
49,将字符串转换成日期Date date=sdf.parse(str);
50,抽象类不能构建它的对象,不过可以构建它的子类的对象.如时间对象Calendar
51,字符之间,'A'+'B'+"C"与"A"+'B'+'C'注意区分,从左到右,字符之间是运算,字符与字符串之间是连接,要看谁在前面
String 字符串,字符的集合,,char a=s.charAt(0)
52,大小写转换,大写转小写,加上32,小写转大写,减去32
53,获取下标,indexof(),lastindexof()
54,正则表达式:Pattern p=Pattern.compile(str1);//模式
Mather m=p.Mather(str2);//要进行的字符串
if(m.find())则......
m.start()开始的字符.m.end()
55,Collection<E> e=element这是代表泛型,编译的时候起作用,是为了约束集合里面存储的数据类型
56,list.contains(0);是否包含某个元素
57,增加的for循环for(String s:list){},倒着循环,取其中一个,则不合适
58,Iterator it=list.iterator();
59,线程的并发,可以在方法的前面加上synchronized加上锁,效率会降低但安全
60,随机的删除或增加,用LINKedList,Vector是加了锁的ArrayList,查找的时候最快
61,set底层借助的是HashMap也就是数组+链表的形式,一般要先调用Hashcode,如果相同的话,会再次调用equals方法深入比较,
重写equals方法,hashcode,根据它计算对象的存储位置
62,重写COmparator<> c=new Com<>(){匿名内部类//实现comparable};
63,treeset本身能对其中的元素进行默认的升序排序
64,collection接口,其实现类list,set.而collections是工具类的集合,比如collections.sort(list);
collections.shuffle(list)打乱集合的顺序
collections.reverse(list)倒置集合中的元素
collections.synchronizedList(list)给集合加上同步锁
65,泛型方法,可以继承类,一般用在静态方法上
66,原型模式:对已有对象进行复制,需要重写Object对象中的clone()方法,在clone方法里面调用父类里面的clone().
比如,public Object clone(){
Object obj=null;
obj=super。clone();
}
利用的应该是浅度克隆,浅度克隆克隆的是对象,而深度克隆克隆的是对象的属性.
67,创建模式,拼装过程,工厂模式是对零件的创建,而创建模式是对零件的组装
68,结构型模式:外观模式,适配器模式,代理模式,装饰器模式.
外观模式,比如机箱,不能把主板直接让普通人操作啊,要封闭并提供几个操作接口比如开机,对外提供几个外观接口就行,strut2大量采用了这个
适配器模式,应该是类似于模板,也就是说类型不匹配的时候,要通过适配器转换,比如电脑,比如变压器
装饰器模式:就是有一个对象,然后你封装进去几个额外的功能,满足用户的需求,必须传进一个参数,类似于输入输出文件流封装的时候,传文件流对象传文
件路径,传封装文件流对象,也就是说可以加载很多额外的功能,比如字节流,文件流,缓冲流,输入输出流
代理模式:对原有组件进行特定功能扩展,与装饰器模式有相似之处,spring应该用了不少
享元模式:
桥模式:
使用模式的步骤,第一是寻找问题,然后是对问题的分析,然后是有哪些特点,然后是如何解决,然后是选用模式.对于
69,行为型模式
与对象交互,职责分配相关的模式.
a,模板模式
采用各种模板,然后填充各种内容,模板类实现框架,具体内容由子类实现,spring和template采用了这个模式
b,命令模式:发送者和执行者分离,比如,教练与运动员应该说MVC模式有相似之处,控制者是C,然后
c,观察者模式,
d,状态模式.
70,对泛型类的对象进行排序,比如map,set,之类的,一定要实现COmparable接口,然后实现其比较方法CompareTo
如何重写由业务规定
71,linkedHashSet,可以保证元素的添加顺序,且不可以重复
想排序,用TreeSet,
72,HashMap(哈希表+链表) TreeMap LinkedHashMap
73,什么时候用什么,哪一个,要考虑你进行的是什么操作
让不让重复,决定用set还是arraylist,是简单随机查询还是排序或者复杂查询决定用哪个,依据的是效率
HashMap,键值对的存储,TreeMap对key进行排序,LinkedHashMap能拐杖证添加的顺序.
不保证顺序,不进行排序,用HashMap,底层是哈希表(数组)+链表
74,Collection接口包含的是一个值,中 包含 List与set
而Map接口呢包含的是一对值,也就是键值对,其实现是HashMap,TreeMap,LinkedHashMap还有别的啊
原来这是它们之间的区别啊
75,假如 不给类的泛型 ,E用在类泛型 中,T用在方法泛型方法,其实没有区别,,类泛型中的静态方法不能再用泛型,泛型 方法 一般用在静态方法 上
比如,public static <T> T get(T t){} 泛型本身没有继承
76,反射: 类对象 与类的对象的区别
获取类对象 Class<?> clasz=p.getClass();
clasz.getDeclaredField("x");
77,可变 参数(int ...id)表示 参数个数是变化 的
78,异常的分类 TREE,Throwable,RuntimeException,ERROR,Exception
异常的处理,第一是抛出第二是捕获 throw exception try catch finally
79,io流或者打印流有可能看不到,所以要进行刷新,ps.flush();
80,file对象 有一个toUri方法 ,可以转化成uri对象