java关键字和方法

news/2024/7/4 1:08:48

关键字:
前后台
@PathVariable 获取URL上的参数
@RequestParam 获取请求参数
@RequestBody 将前台发送过来固定格式的数据封装为对应的JavaBean对象,
例子:@RequestBody RestReBody reqBody ( RestReBody是一个对象)
@ResponseBody 表示将该方法的结果直接写入HTTPResponseBody中。比如一般是采用ajax来异步使用这些数据。
ObjectMapper (Jackson提供的对象)是将对象转为json字符串返回给前台

abstract抽象类

方法:(当不知道某个函数时,测试点出(”.“),即可大致知道什么意思)
trim() :属于StringUtils工具类,去掉字符串两端的多余的空格,注意,是两端的空格,且无论两端的空格有多少个都会去掉,当然
中间的那些空格不会被去掉。trim()不仅可以去掉空格,还能去掉其他一些多余的符号,这些符号分别是:
\t \n \v \f \r \x0085 \x00a0 ? \u2028 \u2029
翻译过来分别是:水平制表符,换行符,垂直制表符,换页符,回车,后面的这几个除了问号外,其他的都是转义符形式写法。

isEmpty() :用于判断某种容器是否有元素的系统库函数,有则false,无则true。如用来判断ArrayList,HashSet,HashMap,对象中是否有元素等。
b.indexOf(“a”) :判断b中是否包含a。
比如判断浏览器类型为firefox。request.getHeader(“User-Agent”).toLowerCase().indexOf(“firefox”)

toLowerCase() :转为小写。


java集合框架中StringUtils工具类,主要是用来做大量的字符串操作。
contains():List集合的contains(),判断集合中包含不包含某个元素。
Map集合的contiansKey()和containValue():Map集合中包含不包含Key或Value元素;
isNotEmpty :
判断某字符串是否非空
StringUtils.isNotEmpty(null) = false
StringUtils.isNotEmpty("") = false
StringUtils.isNotEmpty(" “) = true
StringUtils.isNotEmpty(“bob”) = true
isNotBlank:
判断某字符串是否不为空且长度不为0且不由空白符(whitespace)构成,
下面是示例:
StringUtils.isNotBlank(null) = false
StringUtils.isNotBlank(”") = false
StringUtils.isNotBlank(" “) = false
StringUtils.isNotBlank(”\t \n \f \r") = false。

isEmpty(String str) 是否为空,空格字符为false

isNotEmpty(String str) 是否为非空,空格字符为true

isBlank(String str) 是否为空,空格字符为true

isNotBlank(String str) 是否为非空,空格字符为false

trim(String str)去除字符串两端的控制符,空字符串、null 返回 null

trimToEmpty(String str) 去除字符串两端的控制符,空字符串、null 返回""
stripToNull(String str) 去除字符串两端的空白符,空字符串、null 返回null
stripToEmpty(String str) 去除字符串两端的空白符,空字符串、null 返回""

strip(String str, String stripChars) 去掉str两端的在stripChars中的字符
StringUtils.strip(“000000134_76539000”,“0”)=“134_76539”

stripStart (String str,String stripChars) 去除str 前端在stripChars中的字符
stripEnd (String str,String stripChars) 去除str 后端在stripChars中的字符

equals(String str1,String str2) 比较两个字符串是否相等,如果两个均为空则认为相等

indexOf(String str,char searchChar) 返回searchChar 在字符串中第一次出现的位置,如果没找到则返回 -1,如果str 为null 或者 “”,也返回-1
indexOf(String str,char searchChar,int startPos) 返回字符searchChar从startPos开始在字符串str中第一次出现的位置。

contains(String str,char searchChar) str中是否包含字符searchChar,str为null 或者 searchChar为null,返回false 。
StringUtils.contains("", “”) = true
StringUtils.contains(“dfg”, “”) = true
containsIgnoreCase(String str,String searchStr) str中是否包含字符searchChar,不区分大小写

int indexOfAny(String str, char[] searchChars) 找出字符数组searchChars中的字符第一次出现在字符串str中的位置。 如果字符数组中的字符都不在字符串中,则返回-1 ,如果字符串为null或"",则返回-1

subString(String str,int start) 从start 开始,包含start 那个字符,得到字符串str 的子串,如果start为负数,则从后面开始数起。如果str 为null 或者 “” 则返回其本身
subStringBefore(String str,String separator) 得到字符串separator第一次出现前的子串。不包含那个字符,如果str 为null 或者 “” 则返回其本身。
subStringAfter(String str,String separator) 得到字符串separator第一次出现后的子串,不包含那个字符,如果 str 为null,或者"",则返回其本身
subString(String str,int start,int end) 同上

left(String str,int len) 得到字符串str从左边数len长度的子串,如果str 为null 或者 “”,则返回其本身,如果len小于0,则返回""
right(String str,int len)得到字符串str从右边数len长度的子串
mid(String str,int pos,int len) 得到字符串str从pos开始len长度的子串,pos小于0,则设为0。

split(String str) 把字符串拆分成一个字符串数组,用空白符 作为分隔符,字符串为null 返回null,字符串为"",返回空数组{}
split(String str,char c) 按照 char c 拆分字符串

join(Object[] arrey)把数组中的元素连接成一个字符串返回
join(Object[] arrey,char c) 把数组中的元素拼接成一个字符串返回,把分隔符 c 也带上

deleteWhitespace(String str) 删除字符串中的所有空白符,包括转义字符
removeStart(String str,String remove) 如果字符串str是以remove开始,则去掉这个开始,然后返回,否则返回原来的串
removeEnd(String str,String remove) 如果字符串str是以字符串remove结尾,则去掉这个结尾,然后返回,否则返回原来的串。
remove(String str,char remove) 去掉字符串str中所有包含remove的部分,然后返回
replace(String str,String reql,String with) 在字符串text中用with代替repl,替换所有
replaceChars(String str,char old,char new) 在字符串中 new 字符代替 old 字符
replaceChars(String str, String searchChars, String replaceChars) 这个有点特别,先看下面三个例子
StringUtils.replaceChars(“asssdf”,“s”,“yyy”)) = “ayyydf”
StringUtils.replaceChars(“asdf”,“sd”,“y”)) = “ayf”
StringUtils.replaceChars(“assssddddf”,“sd”,“y”))= “ayyyyf”
解释:为什么会出现上面这样的结果呢?原来这个置换规则是这样的,他是拿searchChars的index,去replaceChars找相应的index然后替换掉,怎么说呢?比如说第一个例子 s 的index 是0,找到yyy相对应的index为0的字符是y。第二个例子 ‘s’ 的index是0,‘d’的index是1, 字符’s’ 可以找到对应index为0的 ‘y’,d就找不到index为’1’的的字符了,所以就直接过滤掉了,听明白了吗?
overlay(String str,String new,int start,int end) 用字符串new 覆盖字符串str从start 到 end 之间的串

chop(String str) 去掉字符串的最后一个字符,比如/r/n

repeat(String str,int repart) 重复字符串repeat次

rightPad(String str,int size,String padStr) size长度的字符串,如果不够用padStr补齐
leftPad(String str,int size,String padStr)同上
center(String str,int size)产生一个字符串,长度等于size,str位于新串的中心

swapCase(String str) 字符串中的大写转小写,小写转换为大写


matches():参数是正则表达式。①检查一个是否包含符合某种规则的字符串。②根据匹配规则对字符串进行灵活的替换操作。
hasNext(): 对象是否存在值,
next(): 对象取下一个值。
hasCode():主要是配合基于散列集合一起正常运行:包括HashSet,HashMap,HashTable。比如向集合中插入对象时,非常巨大的集合,用equals逐一比查,是不适应的;hasCode直接得到存在与否,由此可知,不能用hasCode()判断两个元素相等。当如果有需要equals和hasCode两者必须重写。


Map内部结构:
entrySet: 返回一个set集合,
keyValue返回一个key值集合。

object instaceOf class: 判断左边是否为右边类的实例。
lastIndexOf和iindexOf两者的区别:当检索的对象只出现一次时,两个的结果是一样的。两次及以上时,分贝返回第一次和最后一次出现的位置。
lastIndexOf: 从尾检首,得到最后一次出现的索引值;
indexOf: 得到从头检索,首次出现的的索引值。


synchronized关键字的用法:
在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,然而synchronized关键字涉及到锁的概念。
1,什么是锁?java的内置锁:每个java对象都可以用做一个实现同步的锁,这些锁成为内置锁。线程进入同步代码块或方法的时候会自动获得该锁,在退出同步代码块或方法时会释放该锁。获得内置锁的唯一途径就是进入这个锁的保护的同步代码块或方法。
java内置锁是一个互斥锁,这就是意味着最多只有一个线程能够获得该锁,当线程A尝试去获得线程B持有的内置锁时,线程A必须等待或者阻塞,直到线程B释放这个锁,如果B线程不释放这个锁,那么A线程将永远等待下去。
java的对象锁和类锁:java的对象锁和类锁在锁的概念上基本上和内置锁是一致的,但是,两个锁实际是有很大的区别的,对象锁是用于对象实例方法,或者一个对象实例上的,类锁是用于类的静态方法或者一个类的class对象上的。我们知道,类的对象实例可以有很多个,但是每个类只有一个class对象,所以不同对象实例的对象锁是互不干扰的,但是每个类只有一个类锁。但是有一点必须注意的是,其实类锁只是一个概念上的东西,并不是真实存在的,它只是用来帮助我们理解锁定实例方法和静态方法的区别的
(实例待写)

不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator
方式,如果并发操作,需要对 Iterator 对象加锁。
正例:
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (删除元素的条件) {
iterator.remove();
}
}


http://www.niftyadmin.cn/n/1967393.html

相关文章

Fragment的startActivityForResult详细解决方案

由于要用到Fragment中startActivityForResult,所以一开始就直接用activity.startActivityForResult(intent, 0);发现这样用首先会跳转到FragmentActivity中的onActivityResult。 在这个的时候,确实可以处理比如FragmentActivity中有3个Fragment&#xff…

性能优化之算法和流程控制

循环处理是最常见的编程模式之一,也是提升性能必须关注的要点之一。常见的优化方案有:①JavaScript的四种循环(for、do-while、while、for-in)中,for-in循环比其他几种明显要慢。由于每次迭代操作会同时搜索实例或原型属性,for-in…

数据库小技巧

1.postgresql忘记密码怎么处理 一、如果你忘记密码,而你曾经登录时保存过密码,按C:\Users\Terry Computer\AppData\Roaming\postgresql打开,其中Terry Computer是你的电脑名,AppData一般为隐藏项目。用记事本打开pgpass.conf就可以…

Fragment与FragmentActivity间的数据通讯详细解决方案

1.首先定义一个接口&#xff1a; public interface IFragmentDataListener {public void transferMessage(); }2.然后Fragment和FragmentActivity分别取实现IFragmentDataListener接口&#xff1a; public class CompanyContactsFragment extends BaseFragment<CompanyCont…

高度注意 Map 类集合 K / V 能不能存储 null 值的情况,如下表格

集合类         Key         Value         Super         说明 Hashtable       不允许为 null      不允许为 null     Dictionary       线程安全ConcurrentHashMap 不允许为 null      不允许为 null     …

token的作用及实现原理(一)

token在计算机身份认证中是令牌&#xff08;临时&#xff09;的意思&#xff0c;在词法分析中是标记的意思。一般作为邀请、登录系统使用。 1&#xff1a;request和session的区别 request request 指在一次请求的全过程中有效。即从http请求到服务器处理结束&#xff0c;返回响…

关于如何在XML中设置RadioButton默认选中

首先我遇到的问题是&#xff1a; <RadioGroupandroid:id"id/radioGroup"android:layout_width"fill_parent"android:layout_height"wrap_content"android:orientation"horizontal" ><RadioButtonandroid:layout_width"w…

IFE-24 笔记

1、捕获event.target事件&#xff0c;以及移除捕获的节点使其变色,设置为全局变量&#xff0c;其他函数中也可以调用 //选中某个框点击使其变色treeRoot.addEventListener(click,btnChangeC,false);function btnChangeC(event){//先清除上一次的变色reset();event.target.style…