.net转java要多久_C#/.NET转Java学习笔记

大学研究了三年的.Net,由于偶然的机会,拿到IBM的Java web实习offer,所以决定转行搞Java(综合了校招情况、发展前景和其他各种因素)。

下面是我在学习Java web的一些学习笔记(可能会比较乱,希望能做个备忘,如果能对您有帮助那就更好了)

Servlet相关--------------------------

1.Servlet的生命周期:

Servlet生命周期分为三个阶段:

1,初始化阶段:调用init()方法

2,响应客户请求阶段:调用service()方法

Service()方法内部对请求的类型(get/post)进行了判断,自动调用doPost/doGet

3,终止阶段:调用destroy()方法

2.Servlet的单例多线程:

单例:Servlet只在用户第一次请求时被实例化,并且是单例的,在服务器重启或关闭时才会被销毁。

多线程:当请求到达时,Servlet容器(Tomcat...)通过线程池中可用的线程给请求者并执行Service方法。

Java基础相关-----------------------

1.多线程

线程创建的两种方法:

第一种,实现Runnable接口

packagetest.Thread;importorg.junit.Test;//This example shows the two method to create new thread.The java file "MyThread" shows the other method.

public classNewThread{

@Testpublic voidFun(){

RunnableThread rt= newRunnableThread();

Thread t1= new Thread(rt,"First");

Thread t2= new Thread(rt,"Second");

t1.start();

t2.start();

}

}class RunnableThread implementsRunnable{

@Overridepublic voidrun() {//TODO Auto-generated method stub

for(int i=0;i<100;i++){

System.out.println(Thread.currentThread().getName());

}

}

}

第二种,继承Thread类

packagetest.Thread;public class MyThread extendsThread{//The constructor without parameter

publicMyThread(){

}//The constructor with name parameter

publicMyThread(String name){super(name);

}public voidrun(){for(int i=0;i<100;i++){

System.out.println(this.getName());

}

}

}

线程的同步

使用同步锁synchronized,参见卖票程序。同步的对象必须是同一个对象。

packagetest.Thread;importorg.junit.Test;public classThread_Synchronized {public static voidmain(String[] args){

SynchronizedRunnableThread srt= newSynchronizedRunnableThread();

Thread t1= new Thread(srt,"window1");

Thread t2= new Thread(srt,"window2");

Thread t3= new Thread(srt,"window3");

t1.start();

t2.start();

t3.start();

}

}class SynchronizedRunnableThread implementsRunnable{private static int tickets=100;

@Overridepublic voidrun() {while(true){//We can use the definition of class,because it's unique

/*synchronized(this){

if(tickets>0){

System.out.println(Thread.currentThread().getName()+" is selling the "+(tickets--)+"th ticket");

}

}*/

//or we can use the other method--synchronized method

sellTickets();

}

}private synchronized voidsellTickets() {if(tickets>0){

System.out.println(Thread.currentThread().getName()+" is selling the "+(tickets--)+"th ticket");

}

}

}

2.IO流

四大流:

InputStream、OutputStream  用于任意对象(二进制格式)

Writer、Reader          用于字符对象(字符格式)

使用示例:

packagetest.Stream;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.FileReader;importjava.io.FileWriter;public classFileInputStream_FileOutputStream {public static void main(String[] args) throwsException{//The difference of "FileInputStream" and "FileReader" is that "FileInputStream" read the file with byte,//but "FileReader" read with Unicode,in other words,"FileReader" can read Chinese word.

FileInputStream is = new FileInputStream("D:\\read.txt");

FileOutputStream os=new FileOutputStream("D:\\FileOutputStream.txt");int ch =is.read();while(ch!=-1){

os.write(ch);

System.out.print((char)ch);

ch=is.read();

}

os.flush();

os.close();

is.close();

}

}

packagetest.Stream;importjava.io.FileNotFoundException;importjava.io.FileReader;importjava.io.FileWriter;public classFileReader_FileWriter {public static void main(String[] args) throwsException{

FileReader fr= new FileReader("D:\\read.txt");

FileWriter fw=new FileWriter("D:\\write.txt");int ch =fr.read();while(ch!=-1){

fw.write(ch);

ch=fr.read();

}

fw.flush();

fw.close();

fr.close();

}

}

3.集合类

231c0cd1374818e7fa000b37cdd2b7f6.png

jsp相关-----------------------------

1.jsp工作原理:

当一个JSP文件第一次被请求的时候,Tomcat首先会把这个JSP文件转换成一个Java源文件。在转换过程中如果发现JSP文件有语法错误,转换过程将中断,并向服务端和客户端输出出错信息。如果转换成功,Tomcat用javac把该Java源文件编译成相应的.class文件并将该.class文件加载到内存中。(通过查看原文件,可知jsp最终也是转化被成Servlet,.java就是一个Servlet)

2.jsp九大内置对象?

request          用户端请求,此请求会包含来自GET/POST请求的参数

response        网页传回用户端的回应

pageContext   网页的属性

session       与请求有关的会话信息

application

out             用来传送回应的输出

config                 存取servlet实例的初始化参数

page

exception

3.JSTL标签

1.表达式控制标签:out、set、remove、catch

2.流程控制标签:if、choose、when、otherwise

3.循环标签:forEach、forTokens

4.URL操作标签:import、url、redirect

4.EL表达式

ffdf3383c8f0bdb8dbc9605390f0b0ed.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值