精华内容
下载资源
问答
  • 我们都知道,oracle中对用户的管理是使用权限的方式来管理的,也就是说,如果我们想使用数据库,我们就必须得有权限,但是如果是别人将权限授予了我们,我们也是能对 数据库进行操作的,但是我们必须要已授权的...
    我们都知道,在oracle中对用户的管理是使用权限的方式来管理的,也就是说,如果我们想使用数据库,我们就必须得有权限,但是如果是别人将权限授予了我们,我们也是能对

    数据库进行操作的,但是我们必须要已授权的表的名称前键入该表所有者的名称,所以这就是比较麻烦的,遇到这种情况,我们该怎么办呢?创建个同义词吧!这样我们就可以直

    接使用同义词来使用表了。

    创建同义词的具体语法是:create [public] SYNONYM synooym for object;其中synooym表示要创建的同义词的名称,object表示表,视图,序列等我们要创建同义词的对象的名

    称。

    CREATE PUBLIC SYNONYM public_emp FOR jward.emp;       -- jward 用户名

    删除同义词
    使用DROP SYNONYM语句删除不再需要的同义词 要想删除私有同义词 就省略 PUBLIC 关键字 要想删除公共同义词 就要包括PUBLIC 关键字

    DROP SYNONYM emp; --删除名为emp 的私有同义词
    DROP PUBLIC SYNONYM public_emp; --删除名为public_emp的公有同义词
    展开全文
  • python 字符串前面加 f

    万次阅读 2018-03-20 15:17:06
    代码中遇到奇怪的语法: info_str = f'{info_str}{rank}) {airport[0]}, {airport[1]}\n' ...安装结束之后,因为我原本安装的就有3.5,想要调用安装好的3.6,需要改一个名字,具体的操作是Py...

    代码中遇到奇怪的语法:

    info_str = f'{info_str}{rank}) {airport[0]}, {airport[1]}\n'

    查资料发现原来是Python3.6之后新加的功能。
    ok, 装3.6,直接官网下载安装(exe安装的时候记得添加路径到path一定要选上)。
    安装结束之后,因为我原本安装的就有3.5,想要调用安装好的3.6,需要改一个名字,具体的操作是在Python3.6安装的文件夹下把python.exe改成python36.exe
    这里写图片描述
    这样直接在cmd里头运行python36或者python36 **.py即可。

    展开全文
  • 前言 思路 ...通过span 代码实现: 自定义TextView 自定义一个标准的tag布局: ...好好的textView前面加了个标签… 这要是单行还好,直接一个drawable了事 但是多行…我可以自定义一个ShapeDrawable,实现...

    前言

    可能很多朋友在做设计稿的时候经常会遇到这种问题:
    image.png

    好好的textView前面加了个标签…
    这要是单行还好,直接一个drawable了事
    但是多行…我可以自定义一个ShapeDrawable,实现drawableLeft,但是有个问题,如果是这样的话,drawable是会随字体居中的,那显示效果就很怪异了!

    思路

    通过html

    最简单的方法肯定是通过html,不用计算什么start,end,而且现成就有的样式都可以 拿来用。
    html样式代码如下:
    image.png

    <font color="white" style="background:red;border-radius: 6px;font-size: 18px">I love android </font>

    然而…并不支持,貌似是textView不支持这个border-radius属性…而我贫乏的html知识也只能记得这个属性了。好吧,这条路gg。

    通过span

    这个是最靠谱的解决方法了吧,其实span可以帮我们解决几乎所有关于textview的问题,可是貌似很多人(包括我)都不了解她。

    具体可以了解下

    代码实现:

    自定义TextView

    自定义了TextView 在其内部进行处理,免得每次都是一套function方法复制来复制去:

    package com.example.ly.testdrawable;
    
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.drawable.BitmapDrawable;
    import android.graphics.drawable.Drawable;
    import android.text.Spannable;
    import android.text.SpannableString;
    import android.text.style.ImageSpan;
    import android.util.AttributeSet;
    import android.util.Log;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.widget.TextView;
    
    import java.util.List;
    
    /**
     * Author: Ly
     * Data:2018/5/30-19:08
     * Description:
     */
    public class TagTextView extends android.support.v7.widget.AppCompatTextView {
    
        private StringBuffer content_buffer;
    
        private TextView tv_tag;
    
        private View view;//标签布局的最外层布局
    
        private Context mContext;
    
    //必须重写所有的构造器,否则可能会出现无法inflate布局的错误!
    
        public TagTextView(Context context) {
    
            super(context);
    
            mContext = context;
    
        }
    
    
        public TagTextView(Context context, AttributeSet attrs) {
    
            super(context, attrs);
    
            mContext = context;
    
        }
    
    
        public TagTextView(Context context, AttributeSet attrs, int defStyleAttr) {
    
            super(context, attrs, defStyleAttr);
    
            mContext = context;
    
        }
    
    
        public void setContentAndTag(String content, List<String> tags) {
            content_buffer = new StringBuffer();
            for (String item : tags) {//将每个tag的内容添加到content后边,之后将用drawable替代这些tag所占的位置
                content_buffer.append(item);
            }
            content_buffer.append(content);
            SpannableString spannableString = new SpannableString(content_buffer);
            for (int i = 0; i < tags.size(); i++) {
                String item = tags.get(i);
                View view = LayoutInflater.from(mContext).inflate(R.layout.tag, null);//R.layout.tag是每个标签的布局
                tv_tag = view.findViewById(R.id.tv_tag);
                tv_tag.setText(item);
                Bitmap bitmap = convertViewToBitmap(view);
                Drawable d = new BitmapDrawable(bitmap);
                d.setBounds(0, 0, tv_tag.getWidth(), tv_tag.getHeight());//缺少这句的话,不会报错,但是图片不回显示
                ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BOTTOM);//图片将对齐底部边线
                int startIndex;
                int endIndex;
                startIndex = getLastLength(tags, i );
                endIndex = startIndex + item.length();
                Log.e("tag", "the start is" + startIndex + "the end is" + endIndex);
                spannableString.setSpan(span, startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
            }
            setText(spannableString);
            setGravity(Gravity.CENTER_VERTICAL);
        }
    
    
        private static Bitmap convertViewToBitmap(View view) {
    
            view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
    
            view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
    
            view.buildDrawingCache();
    
            Bitmap bitmap = view.getDrawingCache();
    
    
            return bitmap;
    
        }
    
    
        private int getLastLength(List<String> list, int maxLength) {
            int length = 0;
            for (int i = 0; i < maxLength; i++) {
                length += list.get(i).length();
            }
            return length;
        }
    }

    自定义一个标准的tag布局:

    面向xml编程,后期需要修改drawable样式等可以通过这个xml做文章。

    <?xml version="1.0" encoding="utf-8"?>
    
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:orientation="vertical">
    
        <TextView
            android:id="@+id/tv_tag"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginBottom="2dp"
            android:layout_marginRight="5dp"
            android:background="@drawable/bg_blue_20"
            android:gravity="center_vertical"
            android:paddingBottom="2dp"
            android:paddingLeft="3dp"
            android:paddingRight="3dp"
            android:text="标签"
            android:textColor="@android:color/white"
            android:textSize="12sp"/>
    </LinearLayout>

    具体使用(xml)

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.ly.testdrawable.MainActivity">
    
        <com.example.ly.testdrawable.TagTextView
            android:id="@+id/text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello World!"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toTopOf="parent"/>
    
    </android.support.constraint.ConstraintLayout>

    具体使用(java)

    package com.example.ly.testdrawable;
    
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.graphics.drawable.Drawable;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.text.Html;
    import android.text.SpannableStringBuilder;
    import android.text.Spanned;
    import android.widget.TextView;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            TagTextView textView = findViewById(R.id.text);
            List<String> tags = new ArrayList<>();
            tags.add("置顶");
            tags.add("置顶1");
            tags.add("置顶2");
            textView.setContentAndTag("凌宇是个大帅逼",
                    tags);
        }
    }
    

    效果如下

    image.png

    展开全文
  • 函数名称前面加引用“&”或指针符号“*”的意思

    万次阅读 多人点赞 2017-10-10 08:55:29
    学习笔记: (一) 函数名称前面加引用符号“&”,代表该函数...使用函数指针的好处就是处理“运行时根据数据的具体状态来选择相应的处理方式”这种需求时更加灵活。 定义一个函数指针 指针是变量,所

    学习笔记:

    (一)

    函数名称前面加引用符号“&”,代表该函数返回值类型是引用。

    如:int &operate+(...);

    (二)

    函数名称前面加指针符号“*”,代表它是函数指针。

    函数指针是一个指向函数的指针,函数指针表示一个函数的入口地址。使用函数指针的好处就是在处理“在运行时根据数据的具体状态来选择相应的处理方式”这种需求时更加灵活

    定义一个函数指针

    指针是变量,所以函数指针也是变量,因此可以使用变量定义的方式来定义函数指针,对于普通的指针,可以这么定义:

    int a=10;

    int *pa=&a;

    这里,pa是一个指向整型的指针,定义这个指针的形式为:

    int * pa;

    它说明了两点:(1)这是一个指针(2)这是一个指向整型变量的指针

    以下给出三个函数指针定义的形式,第一个是C语言的函数指针,第二个和第三个是C++的函数指针的定义形式(都是指向非静态函数成员的函数指针):

    int (*pFunction)(float,char,char)=NULL;

    int (MyClass::*pMemberFunction)(float,char,char)=NULL;

    int (MyClass::*pConstMemberFunction)(float,char,char) const=NULL;


    首先,要记住一点的就是形式一定要具备完备性,能表达出我们所要表达的内容,即指向函数这个事实。我们知道普通变量指针可以指向对应类型的任何变量,同样函数指针也应该能够指向对应类型的任何变量。对应的函数类型靠什么来确定?这个我们可以想一下C++的函数重载靠什么来区分不同的函数?这里,函数类型是靠这几个方面来确定的:(1)函数的参数个数(2)函数的参数类型(3)函数的返回值类型。所以我们要设计一种形式,这种形式定义的函数指针能够准确的指向这种函数类型的任何函数。

    在C语言中这种形式为:

    返回类型 (*函数指针名称)(参数类型,参数类型,参数类型,…);  //注意这是在定义函数指针

    嗯,定义变量的形式显然不是我们通常见到的这种形式:

    类型名称 变量名称;

    因为函数指针不加括号就会产生二义性,就像下面这个:

    返回类型 *函数指针名称(参数类型,参数类型,参数类型,…);  //注意这是在定义函数

    这样的定义形式定义了一个“返回类型为‘返回类型*’参数为(参数类型,参数类型,参数类型,…)的函数而不是函数指针了。

    接下来,对于C++来说,下面这样的定义形式也就不难理解了(加上类名称是为了区分不同类中定义的相同名称的成员函数):

    返回类型 (类名称::*函数成员名称)(参数类型,参数类型,参数类型,….

    函数的调用规则

    一般来说,不用太关注这个问题。调用规则主要是指函数被调用的方式,常见的有_stdcall,_fastcall,_pascal,_cdecl等规则。不同的规则在参数压入堆栈的顺序是不同的,同时在有调用者清理压入堆栈的参数还是由被调用者清理压入堆栈的参数上也是不同的。一般来说,如果你没有显式的说明调用规则的话,编译器会统一按照_cdecl来处理。

     

    给函数指针赋值和调用

    给函数指针赋值,就是为函数指针指定一个函数名称。这个过程很简单,下面是两个例子:

    int func1(float f,int a,int b){return f*a/b;}

    int func2(float f,int a,int b){return f*a*b}

    然后我们给函数指针pFunction赋值:

    pFunction=func1;

    pFunction=&func2;

    上面这段代码说明了两个问题:(1)一个函数指针可以多次赋值(引用不能这样)(2)取地址符号是可选的,却是推荐使用的。

    我们可以思考一下为什么取地址符号是可选的,在普通的指针变量赋值时,如上面所示,需要加取地址符号,而这里却是可选的?这是由于要同时考虑到两个因素(1)避免二义性(2)形式一致性。在普通指针赋值,需要加取地址符号是为了区别于将地址还是将内容赋给指针。而在函数赋值时没有这种考虑,因为这里的语义是清晰的,加上&符号是为了和普通指针变量一致---“因为一致的时候就不容易出错”。

    最后我们来使用这个函数,以下两者调用函数的方法都是可以的

    pFunction(10.0,’a’,’b’);

    (*pFunction)(10.0,’a’,’b’);


    同时函数指针可以当参数使用实现回调函数,让程序变得更加简单。


    展开全文
  • 详解IP地址后面斜杠加具体数字

    万次阅读 2018-07-31 10:38:42
    转:详解IP地址后面斜杠加具体数字 详解IP地址后面斜杠加具体数字  如:xx.xx.xx.2/24  xx.xx.xx.0/24 hzhsan:通俗一点就是,斜杠后面的数字就表示子网掩码,数字具体代表32位子网掩码(二进制形式)中前面的...
  • 函数前面加上WINAPI、CALLBACK

    千次阅读 2016-01-26 19:59:06
    一直搞不懂为什么在函数前面加上WINAPI、CALLBACK等是什么意思 又不是返回值 为什么前面 今天终于知道了这是一个呼叫声明(姑且称之吧)。 引子: 看看这个函数: int PASCAL WinMain(HINSTANCE hInst,...
  • 如下所示,方法返回值前面什么要加上 <T> 呢? public static <T> void test(T a){ System.out.println(String.format("test %s",a)); } 众所周知,java类对象中如果想使用泛型需要将类定义如下 ...
  • IP地址后面斜杠加具体数字

    千次阅读 2014-09-14 23:18:03
     例如:192.168.1.0/24表示网段是192.168.1.0,子网掩码是24位,子网掩码为:255.255.255.0,用二进制表示为:11111111 11111111 11111111 00000000 ,这里为什么是24呢,就是因为子网掩码里面的前面连续的“1”的...
  • IP地址后面斜杠加具体数字详解

    千次阅读 2020-01-08 10:45:53
    IP地址后面斜杠加具体数字详解  其实这种形式就是用CIDR(无类别域间路由选择,Classless and Subnet Address Extensions and Supernetting))的形式表示的一个网段,或者说子网。 我们知道确定一个子网需要...
  • 平时我们用 WPS 表格处理数据的时候,特别是单价或者总价的地方只输入了数字,数字前面没有人民币符号,后面也没有添加“元”,有时候我们确实需要显示人民币符号和数字后面显示“元”,那我们应该怎么办呢?...
  • C++中const函数名前面和函数后面的区别

    万次阅读 多人点赞 2014-08-14 08:49:41
     当const函数名前面时候修饰的是函数返回值,函数名后面表示是常成员函数,该函数不能修改对象内的任何成员,只能发生读操作,不能发生写操作。 二、原理:  我们都知道调用成员函数的时候...
  • 时间前面用in at还是on

    万次阅读 2009-03-10 16:21:00
    at常用来表示某点时间,即“几点几分;某一时刻”。 如:She usually gets up at 6:00 in the morning.她通常早上6点起床。The man often gets to his office at 8:30.这个男人经常8:30到他的办公室。另外,...
  • from: ... 分析实施总结报告: 我的测试报告如下:(注意是我的)数据十几万条 ...经过彻夜的分析与研究(本人不是程序员,没有理论基础,花的时间也久些)得出: 老柏默认的索引为多列索引,zouql的为单列
  • 时间字段索引

    万次阅读 2018-11-14 22:05:20
    比如您的某个表有一个时间列,恰好您把聚合索引建立了该列,这时您查询2004年1月1日至2004年10月1日之间的全部数据时,这个速度就将是很快的,因为您的这本字典正文是按日期进行排序的,聚类索引只需要找到要检索...
  • RSA加密java和Android上的不同

    千次阅读 2014-01-08 10:39:39
    先说一下遇到的问题吧,做一个解密的过程,但是特殊的地方就是java上加密,到Android上解密,结果就是能解开,但是前面会自动添加一串的乱码,或者说是框框,原因就是RSA算法java和Android上市有一点区别的,...
  • 非对称加密概述

    万次阅读 多人点赞 2018-07-29 16:16:15
    阅读《精通比特币》的过程中,我发现比特币系统中有两个重要的概念需要利用非对称加密技术: 比特币地址的生成 交易合法性的验证 因此,我用了几天时间学习了密码学基础知识,尤其是非对称加密技术的原理。这里...
  • BigDecimal减乘除计算

    万次阅读 多人点赞 2018-09-16 12:06:50
    前阵子做题遇到了大数的精确计算,再次认识了...BigDecimal的运算——减乘除 首先是bigdecimal的初始化 这里对比了两种形式,第一种直接value写数字的值,第二种用string来表示 BigDecimal num1 = new ...
  • 什么malloc前加上*sizeof里面不呢? 我们先来看一下关于malloc的介绍 malloc的全称是memory allocation, 中文叫动态内存分配,用于申请一块连续的指定大小的内存块区域以void*类型 返回分配的内存区...
  • 变量名前为什么_下划线

    千次阅读 2015-12-25 15:35:48
    简单来说,含有两个下划线和...而我们一般在前面加“_”表示私有变量。 一般来说,如果私有变量有其对应的accessor (getter/setter),则私有变量命名要加"_",否则不加。   举例: #import  @interfa
  • 有时候我们为了调试程序需要输出很多内容到控制台(Console)上,但是有时候前面输出的内容已经看不到(我猜应该是Console有一定的运行内存有关),所有我们就看不到完整的输出信息。这个时候有一个办法就是通过把...
  • http://www.mamicode.com/info-detail-243819.html总的来说操作系统电启动之后到main函数执行之前操作系统经历了以下3个大步骤 * 启动BIOS。这个时候位于实模式下,加载中断向量和中断服务程序 * 加载操作系统...
  • python打印 字符串前面b

    千次阅读 2018-12-21 16:19:39
    python 打印字符串出现:hello = tf.constant('Hello, Tensorflow!')  结果为:b'Hello, Tensorflow!' 说明: b: bytes  python3.x里默认的str是(py2.x里的)...python2.x里, b前缀没什么具体意义, 只是为了...
  • 内核函数前面单下划线和双下划线

    千次阅读 2017-08-24 09:15:39
    我们阅读内核代码时,经常会看到有的函数名称前面会带有“_ _”的双下划线,而有些又没有,这个有什么用呢? 原来内核API函数具有这种名称的,通常都是一些接口的底层函数,应该谨慎使用。实质上,这里的双...
  • 从语法上来开,Javascript中分号表示语句结束,开头加上,可能是为了压缩的时候和别的方法分割一下,表示一个新的语句开始。所以,如果一个单独的JS文件中,开头的分号是没有任何意义的,可以删掉。 叹号是...
  • uid pid ppid # PID 这个程序的 ID 下面的 PPID 则是父程序的 ID; PS是LINUX下最常用的也是非常强大的进程查看命令 常见的使用方法是检查一个进程是否存在: ...前面介绍的两个命令都是用于查看当前...
  • 在前面:此部分内容为原理部分,说的是一种模式,没有用实际代码进行解析,需要参考代码实现的可以不必往下看问题的现象:用加密后的字符串解密的时候报空指针异常;解密方法需要try--catch才能看到异常效果;先说...
  • c中关键字static的具体作用是什么

    千次阅读 2012-02-04 09:56:55
    C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未static前缀的全局变量和函数都具有全局可见性。为...
  • 答案是否,以PX4飞控为例,NED系下,水平放置时,机体测量速度的数据应该是[0 0 -g],所以,除非你确定你的飞控校准速度零偏的时候是绝对的水平,否则只会加大误差,更别谈每次上电自动校准,减零偏了,试想...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 474,783
精华内容 189,913
关键字:

在具体的时间前面加什么