黑马程序员

黑马程序员——指针的应用

大兔子大兔子 提交于 2020-03-23 09:15:21
黑马程序员——指针的应用 ------- android培训 、 ios培训 、期待与您交流! ---------- 内存单元的标号也叫做地址,既然根据内存单元的编号或地址可以找到所需的内存单元,所以通常也把这个地址成为指针 允许用一个变量来存放指针,这种变量称为指针变量 指针是一个地址,是一个常量 指针变量存放一个地址,是一个变量 **1 、定义指针变量 ** 一般形式为:类型说明符 *变量名; *表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示本指针变量所指向的变量的数据类型 例如:int *pi; //一个指向整形变量的指针 long *pi; //一个指向长整形变量的指针 float *pi;//一个指向浮点型变量的指针 char *pi;//一个指向字符型变量的指针 **2 、指针变量的定义** 数据类型 *指针变量名 int *p; //定义了一个指针变量,变量名为p。。int表示,p只能存放一个int类型的变量的地址 char *p1; //定义了一个指针变量,变量名为p1。。p1只能存放一个char类型数据变量的地址 注意:1)*必须得有,如果没有就相当于定义一个普通变量。2)指针变量不能用来存放数值或者字符。3)指针变量有全局和局部之分 **3 、指针变量的初始化和引用** 1)指针变量的初始化 1、定义的同时初始化:int *p=&a; 2

黑马程序员——对线程的一些总结

一个人想着一个人 提交于 2020-03-22 03:30:15
1.为什么要覆盖run()方法? Thread类用于描述线程。该类就定义了一个功能,即存储线程要运行的代码,该存储的功能就是由run()方法来实现的。 2.线程的运行状态: 线程被创建,调用start()方法进入运行状态;如果调用sleep(time)或者wait()方法线程进入冻结状态,但依然存在,此时可以试用notify()方法唤醒线程; 当线程运行结束或者调用stop()方法,线程便消亡了。 3.关于多线程的安全问题 解决方式:对多条操作共享数据的语句,只能让一个线程执行完毕之后,在执行过程中其他线程不可参与。 即同比代码块:synchronized(对象){需要同步的代码} 上面的对象其实就是锁,持有锁的线程才可以执行同步代码块中的代码,没有持有锁的的线程即使获取了cpu执行权也进不去,因为没有获得锁对象 同步的前提:有两个或者两个以上的线程 必须多个线程使用同一个锁对象 4.如何看哪些代码需要同步? 明确哪些代码是多线程运行代码 明确哪些是共享数据 明确多线程运行代码中哪些语句操作共享数据 来源: https://www.cnblogs.com/wdsthink/p/4372896.html

黑马程序员_java多线程总结

[亡魂溺海] 提交于 2020-03-12 05:16:55
android培训 、 java培训 、期待与您交流! /* 多线程技术 java虚拟机允许程序并发地运行多个线程。 JVM启动至少有两个线程,一个是主线程(代码在mian方法中);另一个是负责垃圾回收机制的线程。 创建线程 方法一 在java.lang包中有一个Thread类 继承Thread类 步骤: 1,定义类继承Thread. 2,复写Threa类中的run方法; 目的:将自定义代码存储在run方法中,让线程运行。 3,调用start(),该方法有两个作用,就是启动线程,调用run方法。 */ // 例:三个窗口分别买票,每一个窗口卖10张票 class ThreadDemo extends Thread //定义类继承Thread. { public void run() //复习run方法 { int x=1; while(x<=10) { System.out.println(Thread.currentThread().getName()+"....."+x);//打印正在运行的线程 x++; } } } class Test { public static void main(String[] String) { new ThreadDemo().start();//创建第一个线程并运行 new ThreadDemo().start();//创建第二个线程并运行

黑马程序员_java08_多线程

丶灬走出姿态 提交于 2020-03-12 05:16:13
转载于: http://www.itxuexiwang.com/plus/view.php?aid=148 线程是程序中可以并行执行的任务。 java运行系统总是选当前优先级最高的处于就绪状态的线程来执行。如果几个就绪线程有相同的优先级,将会用时间片方法轮流分配处理机。 进程与线程的区别 进程属于一个独立的运行程序,线程是程序里面的一个分支。许多个线程组成一个程序的运行。 创建线程的两种方式 (1)线程类是由Thread类及其子类表示的,继承Run()方法定义了线程执行时的任务体,定义一个继承于Thread的线程类覆盖run()方法。 (2)任何实现接口Runnable的对象都可以作为一个线程的目标对象,类Thread本身也实现了接口Runnable,接口中的run()方法需要实现为线程执行的任务体。 (3)可以利用Thread的类方法currentThread()获得当前执行线程的信息。 方法一: public class Person extends Thread{ public Person(String name){ this.name=name; } @Override public void run(){ super.run(); } } 1 2 3 4 5 6 7 8 9 方法二: class Res { private String name; private

黑马程序员----多线程基础

二次信任 提交于 2020-03-12 05:15:53
/** * @author Administrator * * @description Java多线程编程入门测试类 * @history */ // 方法一、继承线程类Thread class MyThread extends Thread{ public MyThread(String threadName){ // 设置当前线程的名称 currentThread().setName(threadName); } public void run(){ System.out.println(Thread.currentThread().getName()); } } // 方法二、实现Runnable接口 class MyThread2 implements Runnable{ public void run() { System.out.println(Thread.currentThread().getName()); } } public class SynTestDemo { /** *@description *@param args */ public static void main(String[] args) { // 1、线程的定义、线程和进程的区别、为什么要引入线程等 // 2、 Java实现多线程的方法主要有两种

黑马程序员-多线程

丶灬走出姿态 提交于 2020-03-12 05:10:35
多线程 进程:是一个正在执行的程序 。 线程:就是进程中的一个独立的控制单元,线程在控制进程的执行,一个进程中至少有 一个线程。 java VM 启动的时候会有一个进程java.exe。该进程中至少有一个负责java程序的执行,而且这个线程运行的代码存在于main方法中,该线程称之位主线程。 多线程的一个特性 ;随机性,谁抢到谁执行,至于执行对长,cpu说了算 创建新执行线程有两种方法。一种方法是将类声明为Thread的子类。该子类应重写Thread类的run方法。 1. 如何在自定义的代码中,自定义一个线程呢? 通过对api的查找,java已经提供了对线程这类事物的描述,就是Thread类。 创建线程的第一种方式:继承Thread类。 步骤: 1.定义类继承Thread 2.复写Thread类中的run方法 目的;将自定义代码存储在run方法中,让线程运行 3.调用线程的start方法 该方法有两个作用:启动线程,调用run方法(存储要执行的代码) 为什么要覆盖 run 方法呢? Thread 用于描述线程。 该类就定义了一个功能,用于存储线程要运行的代码。该存储功能就是run方法。 也就是说Thread类中的run方法,用于存储线程要运行的代码。 线程的五种状态: 被创建:start() 冻结状态(睡眠,等待):放弃了执行资格 运行,阻塞可以到达 注:在同步代码中,wait(

05_泛型编程与STL之黑马程序员day05

拈花ヽ惹草 提交于 2020-03-10 14:01:24
#2020/03/10 day01至day05完结 1.map容器 此处不再对函数具体介绍,可进入 Cpp参考 # include <iostream> # include <map> using namespace std ; //map容器初始化 void test01 ( ) { //map容器模板参数,第一个参数key的类型,第二参数value类型 map < int , int > mymap ; //插入数据 pair.first key值 piar.second value值 //第一种 pair < map < int , int > :: iterator , bool > ret = mymap . insert ( pair < int , int > ( 10 , 10 ) ) ; //iterator表示插入的位置 if ( ret . second ) { cout << "第一次插入成功!" << endl ; } else { cout << "插入失败!" << endl ; } ret = mymap . insert ( pair < int , int > ( 10 , 20 ) ) ; if ( ret . second ) { cout << "第二次插入成功!" << endl ; } else { cout << "插入失败!" <<

黑马程序员----java基础----多线程

佐手、 提交于 2020-03-06 18:44:28
------ Java培训、Android培训、iOS培训、.Net培训 、期待与您交流! ------- 一、理解线程   进程:每个独立执行的程序称之为进程。   线程:线程就是一个进程内部的一条执行路径。   多线程:在java 虚拟机启动的时候会有一个 java.exe 的执行程序,也就是一个进程。该进程中至少有一个线程负责 java 程序的执行。而且这个线程运行的代码存在于 main 方法中。该线程称之为主线程。 JVM 启动除了执行一个主线程,还有负责垃圾回收机制的线程。像种在一个进程中有多个线程执行的方式,就叫做多线程。   线程和多线程区别如下:     ( 1 )每个进程都有独立的代码和数据空间,进程间的切换开销大。     ( 2 )同一进程内的多个线程共享相同的代码,每个线程有独立的运行栈和程序计数器,线程间的切换开销小。 二、创建线程的方式   创建线程共有两种方式:继承方式和实现方式(简单的说)。     1 、 继承方式       通过查找 java 的帮助文档 API ,我们发现 java 中已经提供了对线程这类事物的描述的类 ——Thread 类。这第一种方式就是通过继承 Thread 类,然后复写其 run 方法的方式来创建线程。     创建步骤:     (1),定义类继承 Thread 。     (2),复写 Thread 中的 run

黑马程序员---第一篇 IO字节流复制文件的方式

谁说胖子不能爱 提交于 2020-03-06 09:48:35
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------ 第一篇 IO字节流复制文件的方式 今天是2015年11月9日,学习了IO流技术,学习了4种复制文件的方式。他们分别是: 1 基本字节流一次读写一个字节. 2 基本字节流一次读写一个字节数组。 3 高效字节流一次读写一个字节。 4 高效字节流一次读写一个字节数组。 那哪一种的效率会高一些呢?我们来做个对比,仔细观察哪种运行所需的时间最短。 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /* * 需求:把e:\\大秦帝国.mp4复制到当前项目目录下的大秦帝国(2).mp4中 * * 字节流四种方式复制文件: * 基本字节流一次读写一个字节: * 基本字节流一次读写一个字节数组: * 高效字节流一次读写一个字节: * 高效字节流一次读写一个字节数组: */ public class CopyMp4Demo { public static void main(String[] args)

java选择结构习题

匆匆过客 提交于 2020-03-04 12:38:54
选择题 题目1(单选): 下列代码的运行结果是( B ) public class Test { public static void main(String[] args){ int age = 18; System.out.println("黑马程序员"); if(age >= 18){ System.out.println("咨询Java课程"); System.out.println("开始学习Java课程"); } System.out.println("学业有成,拿高薪!"); }} 选项: A. 黑马程序员 ​ 学业有成,拿高薪! B. 黑马程序员 ​ 咨询Java课程 ​ 开始学习Java课程 ​ 学业有成,拿高薪! C. 咨询Java课程 ​ 开始学习Java课程 D. 代码编译报错 题目2(单选): 代码如下,运行完成之后的结果是:10是偶数,则横线处填写的正确代码是( B ) public class Test{ public static void main(String[] args){ int a=10; if(____________){ System.out.println(a+"是偶数"); } }} 选项: A. a/2==0 B. a%2==0 C. a%=2 D. a/=2 题目3(单选): 下列代码的运行结果是( D ) public