首页
学习
活动
专区
工具
TVP
发布

海仔技术驿站

专栏作者
290
文章
312489
阅读量
31
订阅数
并发编程之线程第一篇
Java虚拟机栈 JVM中由堆、栈、方法区所组成,其中栈内存是给线程使用,每个线程启动后,虚拟机就会为其分配一块栈内存。
海仔
2020-02-18
4400
java基础第五篇封装与面向对象
public static void main(String[] args) {
海仔
2019-08-06
2910
java基础第四篇之面向对象
形参:一般把 不确定的量或者变化的量定义在形参位置//圆的的半径,长方形的长和宽,传递的数组也是不确定的
海仔
2019-08-06
2460
并发编程
线程安全 线程安全概念 : 当多个线程访问某一个类(对象或方法)时,这个类始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的. synchronized : 可以在任意对象及方法上加锁,而加锁的这段代码称为"互斥区"或"临界区". 总结 : 当多个 线程访问myThread的run方法时,以排队的方式进行处理(这里排队是按照CPU分配的先后顺序而定的),一个线程想要执行synchronized修饰的方法里的代码,首先 是尝试获得锁,如果拿到锁,执行synchronized方法体的内容;拿不到锁,这个线程就会不断的尝试获得这把锁,直到拿到为止,而且是多个线程同时去竞争这把锁.(也就是会有锁竞争的问题)
海仔
2019-08-06
4550
java基础第十九篇之Xml
1:xml的概述 1.1 xml是什么 标记语言:语言中出现了的标签 a:HTML 超文本标记语言 (语法非常严格,不能随意的定义标签) b:XML 可扩展的标记语言(用户可以根据自己的需求,随意的定义标签) 开发的组织:w3c 版本:使用 1.0
海仔
2019-08-05
1.4K0
java基础第十八篇之单元测试、注解和动态代理
1:单元测试 1)JUnit是一个Java语言的单元测试框架,这里的单元指的就是方法 2)单元测试用来替换以前的main方法
海仔
2019-08-05
3880
java基础第十七篇之网络编程和装饰者模式
1:网络概述 1.1 网络的发展Net 1964年,美国人—> 阿帕网—>以太网Internet 1.2 网络的通信协议 windows电脑,android手机,Mac平板—》联网 ---->网络协议(一个文档:长度,速率,格式) —>根据文档来写了一段代码(通信协议) 1.3 通信协议的分类 TCP/IP协议: 是一组协议 TCP:传输控制协议 IP :互联网协议
海仔
2019-08-05
4600
java基础第十六篇之多线程
1:线程的概念 进程(任务):一个正在运行的程序 进程的调度:CPU来决定什么时候该运行哪个进程 (时间片轮流法) 线程在一个应用程序中,同时,有多个不同的执行路径,是进程中的实际运作单位。 好处是提高程序效率。
海仔
2019-08-05
2580
java基础第十五篇之IO流和递归算法
缓冲区会在内存中创建一个8192容量的字节数组,内存的运算效率比硬盘要高的多所有只要降低到硬盘的读写次数就会提高效率.
海仔
2019-08-05
1.2K0
java基础第十三篇之Collection
常见的几种数据结构: * 1.堆栈:先进后出 * 2.队列:先进先出 * 3.数组:查找快,增删慢 * 4.链表:查找慢,增删快 import java.util.LinkedList;
海仔
2019-08-05
5150
java基础第十四篇之Map
一,Map集合的特点: * * 1.Map集合和Collection集合,没有关系 * * 2.Map集合的元素是成对存在(夫妻关系) * Collection集合的元素是独立存在的(单身关系) * * 3.Map集合的元素不能重复(是元素的key值不能重复) * * 总结: * Collection集合我们一般称为单列集合 * Map集合我们称为双列集合 * 二,Map接口下常用的实现类 * * HashMap<K,V>:底层是哈希表结构,无序的(存取顺序不一致) * * * LinkedHashMap<K,V>:底层链表+哈希表结构,有序的(存取顺序一致) * 这里<K,V>是两个泛型,这里的K和V可以相同 也可以不同 * K代表键的类型,V代表的是值的类型 * * 以上所有的实现类,保证键的唯一性(键不能重复),那么我们需要重写K这种类型的hashCode和equals方法 * 比如:K的类型是String,Integer...(java提供的类型),那么我们不需要管他 * K的类型是Person,Dog等自定义类型 那么我们就需要重写hashCode和equals方法 * * 三,Map接口中定义的常用方法: * * 1.增加: * public V put(K key,V value);//向Map集合中添加一个元素(键值对) * 返回值:表示被新的键值对 覆盖的那个旧的键值对的值 * 如果没有覆盖,返回值是null * * 2.删除: * public V remove(Object key);//删除一个键值对(根据键来删除) * * 3.改:实际上就是put方法,只要put的时候键和map集合中原有的键重复,就可以达到改的目的 * * 4.查 * public V get(Object key);//根据键 来查找键所对应的值 public interface InterfaceA { public abstract void showA(); interface InterfaceB{//内部接口 public abstract void showB(); } }
海仔
2019-08-05
3320
java基础第十一篇之Date、Math、自动装箱和拆箱
public static void demo03() throws ParseException{ //一个Date对象你想最后打印出来格式: “2017年06月05日 10点20分15秒” SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); //调用sdf的format方法 Date d = new Date(); String dStr = sdf.format(d); System.out.println(dStr);
海仔
2019-08-05
4080
java基础第九篇之final和内部类等
* 特点1.在同一个类中 静态代码块是优先于构造方法执行,静态代码块优先于main方法
海仔
2019-08-05
4080
java基础第七篇之接口
* 接口的方法 必须是public abstract 修饰,你可以不写,也可以选择性写,但是不写不代表没有(我们建议写)
海仔
2019-08-05
3920
java基础第十二篇之集合、增强for循环、迭代器和泛型
public static void main(String[] args) { // TODO Auto-generated method stub //遍历数组 // int[] nums = {1,2,3,4,5}; // for(int num:nums){ // System.out.println(num); // } Collection nums = new ArrayList(); nums.add(10); nums.add(20); nums.add(30); nums.add(40); //1.用迭代器 //2.增强for循环 for(Integer i:nums){ nums.add(50); System.out.println(i); } //快捷键 foreach+alt+/
海仔
2019-08-05
4690
没有更多了
社区活动
Python精品学习库
代码在线跑,知识轻松学
【玩转EdgeOne】征文进行中
限时免费体验,发文即有奖~
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档