java常用知识点系列-15

1、lambda:表现形式

1.形式⼀(只包含⼀个参数)
Actionlistener oneArgu = event -> System.out.println(“hello world”);
2.形式⼆(不含参数)
Runnable noArguments = () -> System.out.println(“hello world”);
3.形式三(主体是⼀个代码块)
Runnable multiStatement = () -> {
System.out.print(“Hello”);
System.out.println(" World");
};
4.形式三(包含多个参数)
BinaryOperator add = (x, y) -> x + y;
5.形式三(多个参数,并显⽰声明参数类型)
BinaryOperator addExplicit = (Long x, Long y) -> x +y

2、BufferedWriter

(1)使用readLine读数据时,只有把流关掉才会有反应,误以为readLine()是读取到没有数据时就返回null(因为其它read方法当读到没有数据时返回-1),而实际上readLine()是一个阻塞函数,当没有数据读取时,就一直会阻塞在那,而不是返回null;因为readLine()阻塞后,System.out.println(message)这句根本就不会执行到,所以在接收端就不会有东西输出。要想执行到System.out.println(message),一个办法是发送完数据后就关掉流,这样readLine()结束阻塞状态,而能够得到正确的结果,但显然不能传一行就关一次数据流;另外一个办法是把System.out.println(message)放到while循环体内就可以。如:
    代码:
 BufferedReader input = new BufferedReader(new  InputStreamReader(m_conn.openInputStream()));  
 String message = "";  
 String line = null;  
 while((line = m_input.readLine()) != null) {  
    message += line;  
    System.out.println(message); 
}  
(2)readLine()只有在数据流发生异常或者另一端被close()掉时,才会返回null值。
如果不指定buffer大小,则readLine()使用的buffer有8192个字符。在达到buffer大小之前,只有遇到"/r"、"/n"、"/r/n"才会返回。
小结,使用readLine()一定要注意:
读入的数据要注意有/r或/n或/r/n
没有数据时会阻塞,在数据流异常或断开时才会返回null
使用socket之类的数据流时,要避免使用readLine(),以免为了等待一个换行/回车符而一直阻塞
(3)在发送端发送字符串时,一定要在字符串末尾追加\n或者\r
这样一个字符串就相当于一行数据,所以 readline() 可以理解为读一行数据就停止读取

3、特殊字符

(1)转义字符反斜杠()

我们知道html中大都是双标签,如果在标签内想要输出带有标签结束符的文本都必须进行转义,html中是采用对应的字符替换,如

在java当中,我们要转义一个字符使用的是反斜杠\,反斜杠的作用就是转义下一个字符

(2)回车符\r

\r在java中是回车符的意思,将光标切换到当前行的开头

(3)换行符\n

\n在java中是换行符的意思,切换到下一行,且将光标切换到下一行的开头

(4)制表符\t

\t是制表符的意思,将光标移动到下一个制表符的位置,相当于键盘中的windows键

(5)退格符\b

\b是退格符的意思,将光标回退一个字符的位置,可以结合空白字符使用达到类似删除的效果

前面5个都是具有特殊含义,下面的是将特殊含义取消的转义

(6)""双引号字符

如果需要在双引号内输出双引号字符,且不需要让他产生双引号开始结束的效果,则需要使用这种被转义过的引号

(7)''单引号字符

如果需要在单引号内输出单引号,且要求不对我们的引号产生什么不良效果,则需要使用这种被转义过的引号

(8)\ 反斜杠字符

如果想要输出单纯的反斜杠,就必须在原来的基础上再进行转义一次,让反斜杠失去转义字符的效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爷叫曹小仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值