java http 传输中的转义_Java个人笔记(持续更新中)

  • Post author:
  • Post category:java



1.

用 StringUtils.isBlank()方法时,如果该class下,有较多包引用该class时,可以通过

org.apache.commons.lang3.StringUtils.isBlank(); 调用该方法。


2.

“The nested type FunctionService cannot hide an enclosing type”

表明两个类不能放在一个class文件中。


3.

System.out.println(((System) environment).getProperties());

Error: The static method getProperties() from the type System should be accessed in a static way.

类的静态成员(变量和方法)属于类本身,在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。

在一个类的静态成员中去访问其非静态成员之所以会出错是因为在类的非静态成员不存在的时候类的静态成员就已经存在了,访问一个内存中不存在的东西当然会出错:

类的加载:由引导类加载器负责加载的核心类比如 String 类在 JVM 启动时(main 方法开始执行前)就会被加载,其它类在使用前(new 它对象或调用其静态方法访问静态域等等前)会被动态加载,要注意的是

子类被加载前它的所有超类要根据由父到子的顺序被逐一加载。


4 .

super的另外一个作用是调用父类的protected函数。只有通过”super”,我们才能操作父类的protected成员,别无它法。


5.更改Eclipse里面的Maven配置让其能下载源码。

勾选 Artifact Sources 与 Artifact JavaDoc

026965409309daf0ca4d49c789a0c553.png


6、在windows环境中部署SpringBoot 的jar包:

1)首先,将本地服务打jar包:

1.右击项目,选择Run As – Maven clean

2.右击项目,选择Run As – Maven install

3.成功后 会在项目的target文件夹下生成jar包

4.将打包好的jar包 发布到服务器,运行java -jar jar包

2)通过控制台杀死一个占用端口的进程

1:使用:netstat -ano|findstr 端口号 直接查出占用端口的程序和它的pid

例如:netstat -ano|findstr 8080

2:知道pid后,就可以使用taskkill /pid pid 来杀死进程(/pid是参数)。

例如:taskkill -f -pid 1780

2ed5c1ad2dba84189b1b2ec68fc1e2b6.png


7、在eclipse打开多个console窗口

如果你想要2个窗口,解决步骤:

1.运行2个程序:test1和test2(它们需要不同的控制台)

4.在一个console上,点击Display Selected Console下拉按钮,选择test1;而在另一个console上,点击Display Selected Console下拉按钮,选择test2。

5.在2个console上都点击Pin Console按钮


8、在java中通过编程设置代理服务器并访问网络


1

,讲解一下基础知识:

HTTP:是应用层协议,是基于传输层协议的。

TCP: 是传输层协议,是基于网络层协议的。

IP: 是网络层协议。

一个TCP的连接要进行三次握手(就像转户口一样,不详说),HTTP只是一个应用协议,也就是相当于一个自定义协议,即其没有对底层的传输方式进行干涉,只是对数据内容格式进行了定义。


2

,我们再说说HTTP代理,从上可以理解,HTTP代理服务器就是这样一台机器:你把所有的HTTP请求都发到这个 HTTP代理服务器,然后这个HTTP代理服务器请求你要访问的最终地址,把响应回传给你。这里还要注意它代理的是HTTP协议,而HTTP又是基于 TCP的,也就是说这个服务器代理的是指定HTTP内容格式的TCP连接。再说下去也没意思了,看以下代码:

//以下地址是代理服务器的地址

Socket socket = new Socket(“10.1.2.188”, 80);

//写与的内容就是遵循HTTP请求协议格式的内容,请求百度

socket.getOutputStream().write(new String(“GET http://www.baidu.com/ HTTP/1.1rnrn”).getBytes());

byte[] bs = new byte[1024];

InputStream is = socket.getInputStream();

int i;

while ((i = is.read(bs)) > 0) {


System.out.println(new String(bs, 0, i));

}

is.close();

3

,当然在Java中,有Proxy代理上网的使用,此时使用URL(HTTP)就不涉及Socket(TCP)了,看如下代码

//设置代理

System.setProperty(“http.proxySet”, “true”);

System.setProperty(“http.proxyHost”, “10.1.2.188”);

System.setProperty(“http.proxyPort”, “80”);

代码示例:

public 


9. split方法需要注意的地方。

split(“.”) 和 split(“|”)

1. 首先要明白split方法的参数含义:public String[] split(String regex)根据给定的正则表达式的匹配来拆分此字符串。

2. 然后就要明确正则表达式的含义了:

‘.’点 匹配除“n”和”r”之外的任何单个字符。

”表示转义字符,而双重转义相当于原意,


10. flush 方法。

在java开发中,有时我们会进行流的操作,会经常遇到这样一段代码:

   out.flush();
   out.close();

flush()这个函数是清空的意思,用于清空缓冲区的数据流,进行流的操作时,数据先被读到内存中,然后再用数据写到文件中,那么当你数据读完时,我们如果这时调用close()方法关闭读写流,