1、{

@NotNull、@NotEmpty、@NotBlank的区别

1.@NotNull:不能为null,但可以为empty;用在基本类型上。

2.@NotEmpty:不能为null,而且长度必须大于0;用在集合类上面。

3.@NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0,即:必须有实际字符。

}

2、{

Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。

  可以将native方法比作Java程序同C程序的接口,其实现步骤:

  1、在Java中声明native()方法,然后编译;

  2、用javah产生一个.h文件;

  3、写一个.cpp文件实现native导出方法,其中需要包含第二步产生的.h文件(注意其中又包含了JDK带的jni.h文件);

  4、将第三步的.cpp文件编译成动态链接库文件;

  5、在Java中用System.loadLibrary()方法加载第四步产生的动态链接库文件,这个native()方法就可以在Java中被访问了。

}

3、{

String类型最大字节长度65535,也就是64k,大概能写21000个汉字,

byte[]类型最大字节长度是Integer.Max,理论支持2G大小,

单个数据包长度理论支持2G

}

4、{

HttpUnit 本质上相当于一个后台的透明的浏览器引擎,使用java中的HttpUnit可以实现模拟点击按钮,抓取网页元素,实现动态爬虫,之前一直使用jsoup进行爬虫,不过这次爬取一个生物论坛时候,需要动态处理,发现了httpUnit这个好的框架。

}

5、{

位移动运算符:

<<表示左移, 左移一位表示原来的值乘2.

例如:3 <<2(3为int型) 
1)把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011, 
2)把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位, 
3)在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100, 
转换为十进制是12。

同理,>>表示右移. 右移一位表示除2.

}

6、{

位运算符包括: 与(&)、非(~)、或(|)、异或(^)

    &:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000   

| :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110   

~:0变1,1变0   

^:两边的位不同时,结果为1,否则为0.如1100^1010=0110

}

7、{

request.getSession().getServletContext().getRealPath("") 
得到:   E:/java/myEclipse/apache-tomcat-5.5.20/apache-tomcat-5.5.20/webapps/IReportTest

}

8、{

collections对list的排序操作:

Collections.sort(list);      //升序排列
Collections.sort(list,Collections.reverseOrder()); //降序排列

}

9、{

1.对象

一个对象由一组属性和对这组属性进行操作的一组服务组成。 
一个对象的生命周期包括三个阶段:生成、使用、消除。 
当不存在对一个对象的引用时,该对象成为一个无用对象。Java的垃圾收集器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。当系统内存用尽或调用System.gc( )要求垃圾回收时,垃圾回收线程与系统同步运行。

2.类

Java中的类实现包括两个部分:类声明和类体。 
[public][abstract|final] class className [extends superclassName] [implements interfaceNameList]{……} 
其中,修饰符public,abstract,final 说明了类的属性,className为类名,superclassName为类的父类的名字,interfaceNameList为类所实现的接口列表。

class className{ [public | protected | private ] [static] [final] [transient] [volatile] type variableName;//成员变量[public | protected | private ] [static] [final |abstract] [native] [synchronized] returnType methodName([paramList]) [throws exceptionList]{statements
}//成员方法
}
  • 1
  • 2
  • 3
  • 4
  • 5

成员变量限定词的含义: 
static: 静态变量(类变量) 
final: 常量; 
transient: 暂时性变量,用于对象存档,用于对象的串行化 
volatile: 贡献变量,用于并发线程的共享 
   
方法声明中的限定词的含义: 
static: 类方法,可通过类名直接调用 
abstract: 抽象方法,没有方法体 
final: 方法不能被重写 
native: 集成其它语言的代码 
synchronized: 控制多个并发线程的访问 
  方法声明包括方法名、返回类型和外部参数。其中参数的类型可以是简单数据类型,也可以是复合数据类型(又称引用数据类型)。 
  对于简单数据类型来说,java实现的是值传递,方法接收参数的值,但不能改变这些参数的值。如果要改变参数的值,则用引用数据类型,因为引用数据类型传递给方法的是数据在内存中的地址,方法中对数据的操作可以改变数据的值。 
为了区别参数和类的成员变量,我们必须使用this。this用在一个方法中引用当前对象,它的值是调用该方法的对象。返回值须与返回类型一致,或者完全相同,或是其子类。当返回类型是接口时,返回值必须实现该接口。

3.面向对象的基本特性

封装

  封装性就是尽可能的隐藏对象内部细节,对外形成一道边界,只保留有限的接口和方法与外界进行交互。封装的原则是使对象以外的部分不能随意的访问和操作对象的内部属性,从而避免了外界对对象内部属性的破坏。 
可以通过对类的成员设置一定的访问权限,实现类中成员的信息隐藏。 
private:类中限定为private的成员,只能被这个类本身访问。如果一个类的构造方法声明为private,则其它类不能生成该类的一个实例。 
default:类中不加任何访问权限限定的成员属于缺省的(default)访问状态,可以被这个类本身和同一个包中的类所访问。 
protected:类中限定为protected的成员,可以被这个类本身、它的子类(包括同一个包中以及不同包中的子类)和同一个包中的所有其他的类访问。 
public:类中限定为public的成员,可以被所有的类访问。

继承

  子类的对象拥有父类的全部属性与方法,称作子类对父类的继承。 
Java中父类可以拥有多个子类,但是子类只能继承一个父类,称为单继承。 
继承实现了代码的复用。 
Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。 
子类不能继承父类中访问权限为private的成员变量和方法。 
子类可以重写父类的方法,即命名与父类同名的成员变量。 
  Java中通过super来实现对父类成员的访问,super用来引用当前对象的父类。super 的使用有三种情况: 
访问父类被隐藏的成员变量,如:super.variable; 
调用父类中被重写的方法,如:super.Method([paramlist]),super()调用父类构造方法; 
调用父类的构造函数,如:super([paramlist]);

多态

对象的多态性是指在父类中定义的属性或方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或方法在父类及其各个子类中具有不同的语义。 
Java的多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性(运行时多态)。 
编译时多态:在编译阶段,具体调用哪个被重载的方法,编译器会根据参数的不同来静态确定调用相应的方法。 
运行时多态:由于子类继承了父类所有的属性(私有的除外),所以子类对象可以作为父类对象使用。程序中凡是使用父类对象的地方,都可以用子类对象来代替。一个对象可以通过引用子类的实例来调用子类的方法。

重载(Overloading)

方法重载是让类以统一的方式处理不同数据类型的手段。 
一个类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法。 
返回值类型可以相同也可以不相同,无法以返回型别作为重载函数的区分标准。

重写(Overriding)

子类对父类的方法进行重新编写。如果在子类中的方法与其父类有相同的的方法名、返回类型和参数表,我们说该方法被重写 (Overriding)。 
如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。

子类函数的访问修饰权限不能低于父类的。

}

java的一些小知识总结相关推荐

  1. java面试必备小知识_Java面试应该准备的知识点系列一

    当然,我是想换个平台,换个方向,想清楚为什么要跳槽,如果真的要跳槽,想要拿到一个理想的offer,除了运气,基本功也要足够的扎实,希望下面的面试经验能给你们能够提供一些帮助. 项目经验 面试官在一开始 ...

  2. java stax xml_Java小知识:使用Stax解析xml文件

    问题: 通过使用Stax解析xml文件时,出现以下错误消息: 线程"主"中的异常javax.xml.stream.XMLStreamException:[row,col]:[86, ...

  3. Java易混小知识——equals方法和==的区别

    一.equals方法和==的区别 1.equals是String对象的方法,可以通过"."调用. 2.== 是一个运算符. 二.常用的比较用法 1.基本数据类型比较. equals ...

  4. 【Java】每日一点Java小知识 --- day6

    每日一点Java基础小知识 - day6 欢迎来到叮当猫学编程的Java基础小知识系列~在这里,你将会看到叮当猫每日关于Java的基础知识总结,欢迎大家的点赞关注喔 方法重载: 被重载的方法必须改变参 ...

  5. 小知识 | Java中的“魔数”

    转载自 小知识 | Java中的"魔数" 在编程过程中,我们可能经常听到"魔数"这个词,那么这个词到底指的是什么呢?什么数叫做魔数呢? 一.标识文件类型的&qu ...

  6. java小兔跳铃铛,Java小知识 - 顾小兔2018的个人空间 - OSCHINA - 中文开源技术交流社区...

    Java小知识 [TOC] (1)三种读取文件方法 URL url = this.getClass ().getResource ("/a.txt"); Resources.asC ...

  7. java小知识_java小知识点简单回顾

    1.java的数据类型分为两种:简单类型和引用类型(数组.类以及接口).注意,java没有指针的说法,只有引用.简单类型的变量被声明时,存储空间也同时被分配:而引用类型声明变量(对象)时,仅仅为其分配 ...

  8. java的碳刀_关于碳刀的小知识 一、什么是碳刀? 最通俗

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 关于碳刀的小知识 一.什么是碳刀? 最通俗的说,就是用碳纤维材质做的刀型车圈,编的公路轮组.车圈的高度有多种,常见框高的比如20MM 35MM 50MM ...

  9. sam格式的结构和意义_BAM/SAM文件格式的一些小知识

    BAM/SAM文件的一些小知识 前言 如果不是在陈老师这读博,然后开始折腾BAM/SAM文件,我估计这辈子都不会了解到这么多东西吧 SAM/BAM简介 Sequence Alignment Map ( ...

最新文章

  1. 我国医疗机器人产业发展特征分析
  2. rpm安装mysql报错NOKEY_rpm包安装报错: Header V3 RSASHA256 Signature, key ID fd431d51 NOKEY
  3. SpringMVC开发过程中的中文乱码问题
  4. 最长公共回文子串(Longest_Common_Palindrome_Substring)
  5. 闲鱼疯转6800份!大厂内部数据分析资料首公开!
  6. ZooKeeper 基本概念:特点、数据模型、节点特性、Watcher、ACL
  7. 黔东南天气预报软件测试,黔东南天气预报15天
  8. Shamir密钥分享算法 python实现
  9. mysql 删除表中 id不等于XXX的 并且XXX字段的重复记录
  10. 东航期货穿透接口相关资料
  11. 解决百度云下载过慢、Linux下载百度云数据问题
  12. 特征匹配中OpenCV Dmatch类的用法解析以及非常详细的ORB特征提取与匹配解析
  13. socket怎么同时监听两个端口_三十岁了,我同时爱上两个男人,我现在不知道怎么办...
  14. 《深入浅出数据分析》读书心得与笔记
  15. python大师_GitHub - lltx/Python-100-Days: Python - 100天从新手到大师
  16. python get请求下载excel,前端开发,使用get和post方式下载excel表格
  17. 局域网打印机共享怎么设置_局域网共享精灵 局域网内便节共享文件和打印机...
  18. Activity的生命周期
  19. 面试系列 | 一个线程OOM,进程里其他线程还能运行么?
  20. whistle启动时,输入命令w2 start报:w2 start‘w2‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

热门文章

  1. Datasheet,你会读么?[转]
  2. 【linux】安装centOS过程中遇到的困难
  3. (TI xDM)SSCR Module—Shared Scratch Memory
  4. 案例:实现在购物车中添加商品和删除购物车中指定商品的功能
  5. HTML简介与历史版本
  6. c语言组json包,json格式解析和libjson的用法介绍(关于cjson的使用方法)
  7. mysql不可重复读是锁的表吗,Mysql事务,并发问题,锁机制-- 幻读、不可重复读(转)...
  8. 去除面部黑色素小妙招_去除暗黄皮肤的小妙招 7招让你白皙动人
  9. android http 慢,android httpurlconnection數據連接速度慢
  10. 电脑字体在哪个文件夹_在PS里如何安装字体