The Future

Stay hungry,stay foolish.


  • 首页

  • 归档125

  • 分类15

  • 标签63

  • 干货

  • 关于

  • 搜索

Java基本数据类型取值范围

发表于 2017-12-16 | 更新于 2018-08-15 | 分类于 Java | 评论数: | 阅读次数:

在JAVA中一共有八种基本数据类型,他们分别是
byte、short、int、long、float、double、char、boolean

整型

其中byte、short、int、long都是表示整数的,只不过他们的取值范围不一样
byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1)
short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)
int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1)
long的取值范围为(-9223372036854774808~9223372036854774807),占用8个字节(-2的63次方到2的63次方-1)

阅读全文 »

Java基础编程题

发表于 2017-12-16 | 更新于 2018-08-15 | 分类于 Java | 评论数: | 阅读次数:
  1. 把一个数组arr[n]进行反转
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    //方法一,思路:利用for循环,只循环n/2-1次,在同一个数组里进行值的交换
    int[] arr = {1,2,3,4,5,6,7,8,9};
    for (int i = 0,j = arr.length-1; i < arr.length; i++,j--) {
    int temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp ;
    if(i==3)
    break;
    }
    System.out.println(Arrays.toString(arr));
    <!---more--->
    //方法二,思路:重新new一个数组,将原数组逆向赋值给新数组
    int[] arrTemp = new int[arr.length];
    for (int i = 0; i < arr.length; i++) {
    arrTemp[i] = arr[arr.length-i-1];
    }
    arr = arrTemp ;
    System.out.println(Arrays.toString(arr));
    //方法三,思路:通过Collections.reverse(list);
    ArrayList<Integer> list = new ArrayList<Integer>();
    for (int i = 0; i < arr.length; i++) {
    list.add(arr[i]);
    }
    Collections.reverse(list);
    System.out.println( list);

自动装箱的陷阱

发表于 2017-12-14 | 更新于 2018-08-15 | 分类于 Java | 评论数: | 阅读次数:
1
2
3
4
5
6
7
8
9
10
11
12
13
Integer a = 1;
Integer b = 2;
Integer c = 3;
Integer d = 3;
Integer e = 321;
Integer f = 321;
Long g = 3L;
System.out.println(c == d);
System.out.println(e == f);
System.out.println(c == (a+b));
System.out.println(c.equals(a+b));
System.out.println(g == (a+b));
System.out.println(g.equals(a+b));
阅读全文 »

二进制、十进制快速转换

发表于 2017-12-13 | 更新于 2018-08-15 | 分类于 系统 | 评论数: | 阅读次数:

方法一

以8位 来演示:

  1. 第一种:
    00000001 1
    00000010 2
    00000100 4
    00001000 8
    00010000 16
    00100000 32
    01000000 64
    10000000 128
    阅读全文 »

DOS下创建文件和文件夹

发表于 2017-12-12 | 更新于 2018-08-15 | 分类于 系统 | 评论数: | 阅读次数:

DOS下创建文件的三种方法

第一种:

  1. echo 内容 > a.txt 重定向输出,此时创建文本文件a.txt
  2. echo 内容 >> a.txt 向a.txt文件中追加信息
    第二种:
    copy con a.txt 创建空文本文件a.txt
    输入完成后,按ctrl+z退出
    第三种:
    type nul>filename 可以创建一个名为filename的空文件,在批处理中经常使用
    copy nul a.txt 可创建一个空文件,如果a.txt已经存在,且有内容,会被清空,在批文件中经常用。
    阅读全文 »

Intellij导出JavaDoc编码异常

发表于 2017-12-12 | 更新于 2018-08-15 | 分类于 Java | 评论数: | 阅读次数:

Intellij IDEA 导出JavaDoc时编码异常之解决方案。

javac编译提示错误需要为 class、interface 或 enum
HelloWorld.java:1: 需要为 class、interface 或 enum
锘缝ublic class HelloWorld{
^
D:\IDE-workspace\src\com\dudefu\www\Test2.java:1: 错误: 非法字符: ‘\ufeff’
?package com.dudefu.www;

阅读全文 »

Java内存区域与内存溢出异常

发表于 2017-12-06 | 更新于 2018-08-15 | 分类于 Java | 评论数: | 阅读次数:

程序运行时,存储数据的五个地方:

1)寄存器 这是最快的存储区,位于处理器内部。但是,寄存器数量极其有限,所以寄存器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象(C和C++允许向编译器建议寄存器的分配方式)。
寄存器是存在在cpu上的。而内存是挂在数据总线的,数据总线就是用来决定传输数据的大小。而就是通过在寄存器上的地址来寻找相应内存。总的来说,寄存器和内存是两个东西,程序是无法来控制寄存器,所以这里了解一下就可以了。主要涉及到运行程序涉及到的就是下面这些栈(stack)、堆(heap)、静态域、常量池。

阅读全文 »

面试题:百度前200页都在这里了

发表于 2017-12-06 | 更新于 2018-08-15 | 分类于 Java | 评论数: | 阅读次数:

基本概念
操作系统中 heap 和 stack 的区别
什么是基于注解的切面实现
什么是 对象/关系 映射集成模块
什么是 Java 的反射机制
什么是 ACID
BS与CS的联系与区别
Cookie 和 Session的区别
fail-fast 与 fail-safe 机制有什么区别
get 和 post请求的区别
Interface 与 abstract 类的区别
IOC的优点是什么

阅读全文 »

Java逃逸分析

发表于 2017-12-06 | 更新于 2018-08-15 | 分类于 Java | 评论数: | 阅读次数:

概念引入

我们都知道,Java 创建的对象都是被分配到堆内存上,但是事实并不是这么绝对,通过对Java对象分配的过程分析,可以知道有两个地方会导致Java中创建出来的对象并一定分别在所认为的堆上。这两个点分别是Java中的逃逸分析和TLAB(Thread Local Allocation Buffer)线程私有的缓存区。

基本概念介绍

逃逸分析,是一种可以有效减少Java程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法。通过逃逸分析,Java Hotspot编译器能够分析出一个新的对象的引用的使用范围从而决定是否要将这个对象分配到堆上。

阅读全文 »

数据区、代码区、栈区、堆区

发表于 2017-12-04 | 更新于 2018-08-15 | 分类于 Java | 评论数: | 阅读次数:

概念

  • 栈区(stack):由系统的编译器自动的释放,主要用来存放 方法中的参数,一些临时的局部变量 等,并且方法中的参数一般在操作完后,会由编译器自动的释放掉。
  • 堆区(heap):由程序员决定,在Java中,如果程序员不释放的话,一般会由垃圾回收机制自动的清理掉。此区域主要存放: 创建的对象、动态申请的临时空间等 。
  • 数据区(data seg):也称 全局区或者静态区 ,存放 静态变量、全局变量等 都会存放到数据区,此区域上的东西都被全局所共享。比如我们通常采用 类名. 的方式就可以访问到方法,这就是所谓的静态方法,存放到数据区的。
  • 代码区:存放程序编译后可以执行代码的地方。比如执行代码时写的While语句、if语句等,都会存放到此。
    阅读全文 »
1…91011…13
Daniel X

Daniel X

專注于大数据技術,分享干货
125 日志
15 分类
63 标签
GitHub E-mail Weibo QQ
粤ICP备18110871号 © 2017 – 2021 dudefu
0%