zoukankan      html  css  js  c++  java
  • Java 放弃之路

    第一章 Java领航员

    1.1 编程语言介绍

    编程语言介绍

    编程是什么?

    编写程序. 用键盘, 鼠标勾勒出你想要的应用程序.
    

    编程语言呢? 我们用什么样的语法方式来编写程序.

    常见的编程语言: C语言, C++, C#, Java, Python, html, css, js, go语言. sql语言.
    C语言: 执行效率比较高. 一般用来做底层驱动或者操作系统.
    C++: 游戏的内核. 应用程序.
    C#: 微软, 支持的平台是windows. 基于.Netframework的.
    Java: 世界第一. toibe排行榜.
    Python: 本来是一个脚本语言. 灵活性是所有编程语言都比不了的.
    html: 网页, 网站.
    css: 让网页更好看.
    js: 让网页能动起来.
    go语言: 谷歌开发的.
    sql语言: 数据库. 数据是软件的根本.
    根据运行和开发的过程产生两个分支:
    1. 编译型, 一次编译. 到处运行.
       执行效率比较高, 跨平台行比较差.
    2. 解释型, 一行一行的解释, 执行.
       执行效率较低. 跨平台性比较好.
    3. 混合型, java
    

    1.2 Java简介

    Java简介

    Java是一门程序开发语言. 1991年由sun公司的James Gosling和他的团队一起开发了一个叫Oak的语言. 在1995年更名为Java. 一直沿用至今.

    Java是目前全世界使用人数最多的编程语言. Toibe 排行榜第一. https://www.tiobe.com/tiobe-index/

    丰富的开源社区和非常多的开源框架.

    国内各大一线公司都在使用Java.

    特点:

    简单: 针对C++简化了很多

    跨平台:

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    Java相关概念

    1. JVM(Java Virtual Machine): java虚拟机, 用来模拟统一的硬件平台环境, 供java程序运行的 一个软件
        
    2. JRE(Java Runtime Environment): java运行时环境. 里面包含了JVM和一些java运行时的类库
    	是java 程序的运行时环境,包含Jvm和运行时所需的核心类库
        
    3. JDK(Java Development Kit): java开发包. 包含JRE和java开发工具包.
        是java程序开发工具包:包含jre和开发人员使用的工具
        其中的开发工具:编辑工具(Javac.exe)和运行工具(java.exe)
    

    1.3 安装JDK

    安装JDK是java开发的第一件事儿.

    安装过程很简单. 先去官网下载. https://www.oracle.com/index.html
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    下载完毕之后. 就可以安装了.

    安装:

    傻瓜式安装,下一步既可

    建议:安装路径中不要包含中文和空格,所有的开发最好安装目录统一。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    安装完成.

    配置环境变量

    目录名称和解释
    bin	     该路径下存放了JDK的各种工具命令。javac和java就在这个目录
    conf 	 该路径下存放了JDK的相关配置文件。
    include  该路径下存放了一些平台特定的头文件。
    jmods    该路径下存放了JDK的各种模块。
    legal    该路径下存放了JDK的各模块的授权文档。
    lib      该路径下存放了JDK工具的一些补充JAR包。
    其余文件为说明性文档。
    

    命令窗口检查jdk是否安装成功 以及安装的jdk版本号查询

    Microsoft Windows [版本 10.0.19042.985]
    (c) Microsoft Corporation。保留所有权利。
    
    C:Windowssystem32>java
    用法: java [-options] class [args...]
               (执行类)
       或  java [-options] -jar jarfile [args...]
               (执行 jar 文件)
    其中选项包括:
        -d32          使用 32 位数据模型 (如果可用)
        -d64          使用 64 位数据模型 (如果可用)
        -server       选择 "server" VM
                      默认 VM 是 server.
    
        -cp <目录和 zip/jar 文件的类搜索路径>
        -classpath <目录和 zip/jar 文件的类搜索路径>
                      用 ; 分隔的目录, JAR 档案
                      和 ZIP 档案列表, 用于搜索类文件。
        -D<名称>=<值>
                      设置系统属性
        -verbose:[class|gc|jni]
                      启用详细输出
        -version      输出产品版本并退出
        -version:<值>
                      需要指定的版本才能运行
        -showversion  输出产品版本并继续
        -jre-restrict-search | -no-jre-restrict-search
                      在版本搜索中包括/排除用户专用 JRE
        -? -help      输出此帮助消息
        -X            输出非标准选项的帮助
        -ea[:<packagename>...|:<classname>]
        -enableassertions[:<packagename>...|:<classname>]
                      按指定的粒度启用断言
        -da[:<packagename>...|:<classname>]
        -disableassertions[:<packagename>...|:<classname>]
                      禁用具有指定粒度的断言
        -esa | -enablesystemassertions
                      启用系统断言
        -dsa | -disablesystemassertions
                      禁用系统断言
        -agentlib:<libname>[=<选项>]
                      加载本机代理库 <libname>, 例如 -agentlib:hprof
                      另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help
        -agentpath:<pathname>[=<选项>]
                      按完整路径名加载本机代理库
        -javaagent:<jarpath>[=<选项>]
                      加载 Java 编程语言代理, 请参阅 java.lang.instrument
        -splash:<imagepath>
                      使用指定的图像显示启动屏幕
    有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。
    
    C:Windowssystem32>java -version
    java version "1.8.0_40"
    Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
    Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
    
    C:Windowssystem32>
    

    常用的DOS命令

    操作说明
        盘符名称      盘符切换。D:回车,表示切换到D盘
        dir         查看当前路径下的内容
        cd目录       进入单级目录。 cd harry
        cd ..        回退到上一级目录
        cd目录目录    进入多级目录
        cls           清屏
        exit         退出命令提示窗口
    

    path 环境变量的配置

    1.为什么要配置path环境变量

    开发java程序 需要使用JDK提供的开发工具, 而这些工具在JDK的安装目录的bin目录下

    为了在开发java的时候能够方便使用javac和java这些命令 我们需要配置path 环境变量。

    如何配置path环境变量

    具体步骤:

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    第4步的%JAVA_HOME%in 也可以复制jdk的bin目录
    例如: D:SoftwareJavain
    

    验证是否配置成功

    在命令提示符输入 javac

    备注:如果命令提示符在配置之前打开的,需要关闭命令提示符重新打开测试

    Microsoft Windows [版本 10.0.19042.985]
    (c) Microsoft Corporation。保留所有权利。
    
    C:UsersHarry>javac
    用法: javac <options> <source files>
    其中, 可能的选项包括:
      -g                         生成所有调试信息
      -g:none                    不生成任何调试信息
      -g:{lines,vars,source}     只生成某些调试信息
      -nowarn                    不生成任何警告
      -verbose                   输出有关编译器正在执行的操作的消息
      -deprecation               输出使用已过时的 API 的源位置
      -classpath <路径>            指定查找用户类文件和注释处理程序的位置
      -cp <路径>                   指定查找用户类文件和注释处理程序的位置
      -sourcepath <路径>           指定查找输入源文件的位置
      -bootclasspath <路径>        覆盖引导类文件的位置
      -extdirs <目录>              覆盖所安装扩展的位置
      -endorseddirs <目录>         覆盖签名的标准路径的位置
      -proc:{none,only}          控制是否执行注释处理和/或编译。
      -processor <class1>[,<class2>,<class3>...] 要运行的注释处理程序的名称; 绕过默认的搜索进程
      -processorpath <路径>        指定查找注释处理程序的位置
      -parameters                生成元数据以用于方法参数的反射
      -d <目录>                    指定放置生成的类文件的位置
      -s <目录>                    指定放置生成的源文件的位置
      -h <目录>                    指定放置生成的本机标头文件的位置
      -implicit:{none,class}     指定是否为隐式引用文件生成类文件
      -encoding <编码>             指定源文件使用的字符编码
      -source <发行版>              提供与指定发行版的源兼容性
      -target <发行版>              生成特定 VM 版本的类文件
      -profile <配置文件>            请确保使用的 API 在指定的配置文件中可用
      -version                   版本信息
      -help                      输出标准选项的提要
      -A关键字[=值]                  传递给注释处理程序的选项
      -X                         输出非标准选项的提要
      -J<标记>                     直接将 <标记> 传递给运行时系统
      -Werror                    出现警告时终止编译
      @<文件名>                     从文件读取选项和文件名
    

    1.4 第一个Java程序

    安装完了. 废了好的的劲. 终于可以编程了.

    首先, 我们在D盘下创建一个文件夹. 叫JavaProjects. 然后在JavaProjects文件夹中.创建一个文本文档. 起名为hello.java

    如果创建出来的文件看不见后缀名. 需要我们对windows进行简单配置.

    首先按一下alt, 然后选择工具. 文件夹选项 查看--勾选文件扩展名。点击确定就可以了

    写代码

    public class hello{
         public static void main(String[] args){
             System.out.println("你好 终于写了一个程序了.");
         }
     }
    

    具体操作:

    Microsoft Windows [版本 10.0.19042.985]
    (c) Microsoft Corporation。保留所有权利。
    
    C:UsersHarry>javac hello.java
    javac: 找不到文件: hello.java
    用法: javac <options> <source files>
    -help 用于列出可能的选项
    
    C:UsersHarry>d:
    
    D:>cd  JavaProjects
    
    D:JavaProjects>javac hello.java
    hellow.java:3: 错误: 编码GBK的不可映射字符
             System.out.println("浣犲ソ 缁堜簬鍐欎簡涓?涓�▼搴忎簡.");
                                            ^
    1 个错误
    
    D:JavaProjects>
    
    hellow.java:3: 错误: 编码GBK的不可映射字符
             System.out.println("浣犲ソ 缁堜簬鍐欎簡涓?涓�▼搴忎簡.");
                                            ^
    1 个错误
    

    解决办法

    解决方法有以下两种:
    
    1、  运行时使用 javac -encoding UTF-8 文件名.java
    
    2、  记事本打开java源文件,另存为选择ANSI编码
    

    备注:类名和文件名要统一

    例如给类名hello改为first

    具体代码修改

    public class first{
         public static void main(String[] args){
             System.out.println("你好 终于写了一个程序了.");
         }
     }
    

    在运行,哈哈哈,报错了,具体信息如下

    D:JavaProjects>javac -encoding UTF-8 hello.java
    hellow.java:1: 错误: 类first是公共的, 应在名为 first.java 的文件中声明
    public class first{
           ^
    1 个错误
    
    D:JavaProjects>javac -encoding UTF-8 hellow.java
    
    D:JavaProjects>java hello
    你好 终于写了一个程序了.
        
    D:JavaProjects>
    

    1.5 ide的选择和安装使用

    IDE(集成开发环境). 是我们学习和工作中编码的工具.

    java常见的IDE:

    1. Visual Studio code
    2. Eclipse
    3. Net Beans
    4. IntelliJ IDEA

    VS: 微软的IDE. 包罗万象. 啥都能写. 没有VS干不了的

    Eclipse: 老牌IDE. 曾经风靡全球. 至今依然活跃在各个程序员的电脑里. 简单方便. 但平台比较老旧. 对新框架支持的不够完美

    Net Beans: sun公司提供的开发工具. 但是在国内使用的人不多.

    IntelliJ IDEA: 俗称idea. 代码提示非常方便. 多高级框架支持的非常完美. 目前国内年轻一代程序员更喜欢的IDE工具,是用于java语言开发的集成环境,

    它是业界公认的目前用于Java开发的最好的工具

    集成环境:把代码编写,编译,执行调试多种功能合到一起的开发工具

    我们选择使用IDEA来进行学习. 原因很简单. 我还年轻. 我自豪.

    下载idea. 去官网下就行了. https://www.jetbrains.com/idea/

    下载完毕之后, 直接双击安装即可, 和普通软件安装是一样的.

    具体详细操作如下:

    在这里插入图片描述

    选择download
    在这里插入图片描述

    根据自己的需求选择下载的版本型号

    下载后直接下一步安装

    在这里插入图片描述

    直接next

    在这里插入图片描述

    根据自己的电脑情况选择安装

    安装好了以后可以写代码了,

    **写个hello word **

    具体操作

    1.开始创建项目

    在这里插入图片描述

    2.选择empty project

    在这里插入图片描述

    3.直接下一步

    在这里插入图片描述

    4.修改项目名称和路径位置

    在这里插入图片描述

    5.修改好的项目名称和路径位置

    在这里插入图片描述

    6.直接OK保存

    在这里插入图片描述

    7.选择modules

    在这里插入图片描述

    8.新建module

    在这里插入图片描述

    9.选择jdk的安装目录

    在这里插入图片描述

    在这里插入图片描述

    10.新建模块名称

    在这里插入图片描述

    11.直接保存

    在这里插入图片描述

    12.创建package

    在这里插入图片描述

    输入包名称

    在这里插入图片描述

    13.创建Java class

    在这里插入图片描述

    输入类名称

    在这里插入图片描述

    14.代码书写

    快捷键的使用 psvm 和 sout

    psvm

    在这里插入图片描述

    sout

    在这里插入图片描述

    15.开始执行

    在这里插入图片描述

    展示:

    在这里插入图片描述

    1.6 Java中的注释

    注释: 对代码进行标注解释. 让人更容易读懂代码

    java注释分为三种.

    一. 单行注释

    // 单行注释. 这一行内容会被jvm运行的时候过滤掉. 
    

    二. 多行注释

     
    /* 多行注释 一次注释多行代码 */
    

    三. 文档注释

     
    /**  * 文档注释  * 后期可以使用javadoc命令生成api文档  */
    

    常用的是单行注释 // 和 文档注释 /*** /

    一般在如下情况可以添加代码注释:

    • l 核心的解决方案
    • l 比较难懂的业务逻辑
    • l 记录代码的存在经历

    1.7 变量

    变量

    为什么要有变量?

    假设我现在想计算我的生活开支.

     吃饭: 100+200+120+40 = 460 交通: 10*22 = 220 衣服: 200+400+150 = 750 开支: 460 + 750 + 220 = 1430
    

    这是我们生活中非常常用的一种计算方式.

    我们很自然的把每一项开支计算出来. 然后再后面计算总和的时候把前面计算的结果拿过来使用. 那这就是生活中的变量.

    变量: 可以发生改变的量. 程序运行过程中产生的中间值. 供后面的程序使用

    java中的变量:

    数据类型 变量名 = 值;

    那这里涉及要一个很麻烦的问题. 数据类型. **什么是数据类型? 计算机是用来存储和处理数据的. **

    那我们人对数据是很容易划分的. 比如什么样的是数字, 什么样的是文字. 等等. 但是计算机比较傻. 计算机只认识0,1. 我们写的文字. 数字在计算机里都是01. 那怎么对数据进行划分呢? 什么样的数据可以进行计算呢? 什么样的数据可以进行存储? 这就需要我们对不同的数据进行划分.

    **常用的基本数据类型. **

    1. int

      **int主要表示的就是我们生活中使用的整数. **比如, 1, 10086等等.

      int类型可以执行的操作: 加减乘除等. + - /

       int a = 20;
       int b = 10;
       
       int c = a + b;
       System.out.println(“a + b = “ + c);
       
       int d = a - b;
       System.out.println(“a - b = “ + d);
       
       int e = a  b;
       System.out.println(“a  b = “ + e);
       
       int f = a / b;
       System.out.println(“a / b = “ + f);
      

    double

    **double表示的是小数. **比如你去菜市场买个黄瓜花费了1.25元. 这就是小数. double类型的数据可以执行的操作和int基本相同. 不同的是. 计算结果一定是小数

     double a = 1.88;
     double b = 1.75;
     
     double c = a + b;
     System.out.println(“a + b = “ + c);
     
     double d = a - b;
     System.out.println(“a - b = “ + d);
     
     double e = a  b;
     System.out.println(“a * b = “ + e);
     
     double f = a / b;
     System.out.println(“a / b = “ + f);
    
    1. String 字符串

      String表示的是字符串. 主要是针对文字进行描述的. 这里要注意的是字符串(String) 的S必须大写

       String s = “近日, 三胖又要制造超大号窜天猴了”; // 双引号括起来的内容就是字符串
       System.out.println(“s = “ + s);
      

      字符串可以进行加法运算. 表示字符串的拼接.

       String s1 = “周杰伦”;
       String s2 = “喜欢我”;
       String s3 = s1 + s2;
       System.out.println(s3);
       
       String s4 = s3 + “, oh, yeah!”;
       System.out.println(s4);
      
    2. boolean 布尔

      **boolean主要表示的是真或者假. **翻译过来就是 对和错. 真命题, 假命题

       boolean a = true;
       boolean b = false;
       
       System.out.println(a);
       System.out.println(b);
       
       
       boolean c = 1 > 2;
       boolean d = 2 > 1;
       System.out.println(c);
       System.out.println(d);
       
       int e = 10; // = 表示赋值
       System.out.println(e == 10); // 判断是否相等要用 ==
       System.out.println(e != 10);
      
      boolean值是用来判断条件的
      

    变量的简单应用

     int meals = 100+200+120+40;  // 餐费
     int traffic = 10 * 22;        // 交通费
     int clothing = 200+400+150;  // 服装费
     int all = meals + traffic + clothing;  //总和
     System.out.println("一共花费:" + all); // 一共花费:1430
    

    1.8 用户输入

    用户输入
    你的程序需要接收外部指令才能决定下一步操作是什么. 比如. 你一个月工资上交给老婆95%. 剩下的是你的零花钱. 此时每个月的收入是不固定的. 零花钱也是不固定的. 需要用户输入工资才能继续执行下一步操作. 此时需要用到用户输入功能.

    在java中使用输入功能需要使用Scanner类来完成.

     import java.util.Scanner;  // 使用Scanner必须要导入这个包. 关于导包后面会详解. 暂时先这么写
    
     public class TestIf {
         public static void main(String[] args) {
    
             // 准备一个Scanner对象
             Scanner sc = new Scanner(System.in);
         }
     }
    
    

    具体操作

     // 获取到用户输入的内容
     Scanner sc = new Scanner(System.in);
    
     // 你想要什么样的数据?
     // 常用的有
     // 获取到int类型的数据
     int i = sc.nextInt();
     System.out.println("i = " + i);
    
     // 获取到double类型的数据
     double d = sc.nextDouble();
     System.out.println("d = " + d);
    
     // 获取到字符串. 以回车为结尾
     String line = sc.nextLine();
     System.out.println("line = " + line);
    

    应用: 计算这个月的零花钱

     Scanner sc = new Scanner(System.in);
    
     // 提示
     System.out.println("请输入您的工资:");
    
     // 接收工资
     double salary = sc.nextDouble();
    
     // 显示工资
     System.out.println("工资是:" + salary);
    
     // 计算零花钱 
     double pin = salary * (1-0.95);
    
     // 显示零花钱
     System.out.println("零花钱:" + pin);
    

    1.9 if语句

    java条件判断的语句是if语句

    语法1(单分支语句):

    if(条件){

    语句块

    }

    执行流程: 如果条件为真, 执行语句块

    发工资了, 干嘛好呢?

     Scanner sc = new Scanner(System.in);
     System.out.println("请输入你一个月多少零花钱:");
     double pin = sc.nextDouble();
     if(pin > 500){
         System.out.println("洗脚城走一波");
     }
    
     System.out.println("happy");
    

    语法2(双分支语句):

    if(条件){

    语句块1

    } else {

    语句块2

    }

    执行流程: 如果条件为真, 执行语句块1, 否则执行语句块2

     Scanner sc = new Scanner(System.in);
     System.out.println("请输入你一个月多少零花钱:");
     double pin = sc.nextDouble();
     if(pin > 500){
         System.out.println("洗脚城走一波");
     } else {
         System.out.println("捡一块砖头自己回家蹭");
     }
    
     System.out.println("happy");
    

    语法3(多分支语句):

    if(条件1){

    语句块1

    } else if (条件2){

    语句块2

    } else if(条件3){

    语句块3

    }…. else {

    else语句

    }

    执行流程:

    判断条件1是否成立. 如果成立. 执行语句块1, 否则, 如果条件2成立, 执行语句2, 否则, 如果条件3成立, 执行语句3……如果所有条件都不成立. 执行else语句.

     // 输入考试分数
     Scanner sc = new Scanner(System.in);
     int score = sc.nextInt();
     if(score >= 100){
         System.out.println("优秀");
     } else if (score >= 80 ){
         System.out.println("良好");
     } else if (score >= 70 ){
         System.out.println("中等");
     } else if (score >= 60 ){
         System.out.println("及格");
     } else {
         System.out.println("不及格");
     }
    

    注意: 在if语句中. 如果一个条件成立了. 其他条件就不再判断了. 也不会执行了.

    1.10 while循环

    相信大家都有打游戏的经历. 玩游戏的时候, 最无聊的工作是什么呢? 没错~ 升级. 做任务. 简直痛苦的不要不要的. 但是呢, 现在几乎每个游戏都有等级系统. 这就让我这种懒人玩家难以忍受. 怎么办呢? 写个脚本~~~ 哈哈. 你想多了. 我可以模拟.

     System.out.println("1. 登录");
     System.out.println("2. 找个怪多的地方");
     System.out.println("3. F1~");
     System.out.println("4. 换个地方继续");
     System.out.println("3. F1~");
     System.out.println("4. 换个地方继续");
     System.out.println("3. F1~");
     System.out.println("4. 换个地方继续");
     System.out.println("3. F1~");
     System.out.println("4. 换个地方继续");
     System.out.println("5. 无聊走了");
    

    哎~ , 游戏都是无聊的. 编程才是我的菜.

    在上面的程序中, 不知道你发现没有. 3, 4两步在不停的执行. 如果我就执行3-4次还没什么问题. 这要是刷一个小时~ 你要写多少代码啊. 怎么办呢? 别担心. 在编程的世界里有一种特别扭B的存在. 就是循环. 它可以完美的解决上面代码重复的问题.

    java中的循环. 有三种.

    1. for循环
    2. while循环
    3. do..while循环

    今天我们主要就讲一种. 叫while循环. 剩下的两种, 我们会在<基础进阶>里继续给大家介绍.

    while循环语法:

    while(条件){

    循环体

    }

    执行流程: 程序会首先判断条件是否为真, 如果真, 则执行循环体. 然后再次判断条件是否为真.如果真, 继续执行循环体, 直到条件为假, 程序退出.

     while(true){
         System.out.println("还我钱");
     }
    

    这样的循环被称为死循环, 那如何能正常的结束循环呢? 改变条件啊

     int a = 0;
     while (a < 10){
         System.out.println("还我钱");
         a = a + 1 ;
     }
    

    OK, 接下来. 让我们完成最开始的那个需求,

     System.out.println("1. 登录");
     System.out.println("2. 找个怪多的地方");
    
     int i = 0;
     while(i < 5){
         System.out.println("3. F1~ 来自东方的神秘力量.");
         System.out.println("4. 换个地方继续.");
         i = i + 1; 
     }
    
     System.out.println("5. 没意思, 走了~");
    

    小试牛刀

    首先, 我得先给你们一段代码. 这段代码可以帮我们产生一个随机数

     Random rd = new Random();
     int n = rd.nextInt(100); // n是一个随机数. 范围是[0,99]
     System.out.println(n); // 打印看看
    

    OK. 我们已经可以产生随机数了. 剩下的请看要求:

    让用户输入一个数字a, 判断用户输入的a和n之间的关系.

    1. 如果用户猜大了. 提示 猜大了. 继续猜
    2. 如果用户猜小了. 提示 猜小了. 继续猜
    3. 如果用户猜对了. 提示 猜对了. 结束循环

    具体操作代码:

    // 随机数生成器
     Random rd = new Random();
     // 创建一个整数随机数 [0,99]
     int n = rd.nextInt(100);
     
     Scanner sc = new Scanner(System.in);
    
     boolean flag = true;
     while(flag == true) {
         System.out.println("请输入一个0-99之间的数字:");
         int a = sc.nextInt();
         if(a > n){
             System.out.println("猜大了");
         } else if(a < n){
             System.out.println("猜小了");
         } else {
             System.out.println("猜对了");
             flag = false;
         }
     }
    

    第二章Java基础

    更新中...

    python
  • 相关阅读:
    c++11 内存模型解读
    无锁队列的实现
    c++中的原子操作
    还是说Memory Model,gcc的__sync_synchronize真是太坑爹了
    对于Linux平台下C语言开发中__sync_函数的认识
    理解 Memory barrier
    pthread_barrier_init,pthread_barrier_wait简介
    explicit构造函数的作用
    droofs
    27.
  • 原文地址:https://www.cnblogs.com/bky20061005/p/14839825.html
Copyright © 2011-2022 走看看