分类目录归档:JAVA

关于java的那些事儿

如何禁止搜索引擎自动转码

其实我再想啊,转码就转码嘛,无非是为了访问者更加方便快捷的访问网站,后来的发现我太天真了,不管你百度还是啥搜狗、神马之类的搜索引擎,你转码就转码,为什么你转码了,还要在后面带上一大串牛皮癣广告呢?你把别人的广告给屏蔽了,自己带广告,这个是不是有不正当竞争的嫌疑呢?不过话说回来,对一个小网站来说,也不会在乎这些了,当然现在网站自适应能力越来越强,不用转码也就能够很好的访问了,转码了反而是画蛇添足呢?那么如何禁止搜索引擎转码呢? 一、百度搜索的禁止转码方式 根据百度官方的转码声明。 站长如果不希望自己的站点被转码怎么办? 百度一共提供了两种解决方案:这里只说一种常见的,而且最容易做到的一种。 <head> <meta http-equiv="Cache-Control" content="no-transform" /> </head> 如第三方站点不希望某页面被转码,可该页面上添加此协议,当用户通过移动搜索进入第三方网站时,会直接进入原网页。 二、神马搜索引擎的禁止转码方式 4、神马搜索根据您的指令使系统自动在全网进行搜索,您同时从第三方网站直接获取所需的数据信息时,神马搜索充分尊重您的选择权,如您希望以非转码形式获取第三方网站数据,请您选择访问原网站浏览。【不同意转码的实现方式】no-siteapp协议Siteapp支持的no-siteapp协议为如下两种形式: a. HTTP Response中显式声明Cache-control为no-siteapp。 b. meta标签中显式声明Cache-control为no-siteapp,格式为: <head><meta http-equiv="Cache-Control" content="no-siteapp" /> </head> 神马搜索的转码声明 三、总结 总结起来,其实很简单,代码如下: <head> <meta http-equiv="Cache-Control" content="no-transform" /> <meta http-equiv="Cache-Control" content="no-siteapp" /> </head> 一般来说添加了代码之后,5天左右网站访问的时候就不会转码了,有人要问为啥没有说其他搜索引擎,其实其他搜索引擎也是遵守这些协议的。 http://www.music4x.com/?post=889

发表在 JAVA, 网络推广 | 留下评论

java多线程 生产消费者模型

下面的代码讲述了一个故事 一个面包生产铺里目前有30个面包,有三个人来买面包,第一个人要买50个,第二个要买20个,第三个要买30个。 第一个人不够,所以等着,让第二个买了。面包铺继续生产面包。有7个人在生产。 package com.javaer.thread;   public class CPMode {   public static void main(String[] args) { Godown godown = new Godown(30); //初始化库存 30个食物 Consumer c1 = new Consumer(50, godown); Consumer c2 = new Consumer(20, godown); Consumer c3 = new … 继续阅读

发表在 JAVA | 标签为 , , , | 2 条评论

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 多线程join,合并线程

线程的join合并的含义就是将几个并行线程的线程合并为一个单线程执行,应用场景是当一个线程必须等待另一个线程执行完毕才能执行时可以使用join方法。 package com.javaer.thread;   public class Tjoin {   /** * @param args */ public static void main(String[] args) { Thread t = new Thread(new Runner()); t.start(); try { t.join(1000); System.out.println("join ok"); } catch (InterruptedException e) { // TODO Auto-generated … 继续阅读

发表在 JAVA | 标签为 , , , | 一条评论

java多线程,让步yield

先看个yield让步的例子 package com.javaer.thread;   public class YThread implements Runnable { private Object obj = new Object();   /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub YThread s = new YThread(); Thread t1 … 继续阅读

发表在 JAVA | 标签为 , , , | 2 条评论

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多线程,同步与锁

线程的同步和锁的问题,我们先来看个例子, 下面的例子我们希望两个线程对m变量进行削减 package com.javaer.thread; /** * 测试线程同步锁的问题 * @author yuexiaosheng * */ public class SysTest implements Runnable { int m = 10;   public static void main(String[] args) { SysTest s1= new SysTest(); Thread t1 = new Thread(s1, "Thread-t1"); Thread … 继续阅读

发表在 JAVA | 标签为 , , , | 一条评论

java采用Runnable 实现多线线程

使用实现Runnalbe可以做出一个多线程,之前我们采用继承Thread的办法也做出一个。 public class TestMitiThread1 implements Runnable {   public static void main(String[] args) { System.out.println(Thread.currentThread().getName() + " 线程运行开始!"); TestMitiThread1 test = new TestMitiThread1(); Thread thread1 = new Thread(test); Thread thread2 = new Thread(test); thread1.start(); thread2.start(); System.out.println(Thread.currentThread().getName() + " 线程运行结束!"); } … 继续阅读

发表在 JAVA | 标签为 , , , | 一条评论

华为上机练习面试题二

题目: 有n 个人围城一圈每次从1数起数到3就把那个人提出圈子,最后只保留一个人。 输入: 输入人数字符串 输出:把最后一个人所保留位置返回出来。 比如你输入11 的话即有11个人 [1,2,3,4,5,6,7,8,9,10,11] 。返回的是7. 如果输入”123a” 的话,返回的是”0″。 package com.javaer.huawei;   import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern;     public class TestJosephRing {   public static void main(String args[]){ String n = "11"; TestJosephRing … 继续阅读

发表在 JAVA | 标签为 , | 一条评论