
Java
Gydxjnvfg
这个作者很懒,什么都没留下…
展开
-
==和equals的区别
基本类型存储在栈中,对象存储在堆中.equals与==的区别详解:==比较的是变量(栈)中存放的对象的(堆)内存地址,即引用的地址,比较的是真正意义上的指针操作。equals比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。String s=“abcd"是一种非常特殊的形式,和new 有本质的区别。它是java中唯一不原创 2020-12-10 17:53:26 · 225 阅读 · 0 评论 -
包装类的作用
包装类的作用是为了方便对基本数据类型进行操作.包装类型有:Integer, Short, Byte, Long,Float, Double, Character,Boolean,BigInteger, BigDecmail基本类型和引用类型的区别有以下几点:基本类型不是对象,而引用类型是对象.声明方式:基本数据类型直接声明,引用数据类型需要用new关键字创建.存储的位置:基本数据类型存储在堆栈中,引用类型则通过引用指向实例,具体的实例保存在堆中.基本数据类型的初始值依据其类型而.转载 2020-12-10 15:30:12 · 4892 阅读 · 0 评论 -
compareTo()方法
compareTo()方法用于将指定对象与方法的参数进行比较.可用于比较Byte,Short,Double,Float,Long,Integer等.如果指定的数与参数相等,返回0.指定的数小于参数返回-1.指定的数大于参数返回1.//BigDecimal类中的compareTo()源码.public int compareTo(BigDecimal val) { // Quick path for equal scale and non-inflated case. //没.原创 2020-12-10 15:00:08 · 502 阅读 · 0 评论 -
多线程的创建方式
Java多线程有两种实现方式:1.继承Thread类2.实现Runnable接口一:继承Thread类实现步骤:a.创建一个类,继承Therad类。b.重写run()方法,在方法中设置线程任务。c.在主方法中创建Thread子类对象。d.使用该子类对象调用Therad类中的start()方法。【注意:线程开启的位置】//主类public class Test{ public static void main(String... args){ //注意开启新线程的位置(第一次.原创 2020-10-23 11:08:09 · 144 阅读 · 0 评论 -
Java编译器的优化(两点)
给byte/short/char三种类型的变量赋值,如果右侧赋值的数值没有超过范围,编译器将会自动隐含地补上(byte)(short)(char)。也就是说:如果没有超过变量类型的范围,编译器补上强转。如果超过了范围,报错。char i = 65;System.out.print(i);//A2.在给变量赋值的时候,如果右侧的表达式中全部是常量,没有任何变量,那么编译器javac将会直接将若干个常量表达式计算得到结果。如short result = 5+8;编译后得到的.class字节码文件当.原创 2020-05-22 09:21:38 · 353 阅读 · 0 评论 -
Java集合排序
ArrayList集合排序:package cn.gf.exercise;import java.util.ArrayList;import java.util.Comparator;public class ListOfSort2 implements Comparator<Object>{ public static void main(String[] args...原创 2019-11-07 19:50:22 · 251 阅读 · 0 评论 -
Java获取当前系统时间
java.util包提供了Date类来封装当前的日期和时间。String toString( )转换Date对象为String表示形式,并返回该字符串。Date date = new Date();//初始化Date对象//使用toString()函数显示日期时间System.out.println(date.toString());//Sat Oct 26 10:00:20 CST 2...原创 2019-10-30 22:24:27 · 122 阅读 · 0 评论 -
面向对象思想
面向对象思想概述Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下, 使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面 向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行...原创 2019-10-18 20:20:03 · 139 阅读 · 0 评论 -
封装和this关键字
本文通过面向对象的三大特征之封装来引出关键字this。封装概述面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的 方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。原则将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问...原创 2019-10-18 22:28:08 · 238 阅读 · 0 评论 -
Array类
java.util.Arrays此类包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法,调用起来 非常简单。public static String toString(int[] a) :返回指定数组内容的字符串表示形式。public static void sort(int[] a) :对指定的 int 型数组按数字升序进行排序。练习: 请使用 Arrays 相关...原创 2019-10-18 23:06:10 · 1187 阅读 · 0 评论 -
Math类
java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。public static double abs(double a) :返回 double 值的绝对值。public static double ceil(double a) :返回大于等于参数的最小的整数。【向...原创 2019-10-18 23:13:36 · 1283 阅读 · 0 评论 -
String类
String类概述java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如 “abc” )都可以被看作是实现此类的实 例。类 String 中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻译为大写或小写的所有字符的字符串的副本。特点:1. 字符串常量:字符串的值在创建后不能被更改。 (也就是说,声明后的字符串不可改...原创 2019-10-19 15:58:47 · 228 阅读 · 0 评论 -
Java方法中形参的传递(值传递和引用传递的区别)
Java方法中形参传递(值传递和引用传递的区别):public class ChangeValueThenPrintResult { public static void main(String[] args) { // TODO Auto-generated method stub String a = "a"; int b = 0; String[] c = {"a"};...原创 2019-10-19 16:54:15 · 210 阅读 · 0 评论 -
求1~100以内的质数
质数:只能被1和自身整除的数。public class PrintZhiShuoFrom1to100 { public static void main(String[] args) { // TODO Auto-generated method stub //先打印出1和2(循环是从3开始的) System.out.println(1); System.out.pri...原创 2019-10-19 17:25:09 · 350 阅读 · 0 评论 -
Java线程
以下是自己的理解,作为笔记自己复习使用。java的JVM虚拟机支持多线程,不同线程之间是抢占式的获取CPU的执行时间。首先理解进程和线程,进程是指一个应用程序,比如腾讯电脑管家;线程是进程的一个单元,一个进程可以有多个线程。并发和并行的概念:并发是两个线程轮流使用一个CPU(抢占),并行是多个CPU同时执行多个线程。多线程就会出现所谓的临界资源的问题,即多个线程去访问同一个资源,就会造资...原创 2019-10-22 23:15:42 · 113 阅读 · 0 评论 -
String字符串拼接小练习
定义一个方法,把数组int[] ary = {1, 2, 3, 4, 5};按照指定格式拼接成如下字符串:[word1word2word3word4word5]分析:首先准备一个数组int[]定义一个方法,用来把数组变成字符串方法三要素:返回值类型:String方法名:参数列表:int[]用到for循环,字符串拼接,每个数组元素之前都有一个word字符串,分隔符*,特别...原创 2019-07-31 19:04:24 · 217 阅读 · 0 评论 -
冒泡排序优化
以下所有的排序均默认按照从小到大的方法进行排序。冒泡排序每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾! 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止!(每一轮排序都会砍掉后面已经排好序的数字)两个元素(相邻比较),根据需要决定是否交换(合规交换)....原创 2019-08-01 19:57:27 · 107 阅读 · 0 评论 -
选择排序
以下所有的排序均默认按照从小到大的方法进行排序。选择排序选择排序是每一次拿第一位与它后面的每一个数字进行比较,每排一趟,就会挑选出待排序列中最小的那个数字,并把它放在这一趟的“第一位”。//创建一个数组int[] array = {...........};//排序for(int i = 0; i < array.length - 1; i ++){int index = ...原创 2019-08-01 19:58:32 · 512 阅读 · 0 评论 -
面向对象的基本特征
1.抽象设计类的过程称为抽象类是对象的抽象,类是相同或相似的特征和行为的对象的抽象2.封装使用各种合适的访问限定符修饰属性方法和类规范:类都是public的,方法都是public、属性是private的属性的访问:构造方法/访问器方法public所修饰的属性、方法和类都是可见的四种访问修饰符都可以修饰属性、方法public和package可以修饰类,private和pro...原创 2019-07-12 12:48:01 · 139 阅读 · 0 评论 -
Java内存及数据的传递
栈栈在方法被调用时产生,在方法结束时被销毁.堆\堆栈4.数据的存储数据分为基本数据类型和引用数据类型区分数据类型的方式:存放该数据的变量是否能 .操作基本数据类型:存放在栈内存中,对int a = 12;来说,int a 称为引用,12称为值,基本数据类型的引用和值都在栈里引用数据类型对于int[] array = {…}来说,它的引用部分int[] array存放在栈里面,而 ...原创 2019-07-12 19:40:10 · 251 阅读 · 0 评论 -
面向对象之动态
多态什么是多态:多态是同一父类类型,调用同一个方法后,表现出不同的状态。(比如宠物这个类,有吃的方法,它们的子类也都有吃的方法,在调用父类吃的方法过程中,根据不同的动物有不同的吃的行为)好处:当程序业务有扩展是,使用多态代码改动量最小概念:同一类型,调用统一方法,表现出不同状态。实现方式:方法重载:静态方式实现多态方法重写:动态方式实现多态多态的使用步骤:1,虚方法(在父类...原创 2019-07-15 22:44:43 · 251 阅读 · 0 评论 -
java的特点、开发环境、开发工具
java的特点1、面向对象:维护和开发过程比较程式化,规范。2、分布式3、健壮性:程序不容易出错或者出错后一解决。4、安全性:代码结构严谨死板,解决问题的方案单一。5、可移植性:java代码一处编写,到处运行。原理:java程序运行在一个jvm(Java Virtual Machine)java虚拟机上,jvm可以通过驱动注册到各种平台(Windows/macos/andriod/ios...原创 2019-07-02 20:20:09 · 239 阅读 · 0 评论 -
使用缓冲字符流向文件中写入数据再读出(按行操作)
import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;public class BufferedReaderTest {public static void main(String[] args) throws IOException { // TODO Auto-gener...原创 2019-07-27 13:51:27 · 2426 阅读 · 0 评论 -
Java NIO中Buffer的三个属性
缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。为了理解Buffer的工作原理,需要熟悉它的三个属性:capacitypositionlimitposition和limit的含义取决于Buffer处在读模式还是写模式。不管Buffer处在什么模式,capacity的含义总是一样的。1.ca...原创 2019-07-26 19:39:40 · 949 阅读 · 0 评论 -
Java NIO中Buffer的clear()和compact()方法的区别
面试可能会问到clear()与compact()方法的区别:一旦读完Buffer中的数据,需要让Buffer准备好再次被写入。可以通过clear()或compact()方法来完成。如果调用的是clear()方法,position将被设回0,limit被设置成 capacity的值。换句话说,Buffer 被清空了。Buffer中的数据并未清除,只是这些标记告诉我们可以从哪里开始往Buffer里...原创 2019-07-26 19:38:17 · 1783 阅读 · 0 评论 -
Java NIO
NIO简介:非阻塞的IO。【java.NIO】全称java non-blocking IO,是jdk1.4及以上版本里提供的新api(New IO),为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。Java NIO由以下几个核心部分组成Channels:通道作用:把缓冲区的内容写入到目标文件中/把目标文件的内容,读取到缓冲区。Bu...原创 2019-07-26 19:26:51 · 106 阅读 · 0 评论 -
把一个较大的文件(G级)复制到其它文件夹中
//把一个较大的文件(G以上)复制到其它文件夹中import java.io.FileNotFoundException;import java.io.IOException;import java.io.RandomAccessFile;import java.nio.MappedByteBuffer;import java.nio.channels.FileChannel;impo...原创 2019-07-26 19:15:03 · 288 阅读 · 0 评论 -
使用FileChannel通道读写文件
使用FileChannel通道读写文件import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.nio.ByteBuffer;import java.nio.chann...原创 2019-07-26 19:13:31 · 1713 阅读 · 0 评论 -
线程同步安全问题(售票问题)
春运到了,某个火车站四个售票员出售某个车次最后100张车票的情形。测试类:public class Test {public static void main(String[] args) { // TODO Auto-generated method stub Ticket ticket = new Ticket(); //创建多线程 Thread t1 = new Thread...原创 2019-07-30 20:18:21 · 288 阅读 · 0 评论 -
线程通信(生产者,消费者模式)
测试类public class Test {public static void main(String[] args) { // TODO Auto-generated method stub Goods goods = new Goods(); Producer producer = new Producer(goods);//Producer类中的构造方法必须传参 //创建多线程...原创 2019-07-30 19:38:39 · 195 阅读 · 0 评论