首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏闵开慧

    java概念2

    2.4.2 源程序 import java.util.Scanner; public class ZhiYinShu { static int n, k = 2; public static 2.12.2 源程序 import java.util.Scanner; public class DuoXun { static long a = 2, b = 0; public static 2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2 2.17.2 源程序 import java.text.DecimalFormat; import java.util.*; public class LiRun { static double 2.18.2源程序 import java.util.Scanner; import java.io.*; public class TianShu { public static void

    1.9K80发布于 2018-03-30
  • 来自专栏产品优化

    Java 基础概念·Java HashMap

    Java HashMap 本文为个人学习摘要笔记。 原文地址:Java8 系列之重新认识 HashMap 摘要 HashMap 是 Java 使用频率最高的用于映射(键值对)处理的数据类型。 Java 为数据结构中的映射定义了一个接口 java.util.Map,此接口主要有四个常用的实现类,分别是 HashMap、Hashtable、LinkedHashMap 和 TreeMap,类继承关系如下图所示 如果哈希桶数组很大,即使较差的 Hash 算法也会比较分散,如果哈希桶数组数组很小,即使好的 Hash 算法也会出现较多碰撞,所以就需要在空间成本和时间成本之间权衡,其实就是在根据实际情况确定哈希桶数组的大小,并在此基础上设计好的 在 HashMap 中,哈希桶数组 table 的长度 length 大小必须为 2 的 n 次方(一定是合数),这是一种非常规的设计,常规的设计是把桶的大小设计为素数。 这个方法非常巧妙,它通过 h & (table.length - 1) 来得到该对象的保存位,而 HashMap 底层数组的长度总是 2 的 n 次方,这是 HashMap 在速度上的优化。

    79140编辑于 2022-12-01
  • 来自专栏产品优化

    Java 基础概念·Java String

    Java String 概览 String 被声明为 final,因此它不可被继承(Integer 等包装类也不能被继承)。 在 Java 8 中,String 内部使用 char 数组存储数据。 可变性 String 不可变 StringBuffer 和 StringBuilder 可变 2. String s1 = new String("aaa"); String s2 = new String("aaa"); System.out.println(s1 == s2); // false #2 = Class #18 // java/lang/String #3 = String #19 , ACC_STATIC Code: stack=3, locals=2, args_size=1 0: new #2

    47840编辑于 2022-12-01
  • 来自专栏产品优化

    Java 基础概念·Java Stream

    Java Stream Stream 总览 Stream 是 Java 8 新增加的类,用来补充集合类。 Stream 代表数据流,流中的数据元素的数量可能是有限的,也可能是无限的。 除非显示地创建并行流,否则 Java 库中创建的都是串行流。Collection.stream() 为集合创建串行流而 Collection.parallelStream() 为集合创建并行流。 这是因为 Java 不保证这些副作用对其它线程可见,也不保证相同流管道上的同样的元素的不同的操作运行在同一个线程中。很多有副作用的行为参数可以被转换成无副作用的实现。 "A", "B", "C", "D").reduce("", String::concat)); // ABCD 基本类型 Java 8 提供了一些专门针对基本类型优化的 API,如 IntStream Stream 详解 Java 8 之基本类型优化

    1.3K40编辑于 2022-12-01
  • 来自专栏产品优化

    Java 基础概念·Java 异常

    Java 异常 Throwable 可以用来表示任何可以作为异常抛出的类,分为两种:Error 和 Exception。 Error Error 类对象由 Java 虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。 例如,Java 虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。 这些异常发生时,Java 虚拟机(JVM)一般会选择线程终止;还有发生在虚拟机试图执行应用时,如类定义错误(NoClassDefFoundError)、链接错误(LinkageError)。 在 Java 中,错误通常是使用 Error 的子类描述。 Exception Exception 分为两种: 受检异常:需要用 try...catch...

    40920编辑于 2022-12-01
  • 来自专栏产品优化

    Java 基础概念·Java 枚举

    Java 枚举 本文为个人学习摘要笔记。 原文地址:恕我直言,我怀疑你没怎么用过枚举 为什么需要枚举 相比于使用接口或者常量类,枚举具有一个明确性的约束。 class VideoStatus { public static final int Draft = 1; //草稿 public static final int Review = 2; (role1.compareTo(role2)); // -1 System.out.println(role2.compareTo(role3)); // -1 System.out.println( Calculator.DIVISION.execute(4.0, 2.0)); // 2.0 } } 枚举集合类 JDK5.0 中在增加 Enum 类的同时,也增加了两个工具类 EnumSet 和 EnumMap,这两个类都放在 java.util (User user : userList) { userStatisticMap.merge(user.getUserRole(), 1, Integer::sum); } 扩展阅读: Java

    72120编辑于 2022-12-01
  • 来自专栏产品优化

    Java 基础概念·Java List

    Java List 本文为个人学习摘要笔记。 具体详情可以参考:18 Java fail fast 这里再次分析下源码: public Iterator<E> iterator() { return new Itr(); } private LinkedList–>双向链表结构–>线程不安全,效率高–>查询慢,增删快–>链表直接在头部尾部新增都可以,所以没有倍数; Vector–>数组结构–>线程安全,效率低–>查询快,增删慢–>扩容长度是:当前容量长度*2

    81330编辑于 2022-12-01
  • 来自专栏产品优化

    Java 基础概念·Java 继承

    Java 8 开始,接口也可以拥有默认的方法实现,这是因为不支持默认方法的接口的维护成本太高了。在 Java 8 之前,如果一个接口想要添加新的方法,那么要修改所有实现了该接口的类。 并且从 Java 8 开始,接口也可以有默认的方法实现,使得修改接口的成本也变的很低。 中两个比较重要的概念。 ,重载是一个编译期概念。 关于重载是不是多态有多种论调,有些人认为重载不属于多态的体现,可以参考:Java 中多态的实现方式 多态 上面总结了重写与重载的概念与他们之间的区别,这里再说一下多态,以及为什么说重载不属于多态。

    72840编辑于 2022-12-01
  • 来自专栏知一杂谈

    Java基础概念

    基本原理 volatile 在Java中允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保使用排它锁来单独获得这个变量,Java中提供了 volatile,使之在多处理器开发中保证变量的可见性 synchronized 通过锁机制实现同步,在Java中每一个对象都可以作为锁,有以下三种形式: 对于普通同步方法,锁的是当前实例对象。 对于静态同步方法,所得是当前类 class 对象。 为了减少获得锁和释放锁带来的性能消耗,Java SE 1.6 引入了偏向锁和轻量级锁。 System.out.println(atomicReference.compareAndSet(100, 2019) + "\t修改后的值:" + atomicReference.get()); },"t2" atomicStampedReference.getStamp() + 1) + "\t当前 值:" + atomicStampedReference.getReference()); },"t2"

    43520编辑于 2021-12-07
  • 来自专栏迁移内容

    Java基础Java基本概念

    ---- 上一篇内容:Java基础Java程序设计环境 下一篇内容:Java基础Java数据类型 更多知识学习:全网最全的 Java 技术栈内容梳理(持续更新中) ---- 文章目录 一、Java 注释 二、变量与常量 1、声明变量 2、变量的初始化 3、常量 4、枚举类型变量 三、方法 1、方法的构成 2、方法参数传递 3、方法的重载 ---- 一、Java 注释 与大多数程序设计语言一样,Java 与所有程序设计语言一样,Java 也使用变量来存储值,常量就是指不变的变量。 1、声明变量 在 Java 中,每个变量都有一个类型(type)。在声明变量时,变量的类型位于变量名之前。 2、变量的初始化 初始化变量是指为变量指定一个明确的初始值。初始化变量有两种方式:一种是声明时直接赋值,一种是先声明、后赋值。 方法体:方法体包含具体的语句集合 2、方法参数传递 方法参数传递:调用方法时,需要提供实参,实参必须与形参的次序相同,称为参数顺序匹配。

    49460编辑于 2022-12-02
  • 来自专栏Ryan Miao

    java线程(1)--概念基础

    2.java中的线程 一个Java应用总是从main()方法开始运行,mian()方法运行在一个线程内,它被称为主线程。 2、如果是实现了java.lang.Runnable接口的类,则用Thread的构造方法: Thread(Runnable target)  Thread(Runnable target, String package com.test.java.thread; /** * 学习线程 * Created by mrf on 2016/2/25. */ public class NewThread package com.test.java.thread; /** * 学习线程 * Created by mrf on 2016/2/25. */ public class NewThread 6.线程的几个概念 在多线程编程时,你需要了解以下几个概念: 线程同步 线程间通信 线程死锁 线程控制:挂起、停止和恢复  7.线程同步和锁下次学习

    82880发布于 2018-03-13
  • 来自专栏王金龙的专栏

    【原创】Java并发编程系列2:线程概念基础操作

    【原创】Java并发编程系列2:线程概念基础操作 伟大的理想只有经过忘我的斗争和牺牲才能胜利实现。 本篇为【Dali王的技术博客】Java并发编程系列第二篇,讲讲有关线程的那些事儿。 主要内容是如下这些: 线程概念 线程基础操作 线程概念 进程代表了运行中的程序,一个运行的Java程序就是一个进程。 线程基础操作 线程创建与运行 Java中有三种线程创建方式,分别为:继承Thread类并重写run方法,实现Runnable接口的run方法,使用FutureTask方式。 使用继承方式,好处在于通过this就可以获取当前线程,缺点在于Java不支持多继承,如果继承了Thread类,那么就不能再继承其他类。 Java并发编程大纲 继续附上Java编程的系统学习大纲以供参考: Java并发编程.png ? 【参考资料】 《Java并发编程之美》

    53410发布于 2020-03-23
  • 来自专栏Danny的专栏

    Java网络编程——基础概念

    在学习Java网络编程之前,先来了解一下涉及到的基础概念2、缓存 IO、直接IO 缓存IO 缓存IO又被称作标准 IO,大多数文件系统的默认 IO 操作都是缓存 IO。 (2)内核收到用户进程的调用后,开始准备数据。 (4、5)用户进程再次发起read读取数据,如果数据还没准备好,直接返回。 (2)内核会“监视”所有select负责的socket。 (3)当任何一个socket中的数据准备好了,select就会返回。 (4)这个时候用户进程调用read操作。 ---- 转载请注明出处——胡玉洋 《Java网络编程——基础概念

    70220编辑于 2022-08-03
  • 来自专栏JAVA 框架/源码学习

    JAVA并发之基础概念

    2: 一个人吃3个馒头 并行(parallelism):并行的关键在于同时处理多个任务 例子1: 吃饭时,电话响起,同时进行吃饭和电话2个动作 例子2: 三个人吃3个馒头 “并发”指的是程序的结构,“ 并行(parallelism) 这个概念很好理解。所谓并行,就是同时执行的意思,无需过度解读。判断程序是否处于并行的状态,就看同一时刻是否有超过一个“工作单位”在运行就好了。 并发(concurrency) 要理解“并发”这个概念,必须得清楚,并发指的是程序的“结构”。当我们说这个程序是并发的,实际上,这句话应当表述成“这个程序采用了支持并发的设计”。 并发 并行 区分的关键: 是否是同时处理多个任务 2.同步和异步 所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。

    35710发布于 2021-01-14
  • 来自专栏产品优化

    Java 基础概念·Java final 与 static

    Java final 与 static final 数据 声明数据为常量,可以是编译时常量,也可以是在运行时被初始化后不能被改变的常量。 final int x = 1; // x = 2; // cannot assign value to final variable 'x' final A y = new A(); y.a = 1 public abstract class A { public static void func1(){ } // public abstract static void func2( System.out.println("123"); } public static void main(String[] args) { A a1 = new A(); A a2

    42430编辑于 2022-12-01
  • 来自专栏产品优化

    Java 基础概念·Java 日期与时间

    Java 程序获取时间戳最常用的方法 标准库 Java 标准库有两套处理日期和时间的 API: 一套定义在 java.util 这个包里面,主要包括 Date、Calendar 和 TimeZone 这几个类 // 星期四 十二月 26, 2019 Date 对象有几个严重的问题:它不能转换时区,除了 toGMTString() 可以按 GMT+0:00 输出外,Date 总是以当前计算机系统的默认时区为基础进行输出 dt2 = LocalDateTime.of(2019, 11, 30, 15, 16, 17); LocalDateTime dt3 = LocalDateTime.of(d2, t2); 因为严格按照 在使用 Java 程序操作数据库时,我们需要把数据库类型与 Java 类型映射起来。 下表是数据库类型与 Java 新旧 API 的映射关系: 数据库 对应 Java 类(旧) 对应 Java 类(新) DATETIME java.util.Date LocalDateTime DATE

    6K30编辑于 2022-12-01
  • 来自专栏产品优化

    Java 基础概念·Java 只有值传递

    Java 中的值传递 上面的三个栗子,表现的结果不一样,导致大家对 Java 中传递类型产生困惑。 其实,上面的概念没有错,只是代码的例子有问题。 这里再复习下值传递和引用传递的概念,然后再举几个真正恰当的例子。 当尝试调用 pass 方法,hollis 作为实际参数传递给形式参数 user 的时候,会把这个地址 0x123456 交给 user,这时,user 也指向了这个地址(图 2)。 通过概念我们也能知道,这里是把实际参数的引用的地址复制了一份,传递给了形式参数。所以,上面的参数其实是值传递,把实参对象引用的地址当做值传递给了形式参数。 简单点说,Java 中的传递,是值传递,而这个值,实际上是对象的引用。而按共享传递其实只是按值传递的一个特例罢了。所以我们可以说 Java 的传递是按共享传递,或者说 Java 中的传递是值传递。

    63530编辑于 2022-12-01
  • 来自专栏产品优化

    Java 基础概念·Java Object 通用方法

    Java Object 通用方法 概览 public boolean equals(Object obj) public native int hashCode() protected native = e1.clone(); // 'clone()' has protected access in 'java.lang.Object' 重写 clone() 得到以下实现: public class = e1.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } java.lang.CloneNotSupportedException } e1.set(2, 222); System.out.println(e2.get(2)); // 2 clone() 的替代方案 使用 clone() 方法来拷贝一个对象即复杂又有风险,它会抛出异常 Effective Java 书上讲到,最好不要去使用 clone(),可以使用拷贝构造函数或者拷贝工厂来拷贝一个对象。

    46140编辑于 2022-12-01
  • 来自专栏产品优化

    Java 基础概念·Java 虚拟机

    可以通过 -Xss 这个虚拟机参数来指定每个线程的 Java 虚拟机栈内存大小,在 JDK 1.4 中默认为 256K,而在 JDK 1.5+ 默认为 1M: java -Xss2M HackTheJava java -Xms1M -Xmx2M HackTheJava 方法区 用于存放已被加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。 通过引入 Region 的概念,从而将原来的一整块内存空间划分成多个的小空间,使得每个小空间可以单独进行垃圾回收。这种划分方法带来了很大的灵活性,使得可预测的停顿时间模型成为可能。 其中二进制字节流可以从以下方式中获取: 从 ZIP 包读取,成为 JAR、EAR、WAR 格式的基础。 从网络中获取,最典型的应用是 Applet。 2. 好处 使得 Java 类随着它的类加载器一起具有一种带有优先级的层次关系,从而使得基础类得到统一。

    59020编辑于 2022-12-01
  • 来自专栏个人路线

    Java面向对象基础知识(2)对象和类的概念

    总结   1.对象是具体的事物;类是对对象的抽象;   2.类可以看成一类对象的模板,对象可以看成该类的一个具体实例。    3.类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。 第一个类的定义 属性(field,或者叫成员变量) 属性用于定义该类或该类对象包含的数据或者说静态特征。 在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。

    54620发布于 2021-08-03
领券