iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >JAVA编程学习笔记
  • 349
分享到

JAVA编程学习笔记

java学习笔记 2023-09-03 16:09:03 349人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

常用代码、特定函数、复杂概念、特定功能……在学习编程的过程中你会记录下哪些内容?快来分享你的笔记,一起切磋进步吧! 一、常用代码 在java编程中常用需要储备的就是工具类。包括封装的时间工具类。Htt

常用代码、特定函数、复杂概念、特定功能……在学习编程的过程中你会记录下哪些内容?快来分享你的笔记,一起切磋进步吧!

一、常用代码
在java编程中常用需要储备的就是工具类。包括封装的时间工具类。Http工具类,加解密工具类,JSON工具类,翻页工具类,字符串处理工具类等等。

时间工具类

import java.text.DateFORMat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public class DateTimeUtils { public static String getDateStr() {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");return df.format(new Date());}public static String getDayStr() {SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");return df.format(new Date());}public static String getThisMonth() {SimpleDateFormat df = new SimpleDateFormat("yyyyMM");return df.format(new Date());}public static String getYyyyMMdd() {SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");return df.format(new Date());}  public static int compareTime(String dateOne, String dateTwo , String dateFormatType){            DateFormat df = new SimpleDateFormat(dateFormatType);      Calendar calendarStart = Calendar.getInstance();      Calendar calendarEnd = Calendar.getInstance();            try {          calendarStart.setTime(df.parse(dateOne));          calendarEnd.setTime(df.parse(dateTwo));      } catch (ParseException e) {          e.printStackTrace();          return 100;      }        int result = calendarStart.compareTo(calendarEnd);      if(result > 0){          result = 1;      }else if(result < 0){          result = -1;      }else{          result = 0 ;      }      return result ;  } public static String getHHmmSS() {SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");return df.format(new Date());} public static void main(String[] args) throws ParseException {System.out.println(DateTimeUtils.getHHmmSS());}//将时间转换为时间戳public static String dateToStamp(String s) throws ParseException {    String res;    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    Date date = simpleDateFormat.parse(s);    long ts = date.getTime();    res = String.valueOf(ts);    return res;}public static String getYesterday() {DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");  Calendar calendar=Calendar.getInstance();  calendar.set(Calendar.HOUR_OF_DAY,-24); return    dateFormat.format(calendar.getTime());}}

http工具类

import java.io.IOException;import java.net.HttpURLConnection;import java.net.InetAddress;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.net.UnknownHostException;import java.util.Map; import org.springframework.http.HttpEntity;import org.springframework.http.HttpHeaders;import org.springframework.http.HttpMethod;import org.springframework.http.MediaType;import org.springframework.http.ResponseEntity;import org.springframework.util.LinkedMultiValueMap;import org.springframework.util.MultiValueMap;import org.springframework.util.StringUtils;import org.springframework.WEB.client.RestTemplate; import cn.hutool.core.collection.CollectionUtil;import lombok.extern.slf4j.Slf4j; @Slf4jpublic class HttpUtils {public static String doGet(String url) {return doGet(url, null);} public static String doGet(String url, Map<String, String> map) { String resultString = "";RestTemplate client = new RestTemplate();HttpHeaders headers = new HttpHeaders();// 参数设置MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();if (CollectionUtil.isNotEmpty(map)) {for (String key : map.keySet()) {params.add(key, map.get(key));}} try { // 设置表单提交headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);// 执行HTTP请求ResponseEntity<String> response = client.exchange(url, HttpMethod.GET, requestEntity, String.class);resultString = response.getBody();} catch (Exception e) {log.error(e.getMessage(), e);} return resultString; } public static String doPost(String url) {return doPost(url, null);} public static String doPost(String url, Map<String, String> map) { String resultString = "";ResponseEntity<String> response = null;RestTemplate client = new RestTemplate();HttpHeaders headers = new HttpHeaders();// 参数设置MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();if (CollectionUtil.isNotEmpty(map)) {for (String key : map.keySet()) {params.add(key, map.get(key));}} try { // 请勿轻易改变此提交方式,大部分的情况下,提交方式都是表单提交headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<MultiValueMap<String, String>>(params, headers);// 执行HTTP请求response = client.exchange(url, HttpMethod.POST, requestEntity, String.class);resultString = response.getBody();} catch (Exception e) {log.error(e.getMessage(), e);}return resultString; } public static String doPostjson(String url, String json) { String resultString = "";RestTemplate client = new RestTemplate();ResponseEntity<String> response = null;// 提交方式设置HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);HttpEntity<String> requestEntity = new HttpEntity<String>(json, headers);try {// 执行HTTP请求response = client.exchange(url, HttpMethod.POST, requestEntity, String.class);resultString = response.getBody(); } catch (Exception e) {log.error(e.getMessage(), e);} finally {try { } catch (Exception e) {// TODO Auto-generated catch blocklog.error(e.getMessage(), e);}}return resultString; }public static URLConnection FactoryCreatURLConnection(String url) throws Exception {URL realUrl;URLConnection conn = null;try {// 打开和URL之间的连接realUrl = new URL(url);conn = realUrl.openConnection();conn.setRequestProperty("accept", "text/plain;charset=utf-8");conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; windows NT 5.1;SV1)");} catch (MalformedURLException e1) {e1.printStackTrace();} catch (IOException e) {e.printStackTrace();}return conn;} public static boolean isRearchUrl(String url) {return isRearchUrl(url, 3000);} public static boolean isRearchUrl(String url, int timeout) { if (StringUtils.isEmpty(url)) {return false;}HttpURLConnection connection = null;try {connection = (HttpURLConnection) new URL(url).openConnection();// 设置超时时间connection.setConnectTimeout(timeout);connection.setReadTimeout(timeout);if (connection.getResponseCode() >= HttpURLConnection.HTTP_OK&& connection.getResponseCode() <= HttpURLConnection.HTTP_VERSION) {return true;}} catch (Exception e) {log.error(" HttpURLConnection exception happend!");return false;} finally {if (connection != null) {connection.disconnect();}}return false;} public static boolean checkIp(String ipAddr) {try {boolean status = false;if (!StringUtils.isEmpty(ipAddr)) {int timeOut = 3000; // 超时 3秒status = InetAddress.getByName(ipAddr).isReachable(timeOut);return status;}return status;} catch (UnknownHostException e) {e.printStackTrace();return false;} catch (IOException e) {e.printStackTrace();return false;}}  }

加解密工具类

import javax.crypto.Cipher;import javax.crypto.spec.SecreTKEySpec; import org.apache.commons.codec.binary.Base64;import org.apache.commons.codec.binary.Hex;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger; import cn.hutool.crypto.Mode;import cn.hutool.crypto.Padding;import cn.hutool.crypto.symmetric.AES; public class AesUtil {    private static final Logger logger = LogManager.getLogger("AESUtil");     private static final String CHARSET = "UTF-8";     public static String base64Encode(byte[] bytes) {        return Base64.encodeBase64String(bytes);    }     public static byte[] base64Decode(String base64Code) throws Exception {        return Base64.decodeBase64(base64Code.getBytes(CHARSET));    }         public static byte[] aesEncryptToBytes(String content, String encryptKey) throws Exception {        initEncryptCipher(encryptKey);        return encryptCipher.doFinal(content.getBytes(CHARSET));    }        public static byte[] aesEncryptToBytes(byte[] content, String encryptKey) throws Exception {        initEncryptCipher(encryptKey);        return encryptCipher.doFinal(content);    }         public static String aesEncrypt(String content, String encryptKey) throws Exception {        return base64Encode(aesEncryptToBytes(content, encryptKey));    }         public static byte[] aesDecryptByBytes(String content, String decryptKey) throws Exception {        initDecryptCipher(decryptKey);        return decryptCipher.doFinal(content.getBytes(CHARSET));    }         public static byte[] aesDecryptByBytes(byte[] content, String decryptKey) throws Exception {        initDecryptCipher(decryptKey);        return decryptCipher.doFinal(content);    }     public static String aesDecrypt(String content, String decryptKey) throws Exception {        return new String(aesDecryptByBytes(base64Decode(content), decryptKey));    }     private static Cipher encryptCipher = null;     private static Cipher decryptCipher = null;     public static void initEncryptCipher(String aesKey) throws Exception {        if (encryptCipher == null) {            //5.根据字节数组生成AES密钥            SecretKeySpec skeySpec = new SecretKeySpec(Hex.decodeHex(aesKey.toCharArray()), "AES");            //6.根据指定算法AES自成密码器            encryptCipher = Cipher.getInstance("AES");            //7.初始化密码器            encryptCipher.init(Cipher.ENCRYPT_MODE, skeySpec);        }    }     public static void initDecryptCipher(String aesKey) throws Exception {        if (decryptCipher == null) {            //5.根据字节数组生成AES密钥            SecretKeySpec skeySpec = new SecretKeySpec(Hex.decodeHex(aesKey.toCharArray()), "AES");            //6.根据指定算法AES自成密码器            decryptCipher = Cipher.getInstance("AES");            //7.初始化密码器            decryptCipher.init(Cipher.DECRYPT_MODE, skeySpec);        }    }       public static String hutoolEncrpt(String content,String key){        AES aes=new AES(Mode.ECB, Padding.ISO10126Padding, key.getBytes());        return aes.encryptBase64(content);    }       public static String hutoolDecrpt(String content,String key){        AES aes=new AES(Mode.ECB, Padding.ISO10126Padding, key.getBytes());        return aes.decryptStr(content);    }       public static void main(String[] args) throws Exception {     }    }

JSON工具类

import java.lang.reflect.Type; import cn.hutool.json.JSONUtil; public class JsonUtil { public static <T> T fromJson(String jsonStr, Class<T> cls) {try {if (null == jsonStr || jsonStr.trim().length() == 0) {return null;}return JSONUtil.toBean(jsonStr, cls);} catch (Exception e) {return null;}} public static Object fromJson(String jsonStr, Type typeOfT) {if (null == jsonStr || jsonStr.trim().length() == 0) {return null;}return JSONUtil.toBean(jsonStr, typeOfT, true);} public static <T> String toJson(T obj) {if (obj == null) {return null;}return JSONUtil.toJsonStr(obj);}}

翻页工具类

import com.baomidou.mybatisplus.core.metadata.IPage; import java.io.Serializable;import java.util.List; public class PageUtils implements Serializable {private static final long serialVersionUID = 1L;private int totalCount;private int pageSize;private int totalPage;private int currPage;private List<?> list;public PageUtils(List<?> list, int totalCount, int pageSize, int currPage) {this.list = list;this.totalCount = totalCount;this.pageSize = pageSize;this.currPage = currPage;this.totalPage = (int)Math.ceil((double)totalCount/pageSize);} public PageUtils(IPage<?> page) {this.list = page.getRecords();this.totalCount = (int)page.getTotal();this.pageSize = (int)page.getSize();this.currPage = (int)page.getCurrent();this.totalPage = (int)page.getPages();} public int getTotalCount() {return totalCount;} public void setTotalCount(int totalCount) {this.totalCount = totalCount;} public int getPageSize() {return pageSize;} public void setPageSize(int pageSize) {this.pageSize = pageSize;} public int getTotalPage() {return totalPage;} public void setTotalPage(int totalPage) {this.totalPage = totalPage;} public int getCurrPage() {return currPage;} public void setCurrPage(int currPage) {this.currPage = currPage;} public List<?> getList() {return list;} public void setList(List<?> list) {this.list = list;}}

二、特定函数
在java开发中使用最多的就是增删查改翻页查询。所以这几个是比不可少的特定函数。特别是在SpringBoot框架的开发中。像这种具有共性的代码模块,我们可以使用逆向工程生成。

import java.util.List;import java.util.Map;import cn.hutool.core.util.ObjectUtil;import io.swagger.annotations.apiOperation;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import cn.ctg.common.util.PageUtils;import cn.ctg.common.response.ResponseData;import cn.ctg.common.util.CtgUtils;import lombok.extern.slf4j.Slf4j;import cn.ctg.video.entity.MUser;import cn.ctg.video.service.MUserService;import cn.ctg.video.constant.MUserConstant; @RestController@RequestMapping("mUser")@Slf4jpublic class MUserController {     @Autowired    private MUserService mUserService;    @ApiOperation(value = "分页查询用户列表", notes = "分页查询用户列表")    @PostMapping("pageList")    public ResponseData<PageUtils> queryPage(@RequestBody Map<String, Object> param) {        PageUtils pageUtils = mUserService.queryPage(param);        return ResponseData.success(pageUtils);    }@ApiOperation(value = "查询所有用户列表", notes = "查询所有用户列表")    @PostMapping("searchAll")    public ResponseData<List<MUser>> searchAll() {List<MUser> mUserList = mUserService.list();    if(!CtgUtils.isCollectionNull(mUserList)) {        return  ResponseData.success(mUserList);    }else {    log.info(MUserConstant.NOT_EXIST);    return  ResponseData.success(mUserList);    }    }@ApiOperation(value = "保存用户", notes = "保存用户")    @PostMapping("save")    public ResponseData<String> save(@RequestBody MUser mUser) {    boolean res = mUserService.save(mUser);    if(res) {        return ResponseData.success(MUserConstant.SAVE_SUCCESS);    }else {    log.error(MUserConstant.SAVE_FAILED);    return ResponseData.error(MUserConstant.SAVE_FAILED);    }    }@ApiOperation(value = "删除用户", notes = "删除用户")    @PostMapping("delete")    public ResponseData<String> delete(@RequestBody MUser mUser) {    boolean res = mUserService.removeById(mUser);    if(res) {        return ResponseData.success(MUserConstant.DELETE_SUCCESS);    }else {    log.error(MUserConstant.DELETE_FAILED);    return ResponseData.error(MUserConstant.DELETE_FAILED);    }    }@ApiOperation(value = "根据主键ID更新用户", notes = "根据主键ID更新用户")    @PostMapping("update")    public ResponseData<Boolean> update(@RequestBody MUser mUser) {boolean res = mUserService.updateById(mUser);    if(res) {        return  ResponseData.success(true);    }else {    log.error(MUserConstant.UPDATE_FAILED);    return  ResponseData.error(MUserConstant.UPDATE_FAILED);    }    }@ApiOperation(value = "批量删除用户", notes = "批量删除用户")    @PostMapping("deleteList")    public ResponseData<String> deleteList(@RequestBody List<MUser> mUserList) {    boolean res = mUserService.removeByIds(mUserList);    if(res) {        return ResponseData.success(MUserConstant.DELETE_SUCCESS);    }else {    log.error(MUserConstant.DELETE_FAILED);    return ResponseData.error(MUserConstant.DELETE_FAILED);    }    } @ApiOperation(value = "根据主键ID查找用户", notes = "根据主键ID查找用户")@PostMapping("searchById")public ResponseData<MUser> searchById (@RequestBody MUser mUser) {MUser mUserRes = mUserService.getById(mUser.getId());if (ObjectUtil.isNotEmpty(mUserRes)) {return ResponseData.success(mUserRes);}else {log.error(MUserConstant.QUERY_FAILED);return ResponseData.error(MUserConstant.QUERY_FAILED);}} }

三、复杂概念
一些复杂概念主要涉及
1、iocaop
什么是 IoCIoC (Inversion of control )控制反转/反转控制。

它是一种思想不是一个技术实现。描述的是:Java 开发领域对象的创建以及管理的问题。例如:现有类 A 依赖于类 B传统的开发方式 :往往是在类 A 中手动通过 new 关键字来 new 一个 B 的对象出来使用 IoC 思想的开发方式 :不通过 new 关键字来创建对象,而是通过 IoC 容器(Spring 框架) 来帮助我们实例化对象。我们需要哪个对象,直接从 IoC 容器里面过去即可。从以上两种开发方式的对比来看:我们 “丧失了一个权力” (创建、管理对象的权力),从而也得到了一个好处(不用再考虑对象的创建、管理等一系列的事情)

什么是 AOP

AOP:Aspect oriented programming 面向切面编程,AOP 是 OOP(面向对象编程)的一种延续。

过滤器,拦截器,事务日志服务,定时器,任务调度等等
什么是过滤器与拦截器?
1.1过滤器(Filter)
java过滤器指的是在java中起到过滤的作用的一个方法。可以在一个请求到达servlet之前,将其截取进行逻辑判断,然后决定是否放行到请求的servlet;也可以在一个response到达客户端之前,截取结果进行逻辑判断,然后决定是否允许返回给客户端。

filter(过滤器) 有如下几个种类(功能):

用户授权的filter:filter负责判断用户是否有权限请求该页面。
给予过滤判断日志的filter:截取某个用户在本网站上的所有请求。
记录轨迹负责解码的filter:规定处理本次请求的解码方式。
需要注意的是,一个filter过滤器可以加在多个servlet控制器上,当然多个filter过滤器也是可以加在一个servlet控制器上的。

由此也是可以看出来,我们使用filter往往是对一些公共的操作进行处理。例如:判断用户权限,解码本次请求等。还比如,我们的web应用中某些页面是需要用户登录后才能访问的,以往我们都是在每个servlet页面加上判断控制,导致代码冗余。有了filter,我们可以定义一个实现了filter的过滤器,让需要判断是否登录的页面都加上这么一个过滤器,可以大大降低代码的冗余程度

2拦截器(Interceptor)
java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。

作用域:动态拦截Action调用的对象(也就是我们的controller层)

在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用,AOP可参考 Spring AOP速查笔记。 由于拦截器是基于web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。但是缺点是只能对controller请求进行拦截,对其他的一些比如直接访问静态资源的请求则没办法进行拦截处理。

过滤器与拦截器的区别
1.1 实现原理不同
过滤器的实现基于回调函数
拦截器基于Java的反射机制【动态代理】实现。
1.2 使用范围不同
过滤器是Servlet的规范,需要实现javax.servlet.Filter接口,Filter使用需要依赖于Tomcat等容器。
拦截器是Spring组件,定义在org.springframework.web.servlet包下,由Spring容器管理【又有更加丰富的生缪那个周期处理方法,细粒度,且能够使用Spring中的资源】,不依赖Tomcat等容器。
1.3 触发时机不同
过滤器:对请求在进入后Servlet之前或之后进行处理。
拦截器:对请求在handler【Controller】前后进行处理。
1.4 执行顺序不同
执行顺序 :Filter 处理中 -> Interceptor 前置 -> 我是controller -> Interceptor 处理中 -> Interceptor 处理后

当有两个过滤器或拦截器时:

过滤器:
每一次都将chain对象传入,达到最后接口回调的效果,类似函数的堆栈调用。

拦截器:
preHandle1 -> preHande2 -> 【Controller】 -> postHandle2 -> postHandle1 -> afterCompletion2 -> afterComplention1

preHandle按照注册顺序,后两个与注册顺序相反。

一个拦截器的preHandle为false,则之后的所有拦截器都不会执行。
一个拦截器的preHandle为true,则这个拦截器的triggerAfterCompletion一定会执行。
只有所有的拦截器preHandler都为true,也就是正常执行,postHandle才会执行。
1.5 控制执行顺序方式不同
实际开发过程中,会出现多个过滤器或拦截器同时存在的情况,不过,有时我们希望某个过滤器或拦截器能优先执行,就涉及到它们的执行顺序。

过滤器用@Order注解控制执行顺序,通过@Order控制过滤器的级别,值越小级别越高越先执行。

与第三方的一些接口调用,比如支付,邮件,短信,验证码,加解密等等是必须掌握的功能。

四、特定功能

java开发系统中用户的登录注册是最基本的特定功能。

登录用户表的设计

 -- Drop table -- DROP TABLE public.t_user; CREATE TABLE public.t_user (id varchar(32) NOT NULL,user_name varchar(255) NOT NULL,login_name varchar(255) NOT NULL,passWord varchar(255) NOT NULL,create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,last_login_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,deleted int4 NOT NULL DEFAULT 0,pwd_val_time timestamp NOT NULL,belong_code varchar(8) NULL,belong_name varchar(255) NULL,data_type varchar(255) NULL,phone varchar(255) NULL,CONSTRAINT t_user_pkey PRIMARY KEY (id));

来源地址:https://blog.csdn.net/noiqqq123456/article/details/132476113

--结束END--

本文标题: JAVA编程学习笔记

本文链接: https://www.lsjlt.com/news/392448.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JAVA编程学习笔记
    常用代码、特定函数、复杂概念、特定功能……在学习编程的过程中你会记录下哪些内容?快来分享你的笔记,一起切磋进步吧! 一、常用代码 在java编程中常用需要储备的就是工具类。包括封装的时间工具类。htt...
    99+
    2023-09-03
    java 学习 笔记
  • Java多线程学习笔记
    目录多任务、多线程程序、进程、线程学着看jdk文档线程的创建1.继承Thread类2.实现Runable接口理解并发的场景龟兔赛跑场景实现callable接口理解函数式接口理解线程的...
    99+
    2022-11-12
  • linux shell编程学习笔记(3)
    1、什么是变量保存变化的数据——变量名:名称固定,由系统预设或用户自定义——变量值:根据用户设置、系统环境变化而变化2、如何定义变量——变量名=变量的值2.1变量名的规则(1)数字、字母、下划线(2)字母区分大小写(3)当变量名相同时,后赋...
    99+
    2023-01-31
    学习笔记 linux shell
  • 学习异步编程:Java和JavaScript笔记对比
    异步编程是现代编程语言中的重要概念,它可以让程序在执行长时间的操作时不会被阻塞。Java和JavaScript都是广泛使用的编程语言,它们都支持异步编程。本文将比较Java和JavaScript中异步编程的不同方法,并提供一些示例代码来帮...
    99+
    2023-09-10
    javascript 学习笔记 异步编程
  • Java编程思想(2nd)学习笔记(8)-2 (转)
    Java编程思想(2nd)学习笔记(8)-2 (转)[@more@]二.  Inner classes(内隐类)1.  内隐类的基本用法1)  如果要在外围class的non-static函数之外产生一个inn...
    99+
    2023-06-03
  • 如何在 Windows 上学习 Java 编程?分享我的学习笔记!
    在当今数字化时代,计算机编程已经成为一项越来越重要的技能。而 Java 编程语言则是其中最受欢迎和广泛使用的一种语言。在 Windows 系统上学习 Java 编程,无疑是一条高效而且实用的学习路径。在本篇文章中,我将分享我的学习笔记,希望...
    99+
    2023-10-09
    windows 学习笔记 日志
  • NodeJS学习笔记之网络编程
    Node提供丰富的网络编程模块 Node模块 协议 net TCP dgram ...
    99+
    2022-06-04
    学习笔记 网络编程 NodeJS
  • JUC 并发编程学习笔记(总)
    文章目录 1. 什么是JUC2. 进程和线程2.1 进程2.2 线程2.3 并发2.4 并行2.5 线程的状态2.6 wait 和 sleep 的区别 3. Lock锁(重点)3.1 传统Synchronized3.2 Lock...
    99+
    2023-08-18
    java JUC
  • JAVA学习笔记- - - day 2
     💕前言:作者是一名正在学习JAVA的初学者,每天分享自己的学习笔记,希望能和大家一起进步成长💕 目录  💕前言:作者是一名正在学习JAVA的初学者,每天分享自己的学习笔记,希望能和...
    99+
    2023-09-04
    学习
  • 《Java编程思想》学习笔记03、控制程序流
    大部分操作符只能操作基本类型(primitives),只有=、==和!=可以操作对象,另外String支持+和+=在=两边,右值(rvalue)可以是常数、变量或表达式,左值(lvalue)必须是一个变量,即必须有物理空间来存储rvalue...
    99+
    2023-06-03
  • Java学习笔记之面向对象编程精解
    目录包继承super 关键字finalprotected关键字组合多态抽象类接口面向对象编程(包、继承、组合、多态 、抽象类、接口) 包 包其实就是类的集合,其本质上其实就是一个文件...
    99+
    2022-11-12
  • Java学习笔记:npm异步编程实践指南?
    Java学习笔记:npm异步编程实践指南 在现代编程语言中,异步编程已经成为了一种必备的技能。在Java中,我们可以使用npm包管理器来进行异步编程。本篇文章将为您介绍npm异步编程的实践指南,并通过演示代码来帮助您更好地理解。 什么是np...
    99+
    2023-07-21
    学习笔记 npm 异步编程
  • 字符编码学习笔记
    一、常见编码 ASCII:ASCII码即美国标准信息交换码(American Standard Code for Information Interchange)。由于计算机内部所有信息最终都是一个二进制值,而每一个二进制位(bit)有0...
    99+
    2023-01-31
    学习笔记 字符
  • python学习笔记(十 三)、网络编程
    最近心情有点儿浮躁,难以静下心来     Python提供了强大的网络编程支持,很多库实现了常见的网络协议以及基于这些协议的抽象层,让你能够专注于程序的逻辑,而无需关心通过线路来传输比特的问题。 1 几个网络模块   1.1 模块sock...
    99+
    2023-01-31
    学习笔记 网络编程 python
  • 并发编程学习笔记:PHP vs Django?
    随着互联网的不断发展,现代Web应用程序已经不再是简单的静态网站,而是具有高度交互性和实时响应性的动态应用程序。这种动态应用程序需要能够同时处理多个请求的并发编程技术。在本文中,我们将探讨两种常见的Web应用程序框架:PHP和Django...
    99+
    2023-09-15
    django 并发 学习笔记
  • Python学习笔记:PEP8常用编程规
    PEP8编码规范是一种非常优秀的编码规范,也得到了Python程序员的普遍认可,如果实践中或者项目中没有统一的编码规范,建议尽量遵循PEP8编码规范,当然如果项目中已经有了自身的编码规范,应当优先遵循自身的编码规范,哪怕原先的代码风格在你...
    99+
    2023-01-30
    学习笔记 常用 Python
  • Go编程算法:学习笔记分享
    Go语言是一门现代化的编程语言,它的出现给开发者带来了更多的选择和机会。在Go语言中,算法是一个非常重要的部分。本篇文章将会分享一些关于Go编程算法的学习笔记,帮助读者更好地掌握这门语言。 一、排序算法 排序算法是编程中常见的算法之一,它...
    99+
    2023-06-20
    编程算法 学习笔记 自然语言处理
  • 分布式Java编程入门教程:学习笔记必读!
    随着互联网的发展,分布式系统已经成为了大多数企业级应用的标配。在分布式系统中,Java作为一种优秀的编程语言,被广泛应用于实现系统的各种功能。分布式Java编程,就是利用Java语言来开发分布式系统,是Java程序员必须掌握的技能之一。 ...
    99+
    2023-08-31
    教程 学习笔记 分布式
  • 异步编程难点:Java和JavaScript学习笔记揭秘
    异步编程是现代编程中不可或缺的一部分,尤其是在前端开发中,异步编程更是成为了必备技能。但是,很多初学者在学习异步编程时会遇到很多难点。本篇文章将为大家揭秘Java和JavaScript异步编程的学习笔记,希望能够帮助初学者更好地掌握异步编程...
    99+
    2023-09-10
    javascript 学习笔记 异步编程
  • 从零开始学习Java和Unix Shell编程的笔记
    Java和Unix Shell编程是当今计算机领域中非常重要的两个编程语言。Java是一种跨平台的编程语言,可以用于开发各种类型的应用程序,从桌面应用程序到移动应用程序和Web应用程序。Unix Shell编程则是一种用于编写脚本的语言,...
    99+
    2023-09-12
    shell unix 学习笔记
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作