一轮明月照九洲

长将静趣观天地,自有幽怀契古今


  • 首页

  • 关于

  • 分类

  • 归档

JavaSE基础(四)

发表于 2020-03-09 | 分类于 java

内存结构与执行过程

1.在硬盘上创建一个文件 Test.java

2.文件的内容是我们编写的源代码(跟计算机发送的指令)

public  class Test{
         static void main( String[] args ){
              byte x;
              x=1;
        }
  }

3.将Test.java源文件——>编译——>Test.classc

4.执行——–>内存中执行

upload successful

常量值

常量值是在常量缓存区中的
常量区只存一份   常量存储的形式不是十进制而是二进制
在常量池中整数默认是按照 int型存储
如果使用长整型时需要末尾加L告知
long d = 2147483648L;
浮点型默认为64位double.

JavaSE基础(三)

发表于 2020-03-08 | 分类于 java

常量

常量是代表在程序运行过程中,不能再改变的值。

常量的作用

1.固定的值  代表在计算过程中经常用到的值便于程序计算。
    如:  圆周率  3.1415926
2.表示一个含义
    如:  up==>1 down==>2

什么样的值算是常量

1. 可以认为所有基本类型的值固定不变是常量
    如:    3.14   'a'  true
2.特殊的常量 
    如:   “a b c”----->string
        string是一个引用数据类型,它的值很特殊,可以简单视为常量
3.自己创建的空间存储一个值让他固定不变
    如:   final int up = 1;

变量

变量是指程序执行过程中可以改变的量;
变量是内存空间(小容器);
变量空间在创建(声明)的时候必须指定数据类型变量空间的名字;
变量空间里面只能存储一个内容(值 引用)
变量空间的内容可以改变;

变量如何创建/声明

数据类型   类型名字;
int a;
string b;

创建变量需要注意命名的问题

命名规则: 字母、数字(不允许作为开头)、符号(英文符号_和$)还有中文(不推荐)
命名的规约:  
            类名字:  首字母大写 如果两个以上单词  所有首字母都大写
                     如:SuperPerson
            变量名:  首字母小写 如果两个以上单词之后首字母大写
                     如: superPerson
                     遵循驼峰式命名规约
            所有名字需要见名知意,为了增强程序可读性!
注意:变量是空间可以只创建东西不存放内容
      变量空间创建后是无内容的、空的
      空的变量空间是不能拿来使用的

注释

1.单行注释     //
2.多行注释     /*         */
3.文档注释     //*        */

JavaSE基础(二)

发表于 2020-03-08 | 分类于 java

数据类型

基本数据类型 (8个)

整型 byte short int long
浮点型 float double
字符型 char
布尔型 blooean

引用数据类型

数组  []array
类    class(抽象类 abstract class)
接口  interface  
枚举  enum
注解  @interface

byte 字节型

1 byte = 8 bit   00000000   256种组合
用第一个bit的位置记录符号 0表示正数 1表示负数
数值的范围2的-7次方到二的7次方减1
-128~127

以上其他整数类型依次乘2

short  2字节  16bit
int    4字节  32bit
long   8字节  64bit

浮点型

float  4字节  32bit
double 8字节  64bit

字符型

'a' '+' '我' ‘5’
英文符号和数字是1字节   采用ASCII  美国信息交换标准代码 由字母 数字 符号组成
中文是2字节    unicode编码

布尔型

boolean  1bit
true  false

JavaSE 基础 (一)

发表于 2020-03-08 | 分类于 java

JavaSE基础

1996年 正式发布了可以下载的JDK工具包 jdk1.0

1999年 发布了第二代平台 简称 java2 细化三个不同的版本;

标准版  Standard Edition      J2SE
企业版  Enterprise Edition    J2EE
微型版  Mirco Edition         J2ME

2005年 Oracle 公司74亿收购了SUN

java语言的特点

跨平台性  平台(操作系统)
面向对象
简单性  多继承  
健壮性(鲁棒性)  垃圾回收  异常机制
多线程
大数据相关开发

JVM

Java virtual machine  虚拟机     源文件.java 编译字节码文件.class

jRE

Java Run Environment 运行环境
运行别人写的java程序

JDK

Java Development kit          开发工具包
javac.exe                     编译工具   
java.exe                      执行工具
bin文件夹                     全都是工具
inlcude文件夹                 包含了其他语言的程序
jre文件夹                     包含了运行环境
lib文件夹                     包含了人家写好的java类
src.zip                       压缩文件夹  源代码

常用命令

win(窗口键)+R   输入cmd命令       打开一个dos命令行窗口
使用cd 文件夹名 进入 cd ..        退出一层文件夹
javac test.java                   编译一个test文件
java test                         运行一个test文件
其他 win+R 输出  mspaint          打开画图

PTA基础题算法&&心得(7-1---7-12)

发表于 2020-02-01 | 分类于 PTA

#整型变量存储规则

1
2
int foot=height/30.48;
int inch=(height/30.48-foot)*12;

对于C而言 整数除浮点数结果是浮点数 但存储在整型变量中会自动将浮点型化为整型,
而其本质还是浮点数。

#求和 1/1+……..1/n or 1/1-1/2+1/3……+1/n

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main(){
int n;
int i;
double sum=0.0;
int sign=1;
scanf("%d",&n);
for(i=1;i<n;i++)
{
sum+=sign*1.0/i;
sign=-sign;
}
printf("f(%d)=%f\n",n,sum);
return 0;
}

定义变量sum 不给初值直接使用的话 sum的值是随机的;
f(%d)=f(%f),n,sum 解决第n 项求和表示;
一正一负的交替相加用sign=-sign,sign的初值为-1,乘以原式,也可将sign 设为double型 初值为1.0可替代循环体,sum+=sign/i;

#整数分解

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
#include<stdio.h>
int main(){
int x;
scanf("%d",&x);
int t;
int mask=1;
t=x;
while(t>9){
t/=10;
mask=mask*10;
}
printf("%d\n",mask);
do{
int d=x/mask;
printf("%d",d);
if(mask>9){
printf(" ");
}
x%=mask;
mask/=10;
}
while(mask>0);
printf("\n");
return 0;
}

mask的值用x的位数确定,因为不能直接消耗x,用辅助变量t存储x,mask循环要少一次10的n-1次方,用t每除10然后,mask*10,直到t大于9;
x整除mask确定第一位,然后x再对mask取余求剩下位数,mask在/10;
中间空格用mask判断mask>9,每循环一次输出一个空格;

#最大公约数 辗转相除法

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include<stdio.h>
int main(){
int a,b;
int t;
scanf("%d %d",&a,&b);
while(b!=0)
{
t=a%b;
a=b;
b=t;
}
printf("gcd=%d",a);
return 0;
}
辗转相除法:如果b=0,a就是最大公约数;
否则,计算a除以b的余数,让b=a,b=a的余数;
回到第一步;
#求符合条件的整数集
#include<stdio.h>
int main(){
int a;
scanf("%d",&a);
int i,j,k;
int ctn=0;
for(i=a;i<=a+3;i++){
for(j=a ;j<=a+3;j++)
{
for(k=a;k<=a+3;k++)
if(i!=j && i!=k &&j!=k){
ctn++;
printf("%d%d%d",i,j,k);
if(ctn==6){
printf("\n");
ctn=0;
}
else printf(" ");
}
}}
return 0;
}

格式控制:用计数器ctn 记录不重复的数,每6个数换行用if(ctn==6)输出换行然后ctn归零,以此循环,用else 输出中间的空格;

union-find

发表于 2019-08-11

发展一个可用的算法的步骤:
把问题模型化
找到一个算法去解决它
足够快?适合内存?
如果不是,想想为什么
寻找一个方法去解决这个问题
重复直到一切都满意
动态连接(Dynamic connectivity)
我们假设“被连接”是一个相等的关系:
自反:p被p连接
对称:如果p被q连接,那么q也被p连接
传递:如果p被q连接,q被r连接,那么p被r连接
连接集合(Connected components):每个对象被连接的所以元素

发现问题:检查两个对象是否都在同一个集合里面
连接命令:用连接替换两个对象集合

联合查找数据类型(Union-find data type)API
目标 设计有效的数据结构为联合查找
定义一个 UF类
对数据初始化
给数据添加连接
判断数据是否在同一集合内
找到p所在的集合
确定集合的数量

动态连接客户端(Dynamic-connectivity client)
从标准输入中读取n个对象
重复:

  • 从标准输入中读取整数对
  • 如果他们未被连接请将他们连接
    代码
    public static void main(string[] args)
    {
     int N = StdIn.readInt();
     UF uf = new UF(N);
     while (!stdIn.isEmpty())
     {
       int p = stdIn.readInt();
       int q = stdIn.readInt();
       if (!uf.connected(p,q))
       {
         uf.union(p,q);
         stdOut.prtinln(p+" "+q);
       }
      }
    }

Algorithms, Part I | Coursera by Princeton University

发表于 2019-08-09

ALGORITHMS, PARTS I AND II 概述
Algorithm: method for solving a problem
Data structure: method to store information
topic data structure
data types stack,queue ,bag,union-find,priority queue
storting quicksort,mergesort,heapsort
mergesort
BST,red-black BST,hash table
graphs BFS,DFS,Prim,Kruskal,dijkstra
strings radix sorts,tries,KMP,regexps,data compression
advanced B-tree,suffix array,maxflow

why we study algorithms?
Their impacts is board and far-reaching.
Old roots,new opportunities.
To solve problems that could not otherwise be addressed.
For intellectual stimulation.
To become a proficient programmer.
They may unlock the secrets of life and of the universe.
For fun and profit.

Hello World

发表于 2019-07-05

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

1…45
我与我周旋

我与我周旋

48 日志
5 分类
2 标签
RSS
GitHub E-Mail
© 2020 我与我周旋
本站访客数:
博客全站共37.9k字