用 Java 给自己找个合适的妹子

java爬虫框架——jsoup的简单使用(爬取电影天堂的所有电影的信息,包括下载的链接)                                 java爬虫——jsoup一:所需知识1.io操作2.简单学习框架jsoup3.多线程二:java文件介绍1.Main.java --------------------程序入口2.JsoupDemo.java-------------------爬虫的逻辑部分3.Movies.java--------------------java... 阅读详情

点击“开发者技术前线”,选择“星标????”

让一部分开发者看到未来

来源:blog.youkuaiyun.com/qq_35402412/article/details/113627625

Python版本:用 Python 给自己找个合适的妹子



目的

古人云:知己知彼,百战不殆.  好好去了解一下妹子们的内心想法,早日脱单!这次我在一个某知名婚恋网站,抓取了一些数据,对她们的内心读白进行分析.

爬取搜狗图片上千张美女图片并下载到本地

准备工作

爬取地址:https://pic.sogou.com/pics?query=%E7%BE%8E%E5%A5%B3

分析

打开上面的地址,按F12开发者工具 - NetWork - XHR - 页面往下滑动XHR栏出现请求信息如下:

Request URL :https://pic.sogou.com/napi/pc/searchList?mode=1&start=48&xml_len=48&query=%E7%BE%8E%E5%A5%B3

分析这段请求URL的主要几个参数:

start=48 表示从第48张图片开始检索

xml_len=48 从地48张往后获取48张图片

query=?搜索关键词(例:美女,这里浏览器自动做了转码,不影响我们使用)

点击Respose,找个JSON格式器辅助过去看看。

JSON格式:https://www.bejson.com/

分析Respose返回的信息,可以发现我们想要的图片地址放在 picUrl里,

思路

通过以上分析,不难实现下载方法,思路如下:

  1. 设置URL请求参数

  2. 访问URL请求,获取图片地址

  3. 图片地址存入List

  4. 遍历List,使用线程池下载到本地

代码

SougouImgProcessor.java 爬取图片类

import com.alibaba.fastjson.JSONObject;
import us.codecraft.webmagic.utils.HttpClientUtils;
import victor.chang.crawler.pipeline.SougouImgPipeline;

import java.util.ArrayList;
import java.util.List;

/**
 * A simple PageProcessor.
 * @author code4crafter@gmail.com <br>
 * @since 0.1.0
 */
public class SougouImgProcessor {

    private String url;
    private SougouImgPipeline pipeline;
    private List<JSONObject> dataList;
    private List<String> urlList;
    private String word;

    public SougouImgProcessor(String url,String word) {
        this.url = url;
        this.word = word;
        this.pipeline = new SougouImgPipeline();
        this.dataList = new ArrayList<>();
        this.urlList = new ArrayList<>();
    }

    public void process(int idx, int size) {
        String res = HttpClientUtils.get(String.format(this.url, idx, size, this.word));
        JSONObject object = JSONObject.parseObject(res);
        List<JSONObject> items = (List<JSONObject>)((JSONObject)object.get("data")).get("items");
        for(JSONObject item : items){
            this.urlList.add(item.getString("picUrl"));
        }
        this.dataList.addAll(items);
    }

    // 下载
    public void pipelineData(){
        // 多线程
        pipeline.processSync(this.urlList, this.word);
    }


    public static void main(String[] args) {
        String url = "https://pic.sogou.com/napi/pc/searchList?mode=1&start=%s&xml_len=%s&query=%s";
        SougouImgProcessor processor = new SougouImgProcessor(url,"美女");

        int start = 0, size = 50, limit = 1000; // 定义爬取开始索引、每次爬取数量、总共爬取数量

        for(int i=start;i<start+limit;i+=size)
            processor.process(i, size);

        processor.pipelineData();

    }

}

SougouImgPipeline.java  图片下载类

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;

/**
 * Store results in files.<br>
 * @author code4crafter@gmail.com <br>
 * @since 0.1.0
 */
public class SougouImgPipeline {

    private String extension = ".jpg";
    private String path;

    private volatile AtomicInteger suc;
    private volatile AtomicInteger fails;

    public SougouImgPipeline() {
        setPath("E:/pipeline/sougou");
        suc = new AtomicInteger();
        fails = new AtomicInteger();
    }

    public SougouImgPipeline(String path) {
        setPath(path);
        suc = new AtomicInteger();
        fails = new AtomicInteger();
    }

    public SougouImgPipeline(String path, String extension) {
        setPath(path);
        this.extension = extension;
        suc = new AtomicInteger();
        fails = new AtomicInteger();
    }

    public void setPath(String path) {
        this.path = path;
    }

    /**
     * 下载
     * @param url
     * @param cate
     * @throws Exception
     */
    private void downloadImg(String url, String cate, String name) throws Exception {
        String path = this.path + "/" + cate + "/";
        File dir = new File(path);
        if (!dir.exists()) {    // 目录不存在则创建目录
            dir.mkdirs();
        }
        String realExt = url.substring(url.lastIndexOf("."));   // 获取扩展名
        String fileName = name + realExt;
        fileName = fileName.replace("-", "");
        String filePath = path + fileName;
        File img = new File(filePath);
        if(img.exists()){   // 若文件之前已经下载过,则跳过
            System.out.println(String.format("文件%s已存在本地目录",fileName));
            return;
        }

        URLConnection con = new URL(url).openConnection();
        con.setConnectTimeout(5000);
        con.setReadTimeout(5000);
        InputStream inputStream = con.getInputStream();
        byte[] bs = new byte[1024];

        File file = new File(filePath);
        FileOutputStream os = new FileOutputStream(file, true);
        // 开始读取 写入
        int len;
        while ((len = inputStream.read(bs)) != -1) {
            os.write(bs, 0, len);
        }
        System.out.println("picUrl: " + url);
        System.out.println(String.format("正在下载第%s张图片", suc.getAndIncrement()));
    }

    /**
     * 单线程处理
     *
     * @param data
     * @param word
     */
    public void process(List<String> data, String word) {
        long start = System.currentTimeMillis();
        for (String picUrl : data) {
            if (picUrl == null)
                continue;
            try {
                downloadImg(picUrl, word, picUrl);
            } catch (Exception e) {
                fails.incrementAndGet();
            }
        }
        System.out.println("下载成功: " + suc.get());
        System.out.println("下载失败: " + fails.get());
        long end = System.currentTimeMillis();
        System.out.println("耗时:" + (end - start) / 1000 + "秒");
    }


    /**
     * 多线程处理
     *
     * @param data
     * @param word
     */
    public void processSync(List<String> data, String word) {
        long start = System.currentTimeMillis();
        int count = 0;
        ExecutorService executorService = Executors.newCachedThreadPool(); // 创建缓存线程池
        for (int i=0;i<data.size();i++) {
            String picUrl = data.get(i);
            if (picUrl == null)
                continue;
            String name = "";
            if(i<10){
                name="000"+i;
            }else if(i<100){
                name="00"+i;
            }else if(i<1000){
                name="0"+i;
            }
            String finalName = name;
            executorService.execute(() -> {
                try {
                    downloadImg(picUrl, word, finalName);
                } catch (Exception e) {
                    fails.incrementAndGet();
                }
            });
            count++;
        }
        executorService.shutdown();
        try {
            if (!executorService.awaitTermination(60, TimeUnit.SECONDS)) {
                // 超时的时候向线程池中所有的线程发出中断(interrupted)。
                // executorService.shutdownNow();
            }
            System.out.println("AwaitTermination Finished");
            System.out.println("共有URL: "+data.size());
            System.out.println("下载成功: " + suc);
            System.out.println("下载失败: " + fails);

            File dir = new File(this.path + "/" + word + "/");
            int len = Objects.requireNonNull(dir.list()).length;
            System.out.println("当前共有文件: "+len);

            long end = System.currentTimeMillis();
            System.out.println("耗时:" + (end - start) / 1000.0 + "秒");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }


    /**
     * 多线程分段处理
     *
     * @param data
     * @param word
     * @param threadNum
     */
    public void processSync2(List<String> data, final String word, int threadNum) {
        if (data.size() < threadNum) {
            process(data, word);
        } else {
            ExecutorService executorService = Executors.newCachedThreadPool();
            int num = data.size() / threadNum;    //每段要处理的数量
            for (int i = 0; i < threadNum; i++) {
                int start = i * num;
                int end = (i + 1) * num;
                if (i == threadNum - 1) {
                    end = data.size();
                }
                final List<String> cutList = data.subList(start, end);
                executorService.execute(() -> process(cutList, word));
            }
            executorService.shutdown();
        }
    }

}

HttpClientUtils.java  http请求工具类

import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustStrategy;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.GeneralSecurityException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author code4crafter@gmail.com
 * Date: 17/3/27
 */
public abstract class HttpClientUtils {

    public static Map<String, List<String>> convertHeaders(Header[] headers) {
        Map<String, List<String>> results = new HashMap<String, List<String>>();
        for (Header header : headers) {
            List<String> list = results.get(header.getName());
            if (list == null) {
                list = new ArrayList<String>();
                results.put(header.getName(), list);
            }
            list.add(header.getValue());
        }
        return results;
    }

    /**
     * http的get请求
     * @param url
     */
    public static String get(String url) {
        return get(url, "UTF-8");
    }

    public static Logger logger = LoggerFactory.getLogger(HttpClientUtils.class);

    /**
     * http的get请求
     * @param url
     */
    public static String get(String url, String charset) {
        HttpGet httpGet = new HttpGet(url);
        return executeRequest(httpGet, charset);
    }

    /**
     * http的get请求,增加异步请求头参数
     * @param url
     */
    public static String ajaxGet(String url) {
        return ajaxGet(url, "UTF-8");
    }

    /**
     * http的get请求,增加异步请求头参数
     *
     * @param url
     */
    public static String ajaxGet(String url, String charset) {
        HttpGet httpGet = new HttpGet(url);
        httpGet.setHeader("X-Requested-With", "XMLHttpRequest");
        return executeRequest(httpGet, charset);
    }

    /**
     * @param url
     * @return
     */
    public static String ajaxGet(CloseableHttpClient httpclient, String url) {
        HttpGet httpGet = new HttpGet(url);
        httpGet.setHeader("X-Requested-With", "XMLHttpRequest");
        return executeRequest(httpclient, httpGet, "UTF-8");
    }

    /**
     * http的post请求,传递map格式参数
     */
    public static String post(String url, Map<String, String> dataMap) {
        return post(url, dataMap, "UTF-8");
    }

    /**
     * http的post请求,传递map格式参数
     */
    public static String post(String url, Map<String, String> dataMap, String charset) {
        HttpPost httpPost = new HttpPost(url);
        try {
            if (dataMap != null) {
                List<NameValuePair> nvps = new ArrayList<NameValuePair>();
                for (Map.Entry<String, String> entry : dataMap.entrySet()) {
                    nvps.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
                }
                UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nvps, charset);
                formEntity.setContentEncoding(charset);
                httpPost.setEntity(formEntity);
            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return executeRequest(httpPost, charset);
    }

    /**
     * http的post请求,增加异步请求头参数,传递map格式参数
     */
    public static String ajaxPost(String url, Map<String, String> dataMap) {
        return ajaxPost(url, dataMap, "UTF-8");
    }

    /**
     * http的post请求,增加异步请求头参数,传递map格式参数
     */
    public static String ajaxPost(String url, Map<String, String> dataMap, String charset) {
        HttpPost httpPost = new HttpPost(url);
        httpPost.setHeader("X-Requested-With", "XMLHttpRequest");
        try {
            if (dataMap != null) {
                List<NameValuePair> nvps = new ArrayList<NameValuePair>();
                for (Map.Entry<String, String> entry : dataMap.entrySet()) {
                    nvps.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
                }
                UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nvps, charset);
                formEntity.setContentEncoding(charset);
                httpPost.setEntity(formEntity);
            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return executeRequest(httpPost, charset);
    }

    /**
     * http的post请求,增加异步请求头参数,传递json格式参数
     */
    public static String ajaxPostJson(String url, String jsonString) {
        return ajaxPostJson(url, jsonString, "UTF-8");
    }

    /**
     * http的post请求,增加异步请求头参数,传递json格式参数
     */
    public static String ajaxPostJson(String url, String jsonString, String charset) {
        HttpPost httpPost = new HttpPost(url);
        httpPost.setHeader("X-Requested-With", "XMLHttpRequest");
        
        StringEntity stringEntity = new StringEntity(jsonString, charset);// 解决中文乱码问题
        stringEntity.setContentEncoding(charset);
        stringEntity.setContentType("application/json");
        httpPost.setEntity(stringEntity);
        return executeRequest(httpPost, charset);
    }

    /**
     * 执行一个http请求,传递HttpGet或HttpPost参数
     */
    public static String executeRequest(HttpUriRequest httpRequest) {
        return executeRequest(httpRequest, "UTF-8");
    }

    /**
     * 执行一个http请求,传递HttpGet或HttpPost参数
     */
    public static String executeRequest(HttpUriRequest httpRequest, String charset) {
        CloseableHttpClient httpclient;
        if ("https".equals(httpRequest.getURI().getScheme())) {
            httpclient = createSSLInsecureClient();
        } else {
            httpclient = HttpClients.createDefault();
        }
        String result = "";
        try {
            try {
                CloseableHttpResponse response = httpclient.execute(httpRequest);
                HttpEntity entity = null;
                try {
                    entity = response.getEntity();
                    result = EntityUtils.toString(entity, charset);
                } finally {
                    EntityUtils.consume(entity);
                    response.close();
                }
            } finally {
                httpclient.close();
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return result;
    }

    public static String executeRequest(CloseableHttpClient httpclient, HttpUriRequest httpRequest, String charset) {
        String result = "";
        try {
            try {
                CloseableHttpResponse response = httpclient.execute(httpRequest);
                HttpEntity entity = null;
                try {
                    entity = response.getEntity();
                    result = EntityUtils.toString(entity, charset);
                } finally {
                    EntityUtils.consume(entity);
                    response.close();
                }
            } finally {
                httpclient.close();
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return result;
    }

    /**
     * 创建 SSL连接
     */
    public static CloseableHttpClient createSSLInsecureClient() {
        try {
            SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(new TrustStrategy() {
                @Override
                public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                    return true;
                }
            }).build();
            SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new HostnameVerifier() {
                @Override
                public boolean verify(String hostname, SSLSession session) {
                    return true;
                }
            });
            return HttpClients.custom().setSSLSocketFactory(sslsf).build();
        } catch (GeneralSecurityException ex) {
            throw new RuntimeException(ex);
        }
    }
}

运行

由于网络等原因,我们发现并不能全部下载成功,不过可以多次运行尝试,可以实现较高的下载成功率。

666,厉害了。。

Python:用 Python 给自己找个合适的妹子

— 完 —点这里????关注我,记得标星呀~前线推出学习交流一定要备注:研究/工作方向+地点+学校/公司+昵称(如JAVA+上海

扫码加小编微信,进群和大佬们零距离

END

后台回复“电子书” “资料” 领取一份干货,数百面试手册等历史推荐又一个吊打百度网盘的开源神器,还是99年妹子开发的
VS Code 新出的插件竟然能约会找女朋友,找对象不看脸,主要看编程水平
面试阿里!妹子终面,阿里面试官问:有没有男朋友? 结果...

好文点个在看吧!
Java简单实现爬虫,抓取整个网站所有链接+图片+文件(思路+代码) Java简单实现爬虫技术,抓取整个网站所有链接+图片+文件(思路+代码) 写这个纯属个人爱好,前两天想玩爬虫,但是百度了一大圈也没发现有好一点的帖子,所以就自己研究了下,亲测小点的网站还是能随随便便爬完的,由于是单线程所以速度嘛~~你懂的 (多线程没学好,后期再慢慢加上多线程吧) 先上几张效果图 需要用到的知识点 网络请求(至于用哪个嘛,看个人喜好,文章用的... 阅读详情

相关推荐

HFSS仿真平行线定向耦合器学习笔记

材料:FR4(玻璃纤维环氧树脂),介电常数:4.4,损耗角正切:0.02,厚度0.8mm。扫频方式:快速扫频,扫频范围:1.0GHz~3.0GHz,步进:0.01GHz。端口2是端口1关于Y轴对称,端口3,端口4是端口1和端口2关于X轴对称得到。求解中心频率:2.0GHz,迭代次数:20,收敛误差为0.02。右键设置边界条件----辐射边界。激励方式:集总端口激励。

qq_36521926的博客 4491

Java爬虫-实现图片高效批量下载

该文章描述了爬虫的原理和实现方法,用于初学者的了解和认识,文章仅供参考,不可使用爬虫做违法的事情。

Victor.Chang 1万+

滑模控制理论(SMC)概述

滑模控制理论(SMC)概述一、背景二、数学理论三、高维拓展四、分析 一、背景 滑模控制理论(Sliding Mode Control, SMC)是一种建立在现代控制理论基础上的控制理论,主要数学核心为李雅普诺夫函数。 滑模控制的核心思想是建立一个滑模面,将被控系统拉取到滑模面上来,使系统沿着滑模面运动。滑模控制的一个优势是无视外部扰动和不确定参数,采用一种比较“暴力”的方式达到控制的目的。 其思想和反步法有些类似,但数学实现起来更加方便而不抽象。相比反步法,滑模控制没有复杂的数学计算,也不会出现“微分爆炸”

高能阿博特的博客 6万+

Could not fetch URL XXXXXX: There was a problem confirm confirming the ssl xxxx

pip 安装时出错。

大曹的博客 803

esp32 python开发环境搭建_eclipse esp32开发环境搭建

安装方法基本是按照官网提供的方法来操作https://github.com/espressif/idf-eclipse-plugin#GettingStarted但是官网的方法安装之后还是不能编译成功的,第一次编译会出现一下问题问题1:Building in: E:\eclipse-workspace\helloworlk\buildcmake -G Ninja -DCMAKE_TOOLCHAIN...

weixin_39978276的博客 1263

YOLOV8主干改进方法:C2f-Dual——DualConv轻量化双卷积设计(附改进代码)

DualConv是一种创新的卷积网络结构,旨在构建轻量级的深度神经网络。它通过结合3×3和1×1的卷积核处理相同的输入特征映射通道,优化了信息处理和特征提取。DualConv利用组卷积技术高效排列卷积滤波器,大大降低了计算成本和参数数量。

m0_74890428的博客 4700

Java爬虫批量爬取图片

Java爬取妹子图片(2020年3月) 现在开始学习爬虫,发现大多数人的入门程序多是爬取美女图片,感觉这似乎是一个传统,所以我也就来继续这个传统吧。这是学习技术的,不是下载图片的! 因为我是Java方向的,所以我就使用Java来写这个小爬虫程序了。 目标网址:妹子图 使用技术:Java基础知识、HttpClient 4.x 、Jsoup 爬取目标:获取几张图片。 爬取思路 对于这种图片的获取,...

qq_40734247的博客 6580

【100%通过率】华为OD机试真题 Python 实现【投篮大赛】【2022.11 Q4 新题】

你现在是一场采用特殊赛制投篮大赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表 ops,其中ops[i]是你需要记录的第i项操作,ops遵循下述规则: 整数x-表示本回合新获得分数x “+” – 表示本回合新获得的得分是前两次得分的总和。 “D” – 表示本回合新获得的得分是前一次得分的两倍。 “C” – 表示本回合没有分数,并且前一次得分无效,将其从记录中移除。 请你返回记录中所有得分的总和。

MISAYAONE的博客 1万+

java程序员 非诚勿扰_给单身程序员介绍个妹子,非诚勿扰-第3期

给单身程序员介绍个妹子,非诚勿扰-第3期单身的男程序员们!今天再给大家介绍一个妹子,一个希望找程序员男朋友的妹子。妹子的自我介绍年龄:94年 双子座身高:1米60身材:匀称学历:研究生在读(医学)城市:贵阳爱好:偶尔看电影或综艺但不沉迷,有时间会与同学朋友一起,旅行爬山跑步压马路寻美食~~性格:性格的话,我可能介于文静和开朗之间,有时候安静,有时候又大大咧咧,喜欢小动物和花花草草。对熟悉的人话唠,...

weixin_32352621的博客 414

uniapp(vue3)- 详解安装/使用pinia报错reportJSException >>>> exception function:createInstanceContext, excepti

uniapp vue3 pinia报错reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack -> at useStore,H5网页,微信小程序,安卓App,苹果App,nvue,uniapp安装使用pinia出现报错at useStore,uniapp+vue3+ts 使用pinia报

🏆 前端领域优质创作者 4048

手把手教你玩转RISC-V指令集​​​专栏--​​1.2 对比x86/ARM:RISC-V的三大核心优势(开放、灵活、可扩展)​

​:RISC-V以“开放打破垄断、灵活适配场景、扩展定义未来”的三大优势,正在重塑计算架构格局。其核心价值不仅是技术革新,更是对全球半导体产业链话语权的重新分配。

amy_mhd的博客 130

我想去大厂看妹子!阿里云-Java实习岗【面试真题】

List 和 Set 的区别 List , Set都是继承自Collection接口 List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的,加入Set的Object必须定义equals ()方法 ,另外list支持for循环,也就是通过下标来遍历,也可以用迭代器,但是set只能用迭代,因为他无序,无法用下标来取得想要的值。...

在路上 625

涨点神器:基于YOLOv8的SPD-Conv小目标检测实战教程——让低分辨率场景检测精度飙升

从代码修改到场景落地,每一步都围绕“提升检测精度”这个核心目标,而实际数据也证明了这项技术的强悍——它不是实验室里的花拳绣腿,而是能真正解决工业痛点的涨点神器。在实际场景中,比如无人机巡检的低分辨率航拍图中,对电线、小设备的检测,YOLOv8-SPD的漏检率降低了70%以上。落地时,只需将训练好的YOLOv8-SPD模型部署到边缘设备或云端,即可享受其在小目标、低分辨率场景下的强大性能。的特征融合模块中,通过插入SPD-Conv,让模型在处理小目标时,既能保留空间细节,又能增强通道维度的特征表达。

m0_71589036的博客 157

Java中静态代理

最近我一直想搞清楚Java中的代理问题。一直都只是听说,还没有真正领教。 于是我就在网上找了一下,说得不是很明白,然后我又在视频里找了一下,有一个叫兄弟连的视频给了介绍,虽然那些风格我不是很喜欢,不过也算是说得明明白白。我同学说马士兵讲得不错,因为看了这个视频,也就不想再找了。 视频里是举了一个形象的例子: 一个妹子请媒婆来给她找一个如意郎君。而这里的媒婆就是我们所说的那个代理类。代理模式是为

大鱼 1333

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

比亚迪程序员泪目:自曝身份后妹子失联,“迪厂” 工作不好找女友!

???? 这是一个或许对你有用的社群???? 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料:《项目实战(视频)》:从书中学,往事上“练”《互联网高频面试题》:面朝简历学习,春暖花开《架构 x 系统设计》:摧枯拉朽,掌控面试高频场景题《精进 Java 学习指南》:系统学习,互联网主流技术栈《必读 Java 源码专栏》:知其然,知其所以然????这是一个或许...

芋艿V 193

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

匹马行天下之思维决定高度篇——教你如何爱上“编程妹子”

“天上掉下个林妹妹 似一朵轻云刚出岫 只道他腹内草莽人轻浮 却原来骨格清奇非俗流 娴静犹如花照水 行动好比风扶柳 眉梢眼角藏秀气 声音笑貌露温柔 眼前分明外来客 心底却似旧时友” 前言: 作为一名刚入门两年的程序员,我深知编程行业的不容易,不仅需要应对高强度的工作,还需要大量的技术知识,而且编程这行业不像医生、律师这些知识相对稳定的行业越老越吃...

weixin_30307267的博客 154

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

深漂中年程序员回忆录-南下找工作(二)

不知道大家第一次来深圳找工作是做什么交通工具的, 小Z做的是下面的大家伙. 读书的时候从县城到省城只要大巴就可以到达, 平时还是很少做火车. 第一次做火车还是挺兴奋的, 特别是听到火车的鸣笛声, 充满好奇、期待和紧张。 当时南下广东打工人还是挺多的, 上火车时就跟深圳早高峰地铁一样, 似乎是被人流推上火车. 到达深圳第一站边是深圳东站, 落脚点在布吉附近, 现在回想当时印象最深的便是布吉到处都是卖手机店, 最典型的便是恒波手机, 门口摆放着大喇叭播放着各种最新款山...

chwlshare的博客 567

看Android的发展-谈一下当下最合适的架构

作者丨i校长来自丨简书https://www.jianshu.com/p/d90dbed80a38前言前前后后经历过大项目、小项目,跨平台,小程序,Nodejs服务等等,目前在做的Rom...

<sdffdsfsdfdfs>sfsfsfsdfsdffds</sdfsDS>Fsd 209

UESTC_邱老师选妹子 2015 UESTC Training for Dynamic Programming<Problem H>

H - 邱老师选妹子 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) SubmitStatus 邱老师长得帅这是人尽皆知,于是追他的妹子就会很多。 但是你知道,邱老师是一个很专一的人,所以他心里面只能有一个人。 于是他决定从追他的众多妹...

weixin_30947043的博客 73

学java还是python还是php-零基础应该选择学习 java、php、前端 还是 python?

说实在的,这个年头,零基础学Python比较好,简单容易上手快,但是我那个年代(2016年左右)那个时候Java和Android还是比较火的,虽然不能说如日中天,但是确实还很有市场。根据题主的需求,php咱们首先排除了,这个原因不用多说,世界上最好的语言能不碰尽量不碰,前端的话,主要学的就是js,前后端其实完全是两个方向,如果你对酷炫的页面比较感兴趣,那么前端可能适合你一些,而后端主要就是在后台默...

weixin_39614060的博客 728

java策略服务,Java 策略模式(strategy)

#### 前言: ####问:啥是“策略”答:不同情况不同处理呗问:那不就是 if…else 或者 switch 吗答:本质上差不多吧问:总有区别的吧,“策略”听起来感觉高级些答:那肯定啊问:到底啥区别答:高级的东西用起来舒服,价格也贵问:…,可以不用吗答:可以啊,又没人逼你问:那么豪横吗,来一套试试##### 1.策略模式举例 #####“策略”就如前言所说,这里举一个常见的栗子,我们去超市买东...

weixin_30152861的博客 180

[2015找工作]前端面试总结1

尽管我那么不愿意,但是校招已经火热的开始了。 自从5月底去某家国企互联网公司面试,因为比较水给我offer,而我去实习了一个来月到现在,我只面试了四次,其中一次360的产品运营面试,一次有道的前端实习生面试,一次sogou校招提前批面试,一次sohu校招提前批面试。以下来总结一下,因为,找工作路漫漫长,我什么时候才能找到前端的工作。。。唉。 非技术面试就不提了,7月份中旬的时候投了有道

damogu1030的专栏 1087

Python老司机手把手带你写爬虫,整站下载妹子图,一次爽个够!

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34166847的博客 1792

面试了一个妹子,穿着超短裙来的,我把她pass了,但加了她的联系方式,约她出来吃饭......

看网友回帖虽然挺搞笑的,但也挺讽刺的,“掉到了你”、“面相对象招聘”,听着都不是什么好词儿。这妹子图的可不是个offer,而是来找工作的,结果你搞成像她在找男朋友一样,真的不太体面。招聘是为了找合适的人干活,不是为了满足自己的私欲,面试官一旦失去基本的职业操守,那这面试也就彻底变味了。如果这篇文章对您有所帮助,或者有所启发的话,帮忙扫描上方二维码关注一下,您的支持是我坚持写作最大的动力。最后,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 系列面试题和答案,非常齐全。

emprere的博客 148
上一篇: 微软官宣 Win 11 即将到来,网友:没安卓,升个寂寞啊!
下一篇: Docker桌面不再对企业用户免费,用户直接炸锅了
DevolperFront
博客等级 码龄8年 465粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值