标签归档:java教程

java POST 数据给第三方URL

我曾经给服务器同步数据 1.采用过FTP传送一个txt文本,然后用php 拆解。 2.用过直接链接数据库 这个方案的好坏取决于1.数据库是否能对外直接链接(安全也是个问题) 2.数据库的链接效率。外面链接,总是不如本地链接速度快。 3.今天说说第三个办法,JAVA POST数据给服务器 //发送 POST 请求 String sr=HttpRequest.sendPost( "http://localhost:6144/Home/RequestPostString", "key=123&v=456"); /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 */ public static … 继续阅读

发表在 JAVA | 标签为 , , | 留下评论

java多线程 优先级

要点:优先级仅仅增大概率,但是并非一定会优先 在多线程中,与线程休眠类似,线程的优先级仍然无法保障线程的执行次序。只不过,优先级高的线程获取CPU资源的概率较大,优先级低的并非没机会执行。 线程的优先级用1-10之间的整数表示,数值越大优先级越高,默认的优先级为5。 package com.javaer.thread;   public class PTread implements Runnable {     public static void main(String[] args) { Thread s1 = new Thread(new TSleep(),"S1"); Thread s2 = new Thread(new TSleep(),"S2"); s1.setPriority(10); s2.setPriority(1); s1.start(); s2.start(); }   @Override public … 继续阅读

发表在 JAVA | 标签为 , , , | 留下评论

Java多线程,线程守护

核心说明:理解这句话下面可以不看了。 守护与其他线程同时执行,当正在运行的线程都是守护线程时,Java 虚拟机退出。 守护线程与普通线程写法上基本么啥区别,调用线程对象的方法setDaemon(true),则可以将其设置为守护线程。 守护线程使用的情况较少,但并非无用,举例来说,JVM的垃圾回收、内存管理等线程都是守护线程。还有就是在做数据库应用时候,使用的数据库连接池,连接池本身也包含着很多后台线程,监控连接个数、超时时间、状态等等。 setDaemon方法的详细说明: public final void setDaemon(boolean on)将该线程标记为守护线程或用户线程。当正在运行的线程都是守护线程时,Java 虚拟机退出。 该方法必须在启动线程前调用。 该方法首先调用该线程的 checkAccess 方法,且不带任何参数。这可能抛出 SecurityException(在当前线程中)。 参数: on – 如果为 true,则将该线程标记为守护线程。 抛出: IllegalThreadStateException – 如果该线程处于活动状态。 SecurityException – 如果当前线程无法修改该线程。 另请参见: isDaemon(), checkAccess() package com.javaer.thread;   public class DThread {   … 继续阅读

发表在 JAVA | 标签为 , , , | 留下评论

Java多线程中的wait与notify,notifyall

在Java多线程编程中,wait()的作用的是让当前线程进入阻塞状态,notify()是让当前线程唤醒继续执行。虽然是对线程状态的控制,但它们其实都是Object中的方法,这是因为wait与notify所起的作用与线程间的互斥锁有关。 在执行wait()和notify()之前,必须要先获得互斥锁,即一定要和synchronized一起使用。wait()的含义是让出获得的互斥锁,并让自己进入阻塞状态。在notify()的时候也已经获得了互斥锁,所做的事情就是唤醒当前线程继续执行。 假如synchronized的锁对象是obj的话,wait和notify正确的使用方法是obj.wait()和obj.notify()。如果使用this作为锁,则可以直接写成wait()和notify()。如果前后使用的锁对象不一致,会发生IllegalMonitorStateException。 当有多个线程共同使用一个互斥锁时,notify()会随机选取一个执行过wait()的线程唤醒,其余会继续保持阻塞状态。如果想唤醒所有阻塞的进程,就使用到了notifyAll()。 有点晕了么,把代码拿去执行可以好好体会下,一会看完代码,看结论 package com.javaer.thread;   public class Twait {   public static void main(String[] args) { TestThread testThread1 = new TestThread(); TestThread testThread2 = new TestThread(); TestThread testThread3 = new TestThread();   testThread1.start(); testThread2.start(); testThread3.start();   System.out.println("主线程休眠5秒"); … 继续阅读

发表在 WEB前端 | 标签为 , , , , , , , | 留下评论

java多线程休眠

线程休眠的方法是Thread.sleep(long millis) 和Thread.sleep(long millis, int nanos) sleep()单位是毫秒 问题1.休眠的时候,哪个线程会休眠 答案:哪个线程调用了sleep,哪个就会休眠 问题2.主线程能休眠了 可以 Thread.sleep()经常被调用来进行程序的等待,比如你想让你的程序定时执行,可以写个代码 int a=2 while(a > 1){ run… Thread.sleep(24*3600*1000);// 每天跑一次 } 看个例子 package com.javaer.thread;   public class TSleep implements Runnable {   public static void main(String[] args) { Thread s1 … 继续阅读

发表在 JAVA | 标签为 , , , , , , | 留下评论

java StringBuffer,StringBuilder,String自身连接效率对比

当我们仅仅需要a+b 的时候,两个字符串链接任何方法的效率基本一样,都在0.0001毫秒内就可以完成。不过如果需要1万次,10000万次,就会发现string自身的join速度显著下降 package com.java.lang;   public class StringTest { int MAX = 10000; //1万次累加 public String Buffer(){ StringBuffer sb = new StringBuffer(); for(int i = 0; i < MAX;i++){ sb.append("abc"); } return sb.toString(); } public String Build(){ StringBuilder sb = … 继续阅读

发表在 JAVA | 标签为 , , , , | 留下评论

java拆分字符串split

经常需要用java拆分字符串如1,2,3,4 tom,jim,andy,han package com.java.lang;   public class StringSp {   /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub java.lang.String a = "my name is yuexiaosheng my blog is java-er.com";   // java.lang.String … 继续阅读

发表在 JAVA | 标签为 , , , , | 留下评论

java查找字符串

java中查找一个字符串是否包含一个字符,或者一段字符串java.lang.String indexOf方法 package com.java.lang;   public class StringX {   /** * @param args */ public static void main(String[] args) { java.lang.String a = "my name is yuexiaosheng,my blog is java-er.com"; int isPos = a.indexOf("is"); int islastPos = a.lastIndexOf("is");   … 继续阅读

发表在 JAVA | 标签为 , , | 留下评论

java三话:如何生成指定范围随机数

第一话:如何生成一个随机数字,指定随机数范围为60-100 int f = (int)(Math.random()*40 + 60);//60 到100之间随机数字 f = (int)(Math.random()*40);//0到40之间的数字   System.out.println(Math.random()); System.out.println(f); 以上采用+60 的办法,巧妙解决了最小数是60的问题。 我们知道Math.random 生成0到0.99999之间的随机数,所以前面的*40 就会得到0-40之间的数字。 第二话:指定一定范围的随机数另一种生成办法 public static void main(String[] args) { int max=20; int min=10; Random random = new Random();   int s = random.nextInt(max)%(max-min+1) … 继续阅读

发表在 JAVA | 标签为 , , , | 留下评论

apche common-net-3.0.1.jar上传FTP文件

之前用的sun的ftp包,在java7 下面,过时了,不能用,无法引入。觉得还是用Apache的吧。 下载了一个commons-net-3.0.0.jar的包搞了一通以后,发现上传的文件为0大小,郁闷啊。 在百度里翻了半天别人问的这个问题,无正确回答 最后跑google翻出去看外国人说是包有毛病,得用3.0.1的,于是跑去下载个commons-net-3.0.1.jar,就成功了。 伟大的google啊。(真是百度一根毛也找不到) 顺便提供一份commons-net-3.0.1.jar包下载(我快翻遍了百度google,才找到这个。CSDN要积分,我积分消耗完毕了。) 下载jar包 package com.javaer.commcon;   import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPClientConfig; import org.apache.commons.net.ftp.FTPReply;   import java.io.*; import java.net.SocketException; import java.text.SimpleDateFormat;   public class AFtp {   private static String userName; // FTP 登录用户名 private … 继续阅读

发表在 JAVA | 标签为 , , , | 留下评论