JAVA自学笔记(1)

全面分析总结解决Could not transfer artifact org.apache.maven.plugins等此类问题的方法 全面分析总结解决Could not transfer artifact org.apache.maven.plugins,Could not transfer artifact xxx from/to xxx等此类问题的方法 阅读详情

     1.线程间的通信

       (1)前提,必须要有同步监视器,即synchronized关键字修饰代码块或方法

          wait()导致当前线程等待

          notify()唤醒在此同步监视器上等待的单个线程

          notifyAll()唤醒唤醒在此同步监视器上等待的全部线程


       (2)Lock代替同步方法或同步代码块,Condition代替了同步监视器的功能

          await()导致当前线程等待

          singal()唤醒在此同步监视器上等待的单个线程

          singalAll()唤醒唤醒在此同步监视器上等待的全部线程




           private  final  Lock lock = new ReentrantLock();

            private  final  Condition cond = lock.newCondition();

            .....

           lock.lock();

           try{

               ......

               cond.await();

               ......

               cond.singalAll();

               .......

            finally{

                lock.unlock();

             }

   

         (3)使用阻塞队列(BlockingQueue)控制线程通信

           如果BlockingQueue队列已满或已空,则线程进入阻塞状态

           put(E  e):把E元素放入BlockingQueue中尾部(支持阻塞)

           add(E  e):把E元素放入BlockingQueue中尾部

           offer(E  e):把E元素放入BlockingQueue中尾部


           take():从BlockingQueue头部取出元素(支持阻塞)

           remove(E  e):从BlockingQueue头部取出元素

           poll(E  e):从BlockingQueue头部取出元素

           

            element():在队列头部取出但不删除元素,当队列为空,抛出异常

            peek():在队列头部取出但不删除元素,当队列为空,抛出异常


       2.线程分组

         Thread(ThreadGroup group,Runnable target):以target的run()方法作为线程执行体创建新线程

         Thread(ThreadGroup group,Runnable target,String name):  以target的run()方法作为线程执行体创建新线程,       该线程属于Group线程组,且线程名为name

          Thread(ThreadGroup group,String name):创建新线程,新线程名为name,属于group组

          ThreadGroup(String name):以指定的线程组名字来创建新线程组

          ThreadGroup(ThreadGroup parent,String name): 以指定的名字,指定的父线程组来创建一个新线程组 


             setThreadGroup():  改变线程所属的组

             getThreadGroup():  获取线程所属的组


            一旦创建了线程组,不允许改变线程组的名字。可以通过getName()获取名字


            操作线程组里的线程

            int activeCount():返回此线程组中活动线程的数目

            interrupt():中断此线程组中所有线程

            isDaemon():判断该线程组是否是后台线程组

            setDaemon(boolean daemon):把该线程组设置为后台线程组

            setMaxPriority(int pri):设置线程组的优先级


           线程组内在发生异常是,JVM会首先查找该异常对应的异常处理器,来处理异常

                                                  否则,调用该线程组所属的线程对象的uncaughtException()方法处理异常

           可以通过[static] setDefaultUncaughtException(Thread.UncaughtExceptionHandler  en)设置默认线程组为默认            的异常处理器

         

       3.线程池

         http://zhangjunhd.blog.51cto.com/113473/70068/

         

         Executors类

         ForkJoinPool

         ThreadLocal类

         


BEV和OCC学习-4:数据准备生成pkl文件(NuSences) info[‘cam_instances’][‘CAM_XXX’][i][‘bbox_3d’]:长度为 7 的列表,以 (x, y, z, l, h, w, yaw) 的顺序表示实例的 3D 边界框。info[‘cam_instances’][‘CAM_XXX’][i][‘bbox’]:2D 边界框标注(3D 框投影的矩形框),顺序为 [x1, y1, x2, y2] 的列表。info[‘cam_instances’][‘CAM_XXX’][i][‘attr_label’]:实例的属性标签。 阅读详情

相关推荐

别再凭感觉选电容了!手把手教你计算电机控制器里的母线电容(附Excel计算工具)

本文详细解析了电机控制器中母线电容的选型方法,从理论计算到工程实践,帮助工程师避免常见误区。通过精确计算纹波电压、电容容量等关键参数,并结合薄膜电容与电解电容的性能对比,提供实用的选型建议。附带的Excel计算工具可快速完成参数计算,适用于工业伺服驱动和电动车电机控制器设计。

weixin_28720573的博客 518

Java自学笔记1

最近加入了学校的实验室,十分开心,开心之余,收到了实验室的第一个任务————用Java写一个学生管理系统,完成工作并使自己的生活更加充实,博主在bilibili自学了Java,下面是博主这几天的学习成果,希望能对同样是自学Java的你也能有所帮助! 第一章 你好,世界! 一、开发环境(JDK)与编译器(eclipse)的安装 1、JDK 链接:https://pan.baidu.com/s/13PVW3Ax6PdFWtNYvqss7Zw 提取码:81lg JDK是博主在网上找的网盘资源,各位读者可以去

qq_45952745的博客 622

从时序精度到视觉盛宴:PY32F030驱动WS2812的工程艺术与避坑指南

本文深入探讨了基于PY32F030微控制器驱动WS2812智能LED的完整解决方案。通过精确的时序控制、硬件PWM结合DMA传输技术,实现了稳定可靠的驱动效果,并提供了电源管理、信号完整性和常见问题排查等实用避坑指南,帮助开发者轻松应对严格的纳秒级时序挑战。

wind6的博客 120

java自学笔记 1

java 所用的eclipse的下载就不跟大家多讲了,详细教程可以在各个平台找到。 接下来直接讲一下学习过程中所学到的东西。 注:文章节奏可能跳跃,主要是给有一定的cpp或其他语言基础的进行参考。 一、数据类型和运算符 1 - 注释 单行注释: 使用“//”开头,“//”后面的单行内容均为注释。 多行注释: 以“/”开头以“/”结尾,在“/”和“/”之间的内容为注释,我们也可以使用多行注释作为行内注释。但是在使用时要注意,多行注释不能嵌套使用。 文档注释: 以“/**”开头以“*/”结尾,注释中包

weixin_50311889的博客 148

PX4实战(四):PX4 uorb模块详解

本节主要讲解PX4中的uorb消息,主要包括uorb的基本概念使用、PX4内重要的uorb消息、如何自定义uorb消息以及使用uorb消息的注意点等,其中讲解重要uorb消息是为了对PX4内重要数据结构有初步的了解,有助于后期算法理解。uORB(micro Object Request Broker)是PX4中用于模块间通信的轻量级发布-订阅(Publish/Subscribe)机制。模块之间可以通过uORB传递消息,无需直接调用对方函数;提高系统模块化与解耦性;

PX4-SLAM-PNC 1931

PSO-BP和BP多输入多输出回归预测模型 matlab (多输入多输出)

PSO-BP和BP多输入多输出回归预测模型 matlab (多输入多输出)

算法如诗的博客 258

Java SE 自学笔记1

Java SE 学习笔记1 【1.Java运行机制与JDK的配置】 1.Java程序需要编译,从而避免每次运行都需要重新解释,性能得到提高;在运行时依然保留解释,这样可以保证Java程序能跨平台;       2.Java程序的解释,由JVM(Java Virtual Machine,Java虚拟机完成,如果要运行Java程序,一定要为该平台安装Java虚拟机;

CrystalDestiny的专栏 816

第一章 千牛实时获取消息之ws服务端搭建

以上就是今天要讲的内容,本文仅仅简单介绍了ws服务端的搭建,后面将介绍ws客户端的搭建和配合ws服务器的测试。

不想说话的树专栏 1829

Java-自学笔记-3(1)

Java-自学-3(1) Exercise 3 method_1(HW0里面的最后一个Exercise了) 首先看到题目,没有看Hint,用自己的鸡肋思路做完一遍,所以是method_1,对题目首先进行一下简要的说明。 题目要求设定一个函数windowPosSum(int[] a, int n),然后实现这样的功能: 1. 将a数组中的每一个元素a[i]替换为包括a[i]在内向后n项的和(这块如果说的不清楚可以看一下下面的例子) 2. 如果a[i]为负数,不进行任何操作 3. 当后面所剩的元素个数小于n时,

dhjdjdjdj的博客 320

在Android Jetpack Compose中实现夜间模式

Android基于Compose的深色主题实现

虎哥LoveDroid 1237

(王道考研计算机网络)第三章数据链路层-第一节:数据链路层功能概述

文章目录一:本章概述二:数据链路层基本概念三:数据链路层功能概述(1)为网络层提供服务(2)链路管理(3)组帧(4)流量控制(5)差错控制 本章是计算机网络中入门较难的一章,如果没有接触过相关内容,可能会止步于一些晦涩难懂的术语。本节内容希望大家可以用心看一看,对于大家入门是很有帮助的 一:本章概述 数据链路层位于物理层之上,主要作用就是提高物理层传输比特流的能力,使物理层可能出现差错的连接转变为逻辑上无差错的数据链路,同时向网络层提供服务。本章学习的主要就是数据链路层的功能和应用 数据链路层功能 封

快乐江湖的博客 2469

java自学笔记_JAVA自学笔记(1)

JAVA入门级知识储备(一)1.Scanner的欢乐接收importjava.util.Scanner;public classfirst {public static voidmain(String[] args) {//扫描对象,用来扫描系统的输入Scanner input=new Scanner(System.in);//扫描仪的名称自定义,一般好记为input;/*各种类型如何输入* ch...

weixin_39940901的博客 140

simulink构建一个基于 BP(反向传播)神经网络 的自适应 PID 控制系统

本文介绍了基于BP神经网络的自适应PID控制系统设计方法。系统通过神经网络实时调整PID参数,实现智能控制。主要内容包括:1)系统架构设计,采用误差反馈和在线学习机制;2)详细建模步骤,从被控对象定义到神经网络结构设计;3)S-Function实现核心算法,包含前向传播、PID计算和反向传播;4)仿真结果分析,显示神经网络PID在响应速度、超调控制和鲁棒性方面的优势;5)进阶建议和常见问题解决方案。该方法突破了传统PID的局限性,实现了具有自我学习能力的智能控制。

xiaoheshang_123的博客 52

自学JAVA笔记 day1

基础java自学 学习方式-毕老师的视频及PDF文档 写博客笔记目的:加深记忆,以后方便查询,据传以后找工作可以作为“资历” 什么是软件? 一系列按照特定顺序组织的计算机数据和指令的集合。 人机交互的交互方式 图形化界面:现在用的 命令行:需要有一个控制带 常用dos命令行 dir:列出当前目录下的文件及文件夹 md:创建

飛白的学习笔记 1209

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java自学笔记-1 day

目录 常识: 简单程序 1.HelloWorld(直接背 不要问) 2.基础知识 3.方法 常识 1. 1 Byte(字节) 8 bit 1 KB 1024 Byte 1 MB 1024 KB 1 GB 1024 MB 例常见网速:100Mb ~ 12.5MB 字节(Byte)是最小储存单位 例如 1 ~(00000001)(前面七位浪费,但是适合计算机运行) 2. JDK(Java Development Kit) JR...

非科转码自学笔记 548

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

自学笔记 — Java入门1

计算机的体系结构 计算机 = 硬件 +软件 = 硬件 + [ 系统软件 + 应用软件 ] 系统软件 = 内核(Kernel) +外壳(shell) Java语言概述 Java1.2之后,分为3个版本: JavaSE :即我们常说的 Java基础,包含了 运行Java所需的基础环境 + 核心类库 JavaEE :构建在 JavaSE 之上,用于构建企业级应用 JavaME:随着Android 只能平台的普及,JavaME已经被淘汰 开发环境 下载,安装。这里我们安装Java11(LTS) Ja

qq_41076531的博客 155

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

自学Java系列 笔记1 java的基本语法2

进制、运算符 算术运算符   运算符 运算 范例 结果 + 正号 +3 3 - 负号 b=4; -b -4 + 加 5+5 10 - 减 6-4 2

花前月下的细说__AndJun 537

Java自学笔记(1)

1.1 基础常识 ●常用的DOS命令(窗口键+R,输cmd,打开dos界面) dir:列出当前目录下的文件以及文件夹 md:创建目录 rd:删除目录 cd:进入指定目录 cd..:退回到上一目录 cd\:退回到根目录 del:删除文件 exit:退出dos命令行 1.4 Java语言的环境搭建 ●下载JDK ●安装JDK ●配置环境变量 ●验证是否成功:java -version ▶配置环境变量path ·设置环境变量JAVA_HOME 解压jdk的目录 ·设置C...

qq_45889944的博客 238

1.JAVA自学笔记

一.JAVA的输入输出格式: 1.输入: Scanner x=new Scanner(System.in); Scanner中常用方法 nextInt():用于只读取整型数据,读入空白或空白字符,会跳过,以换行符’\n’结束输入,不包含换行符 next():读取单个单词,以空格作为分隔符,换行符’\n’结束输 nextLine():读取整行,包括换行符 区分: next()和nextLine()的区别:两个函数返回的都是是字符串,如果输入一行数据然后回车,next()会默认使用空格作为正则表达式来分

ZZBvos的博客 182

JAVA自学课程笔记1

2021年1月22日21点50分 JAVA自学课程笔记1: 复习JAVA在C语言中的基础知识 C语言中:long占4字节,short占2字节 JAVA中:long占8字节,short占2字节, byte占1字节,char占2字节(Unicode编码),boolean占1字节 JAVA中数据类型转换: 不能对boolean类型进行数据转换 数据优先级: 低------------------------------->高 byte->char->

Katachi_06的博客 187

寒假自学JAVA笔记-1

JAVA部分专业术语、注释、固定的头部代码解释。 自己浅学一下后做的笔记而已,仅是给大家分享知识。

m0_62879357的博客 192

自学Java系列 笔记1 java的基本语法1

关键字、标识符、变量 关键字的定义和特点: 定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词) 特点:关键字中所有字母都为小写 标识符: Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符 凡是自己可以起名字的地方都叫标识符。 定义合法标识符规则: 由26个英文字母大小写,数字:0-9 ,_或 $ 组成  数字不可以开头。 不可以使用关键

花前月下的细说__AndJun 361

自学Java系列 笔记2 Java集合1

Java 集合 •      Java 集合就像一种容器,可以把多个对象的引用放入容器中。 •      Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组 •      Java 集合可分为 Set、List 和 Map 三种体系 –    Set:无序、不可重复的集合 –    List:有序,可重复的集合 –    Map:具有映射关系

花前月下的细说__AndJun 420

JAVA自学课程笔记3.1

2021年2月20日16点16分 JAVA自学课程笔记3.1 Test1.java: class A{ public void f(){ System.out.println("AAA"); } } class B extends A{ public void f(){ System.out.println("BBB"); } public void g(){ System.out.println("CCC");

Katachi_06的博客 152

java小白自学笔记——Day1

关于java的一些简单例题

weixin_61023150的博客 188

Netty4自学笔记 (1) - Java BIO

五六年过去了,Netty早已发展到了4.x系列,好奇也好,求知也罢,我打算重学Netty,虽然严格来说,我已不是IT从业人员,但我仍希望保留对技术的热爱与追求。

CoderCoding的博客 940
上一篇: JAVA自学笔记
下一篇: JAVA集合
code609
博客等级 码龄11年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值