![](https://img-blog.csdnimg.cn/3af371043d624eaeb488ca8701d26919.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java-基础
Java-基础
-乾坤-
一名普通的研发工程师
展开
-
Java面试——基本数据类型int 和其包装类型 Integer的区别
Java是面向对象的编程语言,一切都是对象,但是为了编程的方便还是引入了基本数据类型,为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换,对应如下:原始类型:boolean,char,byte,short,int,long,float,double包装类型:Boolean,Character,Byte,Short,Integer,Lon原创 2021-12-07 10:38:05 · 246 阅读 · 1 评论 -
Java-输入-输出流
1、输入输出流的介绍参考文章:https://www.cnblogs.com/progor/p/9357676.html2、流的 flush 和 close 方法参考文章:https://blog.csdn.net/lsx991947534/article/details/450657733、补充flush的触发还有一个机制,缓冲区满了,即水管中的水满了,会自动刷新缓冲区。缓冲区不满,则需要手动刷新...原创 2021-04-09 10:22:46 · 85 阅读 · 1 评论 -
Java类初始化和实例化
文章目录一、类初始化二、类实例化一、类初始化什么时候类会进行初始化?1、包含main方法的类会进行初始化2、子类初始化会触发父类的初始化类初始化的过程中都干了什么?1、调用ciinit()方法,只执行一次:这个方法中一般是一些静态变量的显示赋值语句和静态代码块,赋值语句优先静态代码块执行二、类实例化什么时候会进行实例初始化?1、 new2、class.newInstance类实例化的过程中都干了什么?1、调用init()方法,可能有多个,有几个构造器就有几个init:这个方法中原创 2020-07-20 17:00:22 · 160 阅读 · 0 评论 -
Java编写简单的枚举
一、枚举的关键词enum:用enum代替 class关键字声明这是一个枚举类二、自定义枚举类枚举类和普通类唯一不同的是:提前在类中定义了类的实例,其他按照正常的类的写法来写即可。public enum DirectionEnum { // 枚举类的实例 EAST(1, "东"), SOUTH(2, "南"), WEST(3, "西"), NORTH(4, "北"); //属性 private int code; private S原创 2020-06-01 10:23:16 · 881 阅读 · 1 评论 -
为什么文件的读写通常用byte数组来接收?
因为计算机进行数据传输时最基本的单位是字节,byte类型和一个字节等大,不会造成空间浪费。字节是二进制数据的单位,一个字节是一个8位长的二进制数。ASCII码:一个英文字母(不分大小写)占一个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数。换算为十进制,最小值-128,最大值127。如一个ASCII码就是一个字节。Java中字节只可以存储整型,至于说的byte可以存储任意类型的数据是因为:如果这些二进制数据能够按照某种编码表翻译成特定字符,那么就可以说其中存放的是字符.原创 2020-05-27 13:43:16 · 2063 阅读 · 1 评论 -
泛型的简单介绍和使用
文章目录一、泛型出现的背景二、自定义一个简单的泛型类三、注意事项一、泛型出现的背景早期Java是使用Object来代表任意类型的,这样使用会出现两个问题:Collection、Map集合对元素的类型无法做限制。本来我的Collection集合想装载的只能是Dog对象,但是外边把Cat对象存储到集合中,是没有任何语法错误的。把对象扔进集合中,集合是不知道元素的类型是什么的,仅仅知道是Obj...原创 2020-04-28 19:06:54 · 199 阅读 · 0 评论 -
函数式接口(都2020了,该学学Java8了)
文章目录一、函数式接口一、函数式接口定义:有且仅有一个抽象方法的接口定义解释:1、为什么要求有且仅有一个抽象方法?只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导,因为Java中的Lambda可以被当做是匿名内部类的“语法糖”(见第2点),但是二者在原理上不同。2、什么是语法糖?“语法糖"是指使用更加方便,但是原理不变的代码语法。例如在遍历集合时使用的...原创 2020-04-20 23:10:39 · 232 阅读 · 0 评论 -
java 移位运算
1、算术移位(>>)和逻辑移位(>>>)算数移位考虑符号位逻辑移位不考虑符号位2、左移n位定义:(比较繁琐,不建议看)用来将一个数的各二进制位全部左移若干位,移动的位数由右操作数指定,右操作数必须是非负值,其右边空出的位用0填补,高位左移溢 出则舍弃该高位。简单记忆:相当于乘以2的n次方。3、右移n为相当于除以2的n次方...原创 2020-01-17 11:25:18 · 133 阅读 · 0 评论 -
秒懂应用程序上下文
上下文在不同的地方表示不同的含义,要感性理解。其实编程语言中的“上下文”这个词的含义和做阅读理解中的上下文语境的含义是及其相似的。原创 2018-07-09 16:30:13 · 13667 阅读 · 13 评论 -
Redis应用须知
需要注意的是将数据存入到redis中是需要一定时间的,如果数据得一致性要求很高的话就不要存入到redis中删除数据不存在这个问题,因为删除数据的话可以先删除缓存中的数据然后再删除市级数据库中的数据,但是插入,修改,这些操作都是要先修改原始数据库中的数据然后在更新缓存的 存中没有数据,那么就直接从关系型数据库中查询...原创 2018-07-12 18:54:35 · 361 阅读 · 0 评论 -
Java父类引用指向子类对象
JAVA 通过父类对象new 子类对象,这个对象的声明的类型就是父类的类型,调用这个对象的方法也只能是父类型的方法,子类独有的方法是不能够被使用的。例如 List alist =new ArrayList<>();//只能用lsit中的方法ArrayList arrayList=new ArrayList<>();//可以用arraylsit独有的属性和方法 ...原创 2018-07-12 17:06:54 · 4264 阅读 · 0 评论 -
JAVA异常的处理
1.try{ }catch(Exception e){//异常的名称 }catch(Exception e){//catch语句是可以有很多个的 syso(e) }finally{//finally里面写一些善后的语句,比如关闭某个打开却还没有关闭的流等语句 }...原创 2018-07-12 16:31:09 · 149 阅读 · 0 评论 -
变量问题
1.类中定义的变量叫做成员变量,在使用之前可以不初始化 方法中的变量叫做局部变量在使用之前必须初始化 类变量是使用static修饰的成员变量 在类加载的时候会被默认初始化为0 2.static修饰符的作用 修饰一个方法,这个方法就是静态方法,静态方法不可以直接调用类中的非静态方法或者变量..但是非静态方法可以直接调用静态的方法或者变量。 一个变量或者方法如果被static修饰,那么,不...原创 2018-07-12 14:45:29 · 351 阅读 · 0 评论 -
abstract和interface的区别
1.abstract抽象类 描述的是is a 的关系 单继承 2.interface描述的是 like a 的关系 多实现 例如一扇门:概念本质上是一扇门 它具有开门关门的功能 用abstract来实现 public abstract class Door(){ abstract void open(); abstract void close(); } 现在给...原创 2018-07-12 12:52:44 · 257 阅读 · 0 评论 -
rabbbitmq实现rpc的原理
1.生产者发送一个请求,消费者接受这个请求并且处理这个请求返回一个响应 2.消费者此时改变角色作为生产者将响应发送给消费者(原来的生产者) 3.为了确定响应的消息和请求时对应的 加入了一个id来确认。...原创 2018-07-11 19:45:43 · 431 阅读 · 0 评论 -
java中json格式的转化
1、实体类与JSON对象的互相转化 //实体类转JSON ChartData chartData = new ChartData(); chartData.setName("直接访问"); chartData.setValue(335); //1、使用JSONObject JSONObject json = JSONObject.fromObjec...原创 2018-07-10 15:25:17 · 316 阅读 · 0 评论 -
springMVC实现文件下载
@RequestMapping(value="/download") public ResponseEntity&lt;byte[]&gt; download(HttpServletRequest request, @RequestParam("filename") String filename, Model model)throw...原创 2018-07-10 14:55:35 · 301 阅读 · 0 评论 -
Object类中的方法示例
1.getClass方法:通过一个对象实例返回一个class,通过这个class可以创建新的对象,多用于反射中 示例如下:Student student1=new Student();//student实例对象 Class studentClass =student1.getClass();//通过getClass方法获取student类 try {原创 2017-12-08 22:00:25 · 338 阅读 · 0 评论 -
Java反射(Reflect)的机制
1.Class类的使用 在面向对象的世界里,万事万物皆对象 java语言中,静态的成员、普通的数据类型不是对象 所有类都是java.lang.Class类的实例对象 Class类的对象如何表示 任何一个类都是Class类的实例对象,这个实例对象有三种表示方式1.Class c1=Student.class;//任何一个类都有一个隐含的静态成员变量class2.Class c2=stude原创 2017-12-07 11:34:12 · 379 阅读 · 0 评论 -
Java 泛型
1.泛型的作用: 实现代码重用:如果除去对象的基本类型外,实现方法是相同的,那么我们就可以用泛型来描述这种基本功能。例如:写一个方法对数组中的内容进行排序,方法的逻辑关系与被排序的对象的类型无关。 集合中防止出现ClassCastException异常:一个list默认的类型为Object类型,如果其中加入了多种Object类型,那么就很容易出现问题。 2.如何表示泛型? (1)使用Obje原创 2017-12-05 17:08:55 · 123 阅读 · 0 评论 -
Java 将参数传递给方法,参数是否会被改变?
1.值传递:适用于基本数据类型和String类,传递的是数据的拷贝,被调用对象对新数据的改变不影响原数据的取值2.引用数据类型:传递的是引用地址的拷贝,被调用对象对新数据的改变影响原数据的取值,因为新数据和原数据的引用虽然不同但却指向堆中的同一数据对象。package com.wugeek.test;/*** @author 作者 :peanut.w* @version 创建时间:2017年1原创 2017-12-09 16:38:31 · 1674 阅读 · 0 评论 -
Java面试——基础——字符串——Java中操作字符串都有哪些类?它们之间有什么区别?
String类是不可变的 StringBuffer(线程安全、慢)和StringBuilder(非线程安全、快)是可变的 1.创建String对象的两种方式 (1)直接赋值:String str=”abc”; 采用直接赋值的方式创建一个字符串时,JVM首先会去字符串常量池中查找是否存在”abc”这个对象,如果不存在,则在字符串池中创建”aaa”这个对象,然后将池中“这个对象的引用地址返回给原创 2017-12-09 17:23:40 · 162 阅读 · 0 评论 -
内置锁(隐式锁)和显示锁
1.内置锁: (1)原理:通过内部的一个叫做监视器锁的原理来实现的,但是监视器锁本质又是依赖于底层的操作系统的Mutes Lock来实现的,操作系统之间实现线程的切换需要从用户态转换到核心态,这个成本非常高,状态之间转换需要很长的时间,所以内置锁效率较低。(2)如何加锁和释放锁: 锁对象越小越好 内置锁获得锁和释放锁是隐式的,进入synchronized修饰的代码块就获得锁,走出就释放锁 (转载 2017-12-10 17:04:01 · 1238 阅读 · 0 评论 -
Java面试——基础——容器——Java 容器都有哪些?
原文:http://blog.csdn.net/ns_code/article/details/35564663 java集合框架整体类图如下: 从上图中可以看出,集合类主要分为两大类:Collection和Map。 Collection是List、Set等集合高度抽象出来的接口,它包含了这些集合的基本操作,它主要又分为两大部分:List和Set。 1.List:原创 2017-12-11 10:56:23 · 308 阅读 · 0 评论 -
java实体类为什么要实现序列化
一、序列化的意义 客户端访问了某个能开启会话功能的资源, web服务器就会创建一个与该客户端对应的HttpSession对象,每个HttpSession对象都要站用一定的内存空间。如果在某一时间段内访问站点的用户很多,web服务器内存中就会积累大量的HttpSession对象,消耗大量的服务器内存,即使用户已经离开或者关闭了浏览器,web服务器仍要保留与之对应的HttpSession对象,在他们超转载 2017-12-20 20:00:35 · 1256 阅读 · 0 评论 -
java序列化与反序列化、serialVersionUID的作用
java序列化与反序列化是什么? 为什么需要序列化与反序列化? 如何实现Java序列化与反序列化? serialVersionUID的作用 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。 2.为什么需要序列化与反序列化 我们知道,当两个进程进行远程通信时,可以相互发送各种类型的数据,转载 2017-12-28 20:49:51 · 244 阅读 · 0 评论 -
Java设计模式衍生出的技巧
1泛型:集合框架中大量使用 2.注解:annotation 减少xml配置 3.反射:使Java具备动态语言的特性 4.aop:面向切面 5.ioc:依赖注入 6.cglib:强大的代码生成库...原创 2018-02-11 13:24:13 · 295 阅读 · 0 评论 -
彻底搞懂Java的8种基本数据类型
1.计算机存储和处理数据的最基本单位是字节 2.1Byte = 8位是二进制数位的缩写位是二进制数字(二进制数)的缩写,之所以说它是最小单位,大家都知道计算机信息都是最基本的0和1组成的,如二进制数0101就是4比特。其中8位就称为一个字节(字节) 3.最大的8位二进制数11111111为255,ASCII取值范围为0〜255 ,表示256个不同的字符,每个字符占一个字节字节,用8位二进制...原创 2018-03-31 17:45:12 · 3248 阅读 · 0 评论 -
web.xml中各个文件的加载顺序
web.xml加载过程(步骤): 1.启动WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: 和 2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文.3.容器将转化为键值对,并交给ServletContext.4.容器创建中的类实例,即创建监听.5.在监听中会有contextIni...原创 2018-07-09 16:33:20 · 2399 阅读 · 0 评论 -
获取web项目的绝对路径
request.getSession().getServletContext().getRealPath(“”) 输出为E:\software\apache-tomcat-8.0.21\wtpwebapps\SsmDemo\ ssmdemo为项目名字 request.getRealPath已经不推荐使用了原创 2018-07-09 21:34:39 · 194 阅读 · 0 评论 -
sprspringmvc实现文件上传
首先配置springmvc中的multipartResolver:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"...原创 2018-07-10 12:08:29 · 159 阅读 · 0 评论