关闭

java基础1

102人阅读 评论(0) 收藏 举报
分类:
jdk jre jvm 之间的关系:
    jdk 包含 jre
    jre 包含 jvm

补充:jdk 包含很多组件:jar  jdva javadoc;开发java程序使用例如编译java文件生成帮助文档等
      jre jar 跑起来需要的环境,提供java程序运行时的环境;例如多态
      jvm java虚拟机操作系统上层环境,是一种规范实现,jvm 就相当于屏蔽了底层操作系统的差异,实现了跨平台。


1.关键字(java赋予特殊含义的单词)

2.标识符:自定义的类名方法名,变量等26个字母大小写,数字0-9以及_$;但是数字不能开头,且不能使用关键字,严格区分大小写(main不是关键字,但是确实被虚拟机识别的名称比较特殊)
包名:多单词组成都是小写xxxyyyzzz
类名(接口名):均首字母大写XxxYyyZzz
变量和函数名:驼峰标识xxxYyyyZzz
常量:所有字母大写下划线间隔 XXX_YYY_ZZZ
3.注释(单行,多行,以及java特有的注释/** */)
4.常量和变量:
常量:固定不变的数值
1.整数常量:(1)十进制0-9(2)八进制0-7逢八进一0零开头(3)十六进制0-F(0123456789ABCDEF)0X零埃克斯
2.浮点型常量
3.布尔型常量:true false
4.字符常量:加上'' 标识为字符常量(字母数字常量),单引号只能封装一个字符
5.字符串常量"XXXX"
6.null常量,只有一个数值就是null
变量:不确定的内存中存储空间可以被重用,当数据不确定的时候使用

5.运算符
6.语句
7.函数
8.数组


基本数据类型:
byte 2字节 表示2的八次方表示256个数,-128 —— 127 因为java有符号0也是正数
Integer.toBinayString();转2进制
Integer.toHexString(); 转16进制
Integer.toOctalString(); 转8进制

不用浮点数比较
    float f = 0.1f;
    double d = 10 / 100;
    System.out.println(f - d == 0); //false;
    
    注意使用BigDecimal

char 类型 \转义字符
\t制表符
\"双引号
\\斜杠
\单个无效

boolean
if(b) {// ture}
if(!b) { //false}
        
类型转换
    类型小的(范围例如 long --float)自动转换为容量大的
    类型大的转换为类型小的注意继承,父类引用指向子类对象;基本类型直接强转即可
    注意: 可以以内存大小理解,范围大的可以强转为类型小的,因为类型小的内存分配小,大的类型容量完全足够,
    然而小的内存不足以强制转换为大的内存类型如:Father f = new Father(); Child c = new Child();
    c = (Child)f; 错误 可以理解为 父类1内存,子类0.5内存,但是new Child() 1.5内存,包含了一个父类实例化,
    然后父类的引用大小为1内存,那么强制转换为1.5内存是内存不够实例化的。
    
long l = 2000000000*2 编译及运行不错,但是int * int 还是int但是超出了int 范围,付给了long 所以是负数。
long l = 2000000000L*2*2; 与 long l = 2000000000*2*2L 不同, 后者已经溢出再×2
System.out.println(l);

类型转换:
    小的类型总是像大的转换:
byte b = 2; // 2常量(固定的值),在byte范围内。自动转换处理了
b=b+2;// 1字节提升到4字节,再付给1字节就挂掉 //类型自动提升但未作强制类型转换处理
b+=2; //自动完成了强制转换
    强制转换:
    类型 变量 = (类型)(变量)
    b = (btye)(b + 2);
    但注意 b= (byte)b+2; 是强制转换的b
    eg. float - int 去小数
(char)4 对应 ascii表字符


System.out.println(-12%5);    -2
System.out.println(12%-5);    2
System.out.println(-12%-5);    -2
结论只看被模数(只取决于左边数字的符号)
    
a++   --- a= a+1;
b = a++;  ==== b = a; a = a+1;
b = ++a;  ==== a = a+1; b = a;

转义字符:通过\转换一个字母后边的含义
\r    回车键
\n    换行符
\t    制表符 相当于tab
\b    退格键相当于backspace
Linux 中 换行一个字符\n
Windows中回车符\r\n


<< 相当于 *2 次幂
>> 相当于 /2 次幂 最高位补什么由原有最高位值而定,若为0 则 0 补,若为1 则1补
>>> 无符号右移 0 补空位

一个数异或一个数两次还是原来的那个数^ System.out.println(3 ^ -2 ^ -2);

    int i = 2;
    int j = 3;
    // i = i + j;// 2 + 3 = 5
    // j = i - j;// 2
    // i = i - j;
    System.out.println(i);
    System.out.println(j);
    i = i ^ j;
    j = i ^ j; // i ^ j ^ j 一个数异或一个数两次还是那个
    i = i ^ j ;//  (i ^ j) ^ (i ^ j ^ j); 此时j就是i 一个数异或一个数两次还是原来的书

    if
    if else
    if else if  else 判断满足一个if 则不会继续 因为是一个完整的体系
    每个格式都是一个完整的体系
    
    switch注意:1.byte short int char String enum
                2.case default 没有顺序关系,先执行第一个case,当没有匹配case则执行default
                3.switch 结束分两种情况,1遇到break2程序走完
                4.程序无对应case 或 default 无break 则程序将继续向下运行(不判断case)可运行的语句直到程序走完
    switch () {
    case:
        break;//跳出switch
    case:
    case:
    case:
        break;
    default:
    }
   
0
0
查看评论

ctf bugku Linux基础1 wirteup

Linux基础1 一、题目内容:给你点提示吧:key的格式是KEY{},题目地址:链接: http://pan.baidu.com/s/1skJ6t7R 密码: s7jy 二、在linux操作系统上进入链接,下载文件(或者,在windows上下载后用winscp连接linux,...
  • pdsu161530247
  • pdsu161530247
  • 2017-07-06 12:39
  • 835

蓝桥杯 基础练习 阶乘计算

问题描述   输入一个正整数n,输出n!的值。   其中n!=1*2*3*…*n。 算法描述   n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。   将a乘以一个整数k变为将数组...
  • q982151756
  • q982151756
  • 2018-01-21 11:17
  • 44

java基础——static深入理解

java中static可以修饰成员变量、方法、类、代码块。 1. static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量;另一种是没有被static修饰的变量,叫实例变量。两者的区别是: 对于静态变量在内存中只有一个拷贝(节省内存),JVM只...
  • liusong0605
  • liusong0605
  • 2015-10-31 23:03
  • 1202

java基础练习 字符串对比

问题描述   给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:   1:两个字符串长度不等。比如 Beijing 和 Hebei   2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing...
  • qinyf2015
  • qinyf2015
  • 2017-02-18 18:20
  • 413

深入Java基础(四)--哈希表(1)HashMap应用及源码详解

继续深入Java基础系列。今天是研究下哈希表,毕竟我们很多应用层的查找存储框架都是哈希作为它的根数据结构进行封装的嘛。今天让我们来深入hashmap,并且对比jdk1.7和1.8的进行学习,学习插入、查询、扩容机制等重要源码。
  • Jack__Frost
  • Jack__Frost
  • 2017-04-11 12:25
  • 2854

敢说你java基础很好吗?你能答对几个?(Java基础知识点整理)

1.熟悉IO相关接口和类,知道字符流和字节流的区别。 2.理解Java反射,并熟练使用反射解决问题。 3.理解泛型,并能熟练使用。知道的区别。 4.了解Collection、List、Map、Set之间的关系,以及知道它们绝大部分实现类和子类。Vector、LinkedList、ArrayList的...
  • u014481156
  • u014481156
  • 2015-03-10 21:40
  • 889

Java语言程序设计(基础篇)原书第十版 课后习题 第五章

import java.util.Scanner; public class Code_Practice_5 { public static void main(String[] args) { // 5.1 Scanner input = new Scanner...
  • zjjoebloggs
  • zjjoebloggs
  • 2015-10-21 20:27
  • 10134

Java基础练习

斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … 数列第一项和第二项是1, 从第三项开始,每一项都等于前两项之和。 要求:定义静态方法f(int n), 参数n是数列的项数,返回值是第n项的值, 例如: f(1) 的值...
  • Lh_0618
  • Lh_0618
  • 2016-03-12 22:51
  • 1105

四道Java基础题 你能对几道?

一、==符的使用 首先看一段比较有意思的代码 Integer a = 1000,b=1000; Integer c = 100,d=100;    public void mRun(final String name){     ...
  • soul_code
  • soul_code
  • 2015-12-21 09:04
  • 7400

20道经典Java面试基础题

广州华信智原 2016-10-14 15:57 对于很多初入编程行业的程序员来说,第一次面试编程工作时是最紧张最无助的,因为他们从来没有面试过这类工作,不知道主考官会问什么。那么一般初级Java面试时会问哪些问题呢?广州华信智原在这里为大家准备了20道经典Java面试基础题。 1、如...
  • u011277123
  • u011277123
  • 2016-10-15 19:17
  • 8560
    个人资料
    • 访问:5449次
    • 积分:434
    • 等级:
    • 排名:千里之外
    • 原创:40篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条